K8S安裝常見問題
1. 在node節點上拉取image出錯
報錯信息如下:
Failed to pull image "reg.firstshare.cn/foneshare/heapster-amd64:v1.3.0": rpc error: code = 2 desc = manifest unknown: manifest unknown
Error syncing pod, skipping: [failed to "StartContainer" for "heapster" with ErrImagePull: "rpc error: code = 2 desc = manifest unknown: manifest unknown" , failed to "StartContainer" for "eventer" with ImagePullBackOff: "Back-off pulling image \"reg.firstshare.cn/foneshare/heapster-amd64:v1.3.0\"" , failed to "StartContainer" for "heapster-nanny" with ErrImagePull: "rpc error: code = 2 desc = manifest unknown: manifest unknown" , failed to "StartContainer" for "eventer-nanny" with ImagePullBackOff: "Back-off pulling image \"reg.firstshare.cn/foneshare/addon-resizer:1.7\"" ]
問題原因:在node節點的docker配置中沒有配置針對私有倉庫不驗證digest。
解決辦法:修改 /etc/sysconfig/docker ,增加配置 OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
這樣就不驗證私有倉庫的digest了,拉取image就不會出錯了。
2.master節點apiserver配置問題
apiserver配置文件下,默認配置下KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16",需要將地址跟改為證書配置的IP。
使用命令查看證書配置的IP地址:
openssl x509 -noout -text -in server.crt
|
輸出:
修改:
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.137.0.0/16"
認證文件問題:
--token-auth-file=/etc/kubernetes/ssl/known_tokens.csv"如果known_tokens這個文件不存在,請創建一個空文件即可。
3.master節點配置變更重啟
no API token found for service account kube-dns, retry after the token is automatically created and added to the service account
使用命令查看:
kubectl get serviceaccount -n kube-system
|
輸出
NAME SECRETS AGE
default
1
17d
kube-dns
0
13d
|
出現以上問題有一下幾個情況:
- 核對master配置文件,修改后並重新啟動master相關服務。
- 證書配置有問題,使用命令校驗證書:openssl verify -CAfile ca.crt server.crt
4.使用單節點Master試錯
當遇到一些問題完全沒有頭緒的時候,可以嘗試使用單節點Master,單節點Node,一定要注意把其他的Master、Node節點服務停掉,否則會影響查找問題的判斷方向。
5.x.foneshare.cn報錯問題
部署應用時報錯,錯誤信息中會出現x.foneshare.cn報錯時。請查看Node節點的kubelet配置文件,線上環境中有的機器可能會默認配置KUBELET_HOSTNAME。
請注釋掉KUBELET_HOSTNAME:
#KUBELET_HOSTNAME=
"--hostname-override=vlnx000149.x.foneshare.cn"
|
K8S集群常見問題
一、docker ps無響應,重啟docker
- kubectl cordon vlnx000147.foneshare.cn
- systemctl restart docker
- kubectl uncordon vlnx000147.foneshare.cn
- tomcat請求無響應,需要刪掉147上的pod,讓k8s自動再拉起一個