上篇 《rancher安裝Kubernetes》 最後的步驟是錯誤的,即使每次手動改了k8s的映象,但是依然服務pull,而且每次重啟docker或者k8s,又會重置回預設的gcr.io
的映象。
本文是在群內@天闌-李小威
@洪曉露
@logan
等大神指導下,並根據 《原生加速中國區Kubernetes安裝》,最終搞定的方案
環境準備
主機名 | 主機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 |
安裝 docker
按照 Getting Started with Hosts#SUPPORTED DOCKER VERSIONS 安裝受支援的docker-ce version
(如果國內安裝較慢,可以考慮使用中科大docker映象 ,或者其他阿里雲映象,騰訊雲映象,清華映象等)
如果之前裝有其他版本的,需要刪除所有映象和容器,並解除安裝docker重灌,rancher k8s 目前只支援 docker 1.12.3+
的版本
sudo apt install docker.io複製程式碼
安裝rancher
按照 Installing Rancher Server 根據實際情況,安裝rancher
,建議使用 加速器 DaoCloud – 業界領先的容器雲平臺 或者 阿里雲docker加速器
如果rancher/server是v1.6.10版本(低於v1.6.10版本未試過),需要你修改私有registry,且將gcr.io的外掛push到私有registry,且namespace必須為google_containers
,如果允許的話,請選擇v1.6.11+(目前v1.6.11還是rc版) 請根據實際情況自行選擇版本
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 hub
安裝k8s
如果之前安裝過docker和k8s,需要執行
docker rm -f -v $(docker ps -aq)
docker volume rm $(docker volume ls)
sudo rm -rf /var/etcd/複製程式碼
建立環境模板
修改k8s模板
Private Registry for Add-Ons and Pod Infra Container Image
index.docker.io
Image namespace for Add-Ons and Pod Infra Container Image
anjia0532
Image namespace for kubernetes-helm Image
anjia0532
Pod Infra Container Image
anjia0532
建立k8s環境
選擇k8s環境並新增主機
檢視k8s基礎服務狀態
當基礎服務都是綠色後,即可使用
檢視k8s 儀表板 dashboard
異常排查
如果開啟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…