kubeadm 安裝 Kubernetes 1.6.2 過程中的一些坑

因爲一些莫可名狀的原因,國內網絡使用 Kubeadm 頗有難度,這裏大概說一下過程中的一些坑。

主體流程遵循官網指南:https://kubernetes.io/docs/getting-started-guides/kubeadm/

1/4 準備工作

這裏用包管理的方式安裝 kubeadm、Docker 等組件。需要注意一點點的是,如果用的非 Root 用戶,要注意 sudo 的時候的環境代理設置問題。或者乾脆在 apt/yum 的配置文件中寫入代理服務器。

另外這裏安裝 Docker 之後,注意給 Docker 配置代理。或者可以直接想法子搞到下面列表中的鏡像,並導入 Docker 之中:

鏡像準備

下面提到的鏡像基於目前的 1.6.2 版本,每次更新都會有不同。

Image Ver Component
gcr.io/google_containers/kube-proxy-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-controller-manager-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-apiserver-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-scheduler-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/etcd-amd64 3.0.17 Kubernetes
gcr.io/google_containers/pause-amd64 3.0 Kubernetes
gcr.io/google_containers/k8s-dns-sidecar-amd64 1.14.1 DNS
gcr.io/google_containers/k8s-dns-kube-dns-amd64 1.14.1 DNS
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 1.14.1 DNS
gcr.io/google_containers/etcd 2.2.1 Calico
quay.io/calico/node v1.1.3 Calico
quay.io/calico/cni v1.8.0 Calico
quay.io/calico/kube-policy-controller v0.5.4 Calico

2/4 Master 初始化

kubeadm init

這裏的幾個問題:

  • 如果準備採用 flannel 插件,需要 -pod-network-cidr 10.244.0.0/16 參數
  • Ubuntu 下可能會出現無限等待 Node 加入的情況,可能的原因是 /etc/resolv.conf 中有關於 localhost 的 search 記錄,刪掉這行就能解決。
  • 如果準備採用 Calico 插件,那麼要注意 Calico 的 YAML 中的 ip pool 跟集羣設置一致。
  • 如果不是預先準備好的備份,過程會比較長,耐心。。

Init 成功之後會出一堆文本信息,其中包含幾點內容,最好保存下來:

  • 自動生成的 kubectl config 文件,可以複製到 ~/.kube/config 中作爲缺省 kubectl 使用。
  • 把新節點加入集羣的方法。

另外這裏還有個提示——沒有安裝 Pod Network。

3/4 安裝 Pod Network

這一步很重要,所有的應用包括 Kube DNS 在內,都依賴於此。

如上文所示,準備使用的是 Calico,這裏值得注意的一坑是,不同版本的 Kubernetes 會有不同的 Calico 安裝,1.6 版本應該使用的是:kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/ 還有一些其他的安裝方式可以參考。

Calico 的注意事項

  • 他的 ETCD 服務器要求裝在 Master 所在的 Node 上,使用的是 nodeSelector 的方式,選擇標籤:node-role.kubernetes.io/master: ""
  • 上文提到的 pod network cidr 和 ip pool 的一致性問題
  • --service-cidr 和 IP Pool 不能重疊

4/4 加入節點

在其他 Node 上做好準備工作之後,用kubeadm init命令中提到的kubeadmin join方法加入集羣。

本文轉自中文社區-kubeadm 安裝 Kubernetes 1.6.2 過程中的一些坑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章