Подключите локальный узел к кластеру kops AWS - PullRequest
0 голосов
/ 22 января 2020

Я хочу подключить локальный узел (не облачный) к кластеру, созданному копией, на AWS. Я следовал предложенному подходу в Kubernetes: Объединение кластера Копса с локальным кластером Kubeadm . Ниже приведены мои kubelet опции:

DAEMON_ARGS="\
--allow-privileged=true \
--cgroup-root=/ \
--cgroup-driver=systemd \
--cluster-dns=${CLUSTER_DNS} \
--cluster-domain=cluster.local \
--enable-debugging-handlers=true \
--eviction-hard=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5% \.available<10%,imagefs.inodesFree<5% \
--feature-gates=DevicePlugins=true,ExperimentalCriticalPodAnnotation=true \
--hostname-override=my-node \
--kubeconfig=/var/lib/kubelet/kubeconfig \
--network-plugin-mtu=9001 \
--network-plugin=kubenet \
--node-labels=KubernetesCluster=${CLUSTER_NAME}, kubernetes.io/cluster/${CLUSTER_NAME}=owned,kubernetes.io/role=node,node-role.kubernetes.io/node= \
--node-ip=${NODE_IP} \
--non-masquerade-cidr=${NON_MASQUERADE_CIDR} \
--pod-infra-container-image=gcr.io/google_containers/pause-amd64:3.0 \
--pod-manifest-path=/etc/kubernetes/manifests \
--register-schedulable=true \
--v=2 \
--cni-bin-dir=/opt/cni/bin/ \
--cni-conf-dir=/etc/cni/net.d/ \
--cni-bin-dir=/opt/cni/bin/"

Когда я запускаю kubelet на моем локальном узле, он успешно подключается к kube-apiserver и регистрирует узел. Однако при обновлении статуса узла он неоднократно завершается ошибкой:

E0121 23:08:35.135858   18352 kubelet_node_status.go:383] Error updating node status, will retry: error getting node "my-node": nodes "my-node" not found
E0121 23:08:35.191611   18352 kubelet_node_status.go:383] Error updating node status, will retry: error getting node "my-node": nodes "my-node" not found
...
E0121 23:08:35.359480   18352 kubelet_node_status.go:375] Unable to update node status: update node status exceeds retry count
E0121 23:08:35.823944   18352 eviction_manager.go:238] eviction manager: unexpected err: failed to get node info: node "my-node" not found

После проверки журналов kube-controller-manager (/var/log/kube-controller-manager.log на главном узле) я обнаружил, что kube-controller-manager удаляет my-node, поскольку он не может быть найдено в облачном провайдере, aws:

I0121 23:08:25.722214       1 node_controller.go:769] Deleting node (no longer present in cloud provider): my-node
I0121 23:08:25.722248       1 controller_utils.go:197] Recording Deleting Node my-node because it's not present according to cloud provider event message for node my-node

Есть ли способ отключить эту проверку облачного провайдера для my-node, чтобы она не удалялась kube-controller-manager? Я все еще хочу иметь возможность запускать некоторые узлы в AWS, поэтому не хочу снимать флажок облачного провайдера в kube-controller-manager.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...