Kubernetes 離線安裝的坑我采了
- 一、Error from server: Get "https://xx.xx.xx.xx:10250/containerLogs/kube-system/calico-node-8dnvs/calico-node": tls: failed to verify certificate: x509: certificate signed by unknown authority
- 二、calico 或 pod 啟動正常,但是執行 kubectl logs -n kube-system calico-node-v9z7m 時提示:Error from server: Get "https://worker02:10250/containerLogs/kube-system/calico-node-v9z7m/calico-node": tls: failed to verify certificate: x509: certificate signed by unknown authority
- 三、kubelet 無法拉取鏡像問題
- 四、calico 安裝報錯:[ERROR][73] felix/health.go 360: Health endpoint failed, trying to restart it... error=listen tcp: lookup localhost on [::1]:53: dial udp [::1]:53: connect: no route to host
- 五、pod 無法刪除,可以使用強制刪除命令:kubectl delete pod <pod名稱> --force --grace-period=0
- 六、containerd 拉取代碼是總是以 https 的方式拉取,
- 七、pause 鏡像拉取不到
- 八、argocd 安裝后部署服務提示 Failed to load live state: Namespace "x" for Deployment "x" is not managed
一、Error from server: Get “https://xx.xx.xx.xx:10250/containerLogs/kube-system/calico-node-8dnvs/calico-node”: tls: failed to verify certificate: x509: certificate signed by unknown authority
- 背景
集群部署完成后,在安裝網絡組件 calico 的時候,運行后執行pod狀態一直為 CrashLoopBackOff,集群節點狀態為 NotReady。如下所示
- 排查經過
# 查看 pod 節點日志
kubectl logs -f -n kube-system calico-node-mm2vh
發現可能是證書的問題,然后去node節點查找詳細的日志,鎖定日志文件
find / -name calico*cat /var/log/containers/calico-node-2bdcs_kube-system_install-cni-c6f4768750c25d1dd8d6908e0f3e0caf6a4e1f65974f0e6b6ade01859a52ff89.log
確定是證書的問題,證書有 etcd 證書,apiserver 證書,controller-manager 證書,scheduler 證書。排查后發現上述問題主要是 apiserver 證書存在問題。
- 解決方案
將 IP 添加到證書生成的 hosts 中,重新生成上述證書,替換、calico 中 ETCD 證書
二、calico 或 pod 啟動正常,但是執行 kubectl logs -n kube-system calico-node-v9z7m 時提示:Error from server: Get “https://worker02:10250/containerLogs/kube-system/calico-node-v9z7m/calico-node”: tls: failed to verify certificate: x509: certificate signed by unknown authority
-
問題原因
是因為 apiserver 組件和 kubelet 組件通信證書問題 -
解決方法:
有兩種解決方法,第一種是在 kubelet config 配置文件 kubelet-config.yml 中增加配置,推薦這個方法
...
podPidsLimit: 100000
maxOpenFiles: 1000000
maxPods: 110
rotateCer