kubeadm
Kubernetes 一鍵部署腳本(使用 docker 運行時)
# on master
export USE_MIRROR=true #國內用戶必須使用MIRROR
git clone https://github.com/feiskyer/ops
cd ops
kubernetes/install-kubernetes.sh
# 記住控制檯輸出的 TOEKN 和 MASTER 地址,在其他 Node 安裝時會用到
# on all nodes
git clone https://github.com/feiskyer/ops
cd ops
# Setup token and CIDR first.
# replace this with yours.
export TOKEN="xxxx"
export MASTER_IP="x.x.x.x"
export CONTAINER_CIDR="10.244.2.0/24"
# Setup and join the new node.
./kubernetes/add-node.sh以下是詳細的 kubeadm 部署集群步驟。
初始化系統
所有機器都需要初始化 docker 和 kubelet。
ubuntu
CentOS
安裝 master
如果需要修改 kubernetes 服務的配置選項,則需要創建一個 kubeadm 配置文件,其格式爲
注意:JoinConfiguration 重命名自 v1alpha2 API 中的 NodeConfiguration,而 InitConfiguration 重命名自 v1alpha2 API 中的 MasterConfiguration。
然後,在初始化 master 的時候指定 kubeadm.yaml 的路徑:
配置 Network plugin
CNI bridge
flannel
注意:需要 kubeadm init 時設置 --pod-network-cidr=10.244.0.0/16
weave
calico
注意:需要 kubeadm init 時設置 --pod-network-cidr=192.168.0.0/16
添加 Node
跟 Master 一樣,添加 Node 的時候也可以自定義 Kubernetes 服務的選項,格式爲
在把 Node 加入集群的時候,指定 NodeConfiguration 配置文件的路徑
Cloud Provider
默認情況下,kubeadm 不包括 Cloud Provider 的配置,在 Azure 或者 AWS 等雲平臺上運行時,還需要配置 Cloud Provider。如
刪除安裝
動態升級
kubeadm v1.8 開始支持動態升級,升級步驟爲
首先上傳 kubeadm 配置,如
kubeadm config upload from-flags [flags](使用命令行參數)或kubeadm config upload from-file --config [config](使用配置文件)在 master 上檢查新版本
kubeadm upgrade plan, 當有新版本(如 v1.8.0)時,執行kubeadm upgrade apply v1.8.0升級控制平面手動 升級 CNI 插件(如果有新版本的話)
添加自動證書回滾的 RBAC 策略
kubectl create clusterrolebinding kubeadm:node-autoapprove-certificate-rotation --clusterrole=system:certificates.k8s.io:certificatesigningrequests:selfnodeclient --group=system:nodes最後升級 kubelet
手動升級
kubeadm v1.7 以及以前的版本不支持動態升級,但可以手動升級。
升級 Master
假設你已經有一個使用 kubeadm 部署的 Kubernetes v1.6 集群,那麼升級到 v1.7 的方法爲:
升級安裝包
apt-get upgrade && apt-get update重啓 kubelet
systemctl restart kubelet刪除 kube-proxy DaemonSet
KUBECONFIG=/etc/kubernetes/admin.conf kubectl delete daemonset kube-proxy -n kube-systemkubeadm init --skip-preflight-checks --kubernetes-version v1.7.1
更新 CNI 插件
升級 Node
升級安裝包
apt-get upgrade && apt-get update重啓 kubelet
systemctl restart kubelet
安全選項
默認情況下,kubeadm 會開啓 Node 客戶端證書的自動批准,如果不需要的話可以選擇關閉,關閉方法爲
關閉後,增加新的 Node 時,kubeadm join 會阻塞等待管理員手動批准,匹配方法爲
參考文檔
Last updated