上篇 《rancher安裝Kubernetes》 最後的步驟是錯誤的,即便每次手動改了k8s的鏡像,可是依然服務pull,並且每次重啓docker或者k8s,又會重置回默認的gcr.io
的鏡像。html
本文是在羣內@天闌-李小威
@洪曉露
@logan
等大神指導下,並根據 《原生加速中國區Kubernetes安裝》,最終搞定的方案docker
主機名 | 主機ip | OS | docker version | ranhcer version |
---|---|---|---|---|
anjia-ubuntu | 192.168.31.83 | ubuntu 17.04 4.9.0-12-generic x86_64 | Docker version 1.12.6 | v1.6.11-rc10 |
按照 Getting Started with Hosts#SUPPORTED DOCKER VERSIONS 安裝受支持的docker-ce version
(若是國內安裝較慢,能夠考慮使用中科大docker鏡像 ,或者其餘阿里雲鏡像,騰訊雲鏡像,清華鏡像等)ubuntu
若是以前裝有其餘版本的,須要刪除全部鏡像和容器,並卸載docker重裝,rancher k8s 目前只支持 docker 1.12.3+
的版本bash
sudo apt install docker.io複製代碼
按照 Installing Rancher Server 根據實際狀況,安裝rancher
,建議使用 加速器 DaoCloud - 業界領先的容器雲平臺 或者 阿里雲docker加速器less
若是rancher/server是v1.6.10版本(低於v1.6.10版本未試過),須要你修改私有registry,且將gcr.io的插件push到私有registry,且namespace必須爲google_containers
,若是容許的話,請選擇v1.6.11+(目前v1.6.11仍是rc版) 請根據實際狀況自行選擇版本post
sudo docker run -d --restart=unless-stopped --name=rancher-server -p 8080:8080 rancher/server:v1.6.11-rc10 && sudo docker logs -f rancher-server
#sudo docker run -d --restart=unless-stopped --name=rancher-server -p 8080:8080 rancher/server:v1.6.10 && sudo docker logs -f rancher-server複製代碼
若是以前安裝過docker和k8s,須要運行google
docker rm -f -v $(docker ps -aq)
docker volume rm $(docker volume ls)
sudo rm -rf /var/etcd/複製代碼
Private Registry for Add-Ons and Pod Infra Container Image
index.docker.io
阿里雲
Image namespace for Add-Ons and Pod Infra Container Image
anjia0532
spa
Image namespace for kubernetes-helm Image
anjia0532
插件
Pod Infra Container Image
anjia0532
當基礎服務都是綠色後,便可使用
若是打開dashboard 報 503 ServiceUnavailable
, 很是感謝羣內@天闌-李小威
耐心解答,同時 參考 Kubernetes 部署失敗的 10 個最廣泛緣由(Part 1) 解決了好幾個問題
打開Cli
> kubectl --namespace=kube-system get pods
NAME READY STATUS RESTARTS AGE
heapster-79684d56d6-8pjrd 1/1 Running 0 13m
kube-dns-7f59fd996-nkvv5 3/3 Running 0 13m
kubernetes-dashboard-86d9cc5b4-7lxj5 0/1 ImagePullBackOff 0 13m
monitoring-grafana-6dc7576774-8x79x 1/1 Running 0 13m
monitoring-influxdb-d78f84c6c-29wcp 1/1 Running 0 13m
tiller-deploy-c4598db7d-8wxpp 1/1 Running 0 13m
# 復
> kubectl --namespace=kube-system describe pod kubernetes-dashboard-86d9cc5b4-7lxj5
# 我這是正常Running的日誌,ImagePullBackOff的沒截下來
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 16m default-scheduler Successfully assigned kubernetes-dashboard-86d9cc5b4-7lxj5 to k8s
Normal SuccessfulMountVolume 16m kubelet, k8s MountVolume.SetUp succeeded for volume "io-rancher-system-token-lb68r"
Normal Pulled 16m kubelet, k8s Container image "index.docker.io/anjia0532/kubernetes-dashboard-amd64:v1.7.1" already present on machine
Normal Created 16m kubelet, k8s Created container
Normal Started 16m kubelet, k8s Started container
# 也能夠根據 events 來輔助排查問題
> kubectl --namespace=kube-system get events複製代碼
博客 anjia.ml/2017/11/13/…
掘金 juejin.im/post/5a0975…
簡書 www.jianshu.com/p/2f906a7f4…