總結
本文的大部分思路參考了 『Kubernetes v1.10.x HA 全手動苦工安裝教學(TL;DR)』 這篇文章。
不過,雖然 Kairen 同志已經寫得很詳細了,但是實踐起來還是有不少問題的,我在他的基礎上根據自己的實踐過程寫了這篇文檔。
可能會出現的問題
-
apiserver 會一直報錯:
x509.go:172] x509: subject with cn=system:kube-controller-manager is not in the allowed list: [aggregator]
一開始以為是證書有問題,但是查了很久也沒發現問題所在,可以忽略此錯誤,暫時未發現對集群有什么影響。
-
pod 無法啟動,出現
Permission denied
之類的錯誤。是由於主機未關閉 SELinux 造成的,參考 『虛擬機部署 Kubernetes v1.10.3 高可用集群 - 01 虛擬機環境准備』 中的步驟關閉 SELinux 即可。
-
無法下載鏡像問題(牆)。
可以使用 shadowsocks + Proxifier 代理解決;或者使用阿里雲倉庫里的鏡像,腳本如下:
$ ALI_REP="registry.cn-hangzhou.aliyuncs.com/google_containers"
$ GCR="gcr.io/google_containers"
$ K8S_GCR="k8s.gcr.io"
$ for IMAGE in kube-controller-manager-amd64:v1.10.3 kube-apiserver-amd64:v1.10.3 kube-scheduler-amd64:v1.10.3 etcd-amd64:3.1.13; do
echo "--- $IMAGE ---"
docker pull $ALI_REP/$IMAGE
docker tag $ALI_REP/$IMAGE $GCR/$IMAGE
docker rmi $ALI_REP/$IMAGE
done
$ for IMAGE in kube-proxy-amd64:v1.10.3 pause-amd64:3.1; do
echo "--- $IMAGE ---"
docker pull $ALI_REP/$IMAGE
docker tag $ALI_REP/$IMAGE $K8S_GCR/$IMAGE
docker rmi $ALI_REP/$IMAGE
done