AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 錯誤啟動不了


問題出現在版本1.22和1.21中,同樣的配置在1.19和1.20版本中成功配置沒有問題。

kubeadm init
初始化后提示成功,在master第二個節點 kubeadm join時提示
could not find a JWS signature

於是回到第一個master上看一下cluster info信息
kubectl get configmap cluster-info --namespace=kube-public -o yaml
非常奇怪的是沒有jws段,jws是一個證書的簽名用來驗證證書的token,這里提一下它並不安全最好不要用於所有節點,可以通過kubeadm create token xxx來創建。
沒有jws段那么判斷沒有生效的token,但是用

kubeadm token list
可以看到token全部正常有效,這個問題就很奇怪了。

在閱讀bootstrap-tokens鑒權kubeadm實現細節后發現,原來cluster info中的aws需要在kube-controller-manager運行后創建。

這時才發現kube-controller-manager的pod沒有起來,我們知道kubeadm文檔中說過如果init后pod有沒有成功生效的那么就要發issue證明是kubeadm壞了,這個判斷大概率不成立,肯定是kubeadm配置錯誤。

kubectl describe kube-controller-manager -nkube-system
kubectl logs -n kube-system kube-controller-manager

后提示:
Error: unknown flag: --horizontal-pod-autoscaler-use-rest-clients

原來1.21的kube-controller-manager不再支持這個參數。
去掉后pod成功啟動


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM