1. 程式人生 > >kubernetes升級說明以及各個元件啟動引數變動

kubernetes升級說明以及各個元件啟動引數變動

kubernetes 使用二進位制檔案安裝:安裝參考

一、1.6 升級到 1.7 :

1.7 各個元件的啟動配置檔案參考:https://github.io/.....

各個元件的啟動引數可以不變。

二、1.7 升級到 1.8 :

1.8 各個元件的啟動配置檔案參考:https://github.io/.....

1.kubelet的啟動引數中,--require-kubeconfig已經不用了,如果配置了會在日誌中看到警告。並且,--experimental-bootstrap-kubeconfig已經去掉了experimental-這個單詞。


2.新版本的kubelet啟動時會嚴格判斷swap是否開啟,如果開啟會報錯,使用sfdisk -l檢視一下哪個區分是swap分割槽,使用swapoff /dev/xvda2這樣的命令把它關閉,或者直接swapoff
使用free -m確認swap已經關閉。
如果你有其他原因需要開swap,可以通過kubelet的啟動引數 --fail-swap-on=false

3.在1.8.4增加了Node Authorization機制,需要在apiserver中的配置檔案中--authorization-mode=增加一個Node值,並在--admission-control=...,增加一個NodeRestriction,..不然會報錯。並刪除 system:node cluster role binding 

  --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,NodeRestriction \
  --authorization-mode=Node,RBAC

(或者你可以不加這個Node Authorization機制,這樣會導致節點使用kubelet-bootstrap註冊不成功,會出現許可權問題。)

4. 注意:替換kubelet二進位制檔案,會導致所有容器重啟。

三、1.8 升級到 1.9 :

1.9 各個元件的啟動配置檔案參考:https://github.io/.....

1. kube-apiserver 中的 --experimental-bootstrap-token-auth 改為:--enable-bootstrap-token-auth

2. HA 方面改進非常大:kube-apiserver 中增加 --endpoint-reconciler-type=lease

   在1.9以前,如果我們有兩臺kube-apiserver通常我們設定 --apiserver-count=1 ,這樣當一臺kube-apiserver掛掉,觸發自動更新 ep/kubernetes 的節點IP,但是,當兩臺kube-apiserver同時存活的時候,就會導致頻繁更新ep/kubernetes 如:

1.8以及1.8以前的版本,當兩臺kube-apiserver同時存活時
以及--apiserver-count=1
[[email protected] ~]# kubectl get ep kubernetes
NAME         ENDPOINTS         AGE
kubernetes   192.168.5.7:443   183d
[[email protected] ~]# kubectl get ep kubernetes
NAME         ENDPOINTS         AGE
kubernetes   192.168.5.6:443   183d
可以看到endpoints在兩臺apiserver中不斷來回切換。

在1.9 以後,增加 --endpoint-reconciler-type=lease 它使用了一個被每個 apiserver 副本定期更新的租約。當副本宕機時,它會停止更新自己的租約,其他副本注意到這個租約過期並從 endpoint 列表中將其刪除:

1.9+版本,兩臺kube-apiserver存活的時候,
以及設定了 --endpoint-reconciler-type=lease
[[email protected] ~]# kubectl get ep kubernetes
NAME         ENDPOINTS                         AGE
kubernetes   192.168.5.6:443,192.168.5.7:443   183d

當一臺kube-apisever掛掉:
[[email protected] ~]# kubectl get ep kubernetes
NAME         ENDPOINTS         AGE
kubernetes   192.168.5.7:443   183d

ha詳細參考: https://k8smeetup.github.io/docs/admin/high-availability/

參考: