Kubernetes kubelet ошибка обновления состояния узла - PullRequest
0 голосов
/ 09 октября 2018

Запуск кластера kubernetes в AWS через EKS.Кажется, что все работает, как ожидалось, но только проверяет все журналы, чтобы проверить.Я перескочил на один из рабочих узлов и заметил кучу ошибок при просмотре службы kubelet

Oct 09 09:42:52 ip-172-26-0-213.ec2.internal kubelet[4226]: E1009 09:42:52.335445    4226 kubelet_node_status.go:377] Error updating node status, will retry: error getting node "ip-172-26-0-213.ec2.internal": Unauthorized
Oct 09 10:03:54 ip-172-26-0-213.ec2.internal kubelet[4226]: E1009 10:03:54.831820    4226 kubelet_node_status.go:377] Error updating node status, will retry: error getting node "ip-172-26-0-213.ec2.internal": Unauthorized

Все узлы отображаются как готовые, но я не уверен, почему эти ошибки появляются.Имеет 3 рабочих узла, и все 3 имеют одинаковые ошибки kubelet (имена хостов, очевидно, отличаются)

Дополнительная информация.Может показаться, что ошибка исходит из этой строки в kubelet_node_status.go

node, err := kl.heartbeatClient.CoreV1().Nodes().Get(string(kl.nodeName), opts)
if err != nil {
    return fmt.Errorf("error getting node %q: %v", kl.nodeName, err)
}

Из рабочих, которые я могу выполнить, можно получить узлы, используя kubectl, просто отлично:

kubectl get --kubeconfig=/var/lib/kubelet/kubeconfig nodes
NAME                           STATUS    ROLES     AGE       VERSION
ip-172-26-0-58.ec2.internal    Ready     <none>    1h        v1.10.3
ip-172-26-1-193.ec2.internal   Ready     <none>    1h        v1.10.3

1 Ответ

0 голосов
/ 04 декабря 2018

Оказывается, это не проблема.Официальный ответ AWS относительно этих ошибок:

Кублет будет регулярно сообщать о статусе узла в API Kubernetes.Когда это происходит, ему нужен токен аутентификации, сгенерированный aws-iam-authenticator.Kubelet вызовет aws-iam-authenticator и сохранит токен в своем глобальном кэше.В EKS этот токен аутентификации истекает через 21 минуту.

Kubelet не распознает время истечения токена, поэтому он попытается получить доступ к API, используя токен в своем кэше.Когда API возвращает несанкционированный ответ, существует механизм повторной попытки получить новый токен из aws-iam-authenticator и повторить запрос.

...