部署服務時鏡像拉取過程當中出現:ImagePullBackOff
kubectl describe pods kubernetes-dashboard-975499656-krwl7 -n kube-system
查看pod的詳細狀況
node
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m38s default-scheduler Successfully assigned kube-system/kubernetes-dashboard-975499656-krwl7 to k8s-node2 Normal Pulling 2m32s (x4 over 4m38s) kubelet, k8s-node2 Pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1" Warning Failed 2m16s (x4 over 4m22s) kubelet, k8s-node2 Failed to pull image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) Warning Failed 2m16s (x4 over 4m22s) kubelet, k8s-node2 Error: ErrImagePull Normal BackOff 112s (x6 over 4m22s) kubelet, k8s-node2 Back-off pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1" Warning Failed 99s (x7 over 4m22s) kubelet, k8s-node2 Error: ImagePullBackOff
分析:這個拉取的國外的鏡像源,是有點慢,網絡很差的時候常常會出現這種狀況,能夠提早把須要的鏡像下載好
解決辦法:
更換國內鏡像源,搜索須要下載的鏡像
①編輯文件 /etc/docker/daemon.json 加入"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
重載配置文件重啓docker生效
linux
systemctl daemon-reload systemctl restart docker
②搜索須要的鏡像,如:k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
③拉取指定鏡像
④tag爲配置文件中須要的鏡像名k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
docker
docker tag loveone/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
完成後再試一次(注意最好每一個節點都作這樣的操做,由於調度器隨機選擇節點部署,簡而言之是在被部署的節點上操做)
從新部署
①kubectl delete -f kubernetes-dashboard.yaml
,
②kubectl apply -f kubernetes-dashboard.yaml
或者 kubectl create -f kubernetes-dashboard.yaml --save-config
出現以下報錯
json
kubectl logs kubernetes-dashboard-975499656-xlx5b -n kube-system
- 查看pod日誌以下
Error from server: Get https://192.168.40.131:10250/containerLogs/kube-system/kubernetes-dashboard-975499656-xlx5b/kubernetes-dashboard: dial tcp 192.168.40.131:10250: connect: no route to host - 分析:因而可知,部署服務時訪問節點131的10250端口鏈接被拒絕,推測多是防火牆的緣由
- 解決辦法:
①查看服務端口是否被佔用,!是否已經啓起來了;
能夠看到,端口啓動正常;
②telnet測試一下端口(我這裏是master機器上測試的)
果真不通
③查看節點1的防火牆狀態
果真是防火牆的緣由
再試端口就通了
從新部署試試
成功