簡體   English   中英

Kubernetes Kubelet錯誤更新節點狀態

[英]Kubernetes kubelet error updating node status

通過EKS在AWS中運行kubernetes集群。 一切似乎都按預期工作,但只是檢查所有日志以進行驗證。 我跳到一個工作節點上,並且在查看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執行get節點:

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

原來這不是問題。 AWS針對這些錯誤的官方回復:

Kubelet將定期向Kubernetes API報告節點狀態。 這樣做時,需要aws-iam-authenticator生成的身份驗證令牌。 kubelet將調用aws-iam-authenticator,並將令牌存儲在其全局緩存中。 在EKS中,此身份驗證令牌將在21分鍾后過期。

kubelet不了解令牌的到期時間,因此它將嘗試使用其緩存中的令牌來訪問API。 當API返回未經授權的響應時,將提供一種重試機制,以從aws-iam-authenticator獲取新令牌並重試該請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM