升級到Kubernetes1.6需要準備事項_Kubernetes中文社群
阿新 • • 發佈:2018-12-27
今天Kubernetes官方正式釋出了,重點強調了一些注意事項。希望對同樣有升級Kubernetes 1.6計劃的朋友有所幫助。
1、ETCD叢集備份
在更新到1.6之前,強烈建議您備份ETCD叢集中的資料。請查閱您正在使用的安裝工具(kargo, kops, kube-up, kube-aws, kubeadm)以獲得具體建議。
Kubernetes 1.6鼓勵使用ETCD 3.0,從ECTD 2.0切換到ETCD 3.0涉及不同的儲存引擎之間的資料的完全遷移。在從ETCD 2.0–>ETCD 3.0遷移期間,您必須停止API Server,防止向ETCD叢集中寫入資料。HA的方案目前無法使用官方的Kubernetes工具進行遷移。
如果使用ETCD 3.0,Kubernetes 1.6也預設採用protobuf編碼。這種變化是不可逆的。如果要回滾,您必須使用protobuf/ETCD 3.0切換之前的資料進行備份還原,並且自備份以來的資料更改都會丟失。由於Kubernetes 1.5不支援protobuf編碼,如果升級到protobuf後回滾到1.5版本那麼,您仍需從切換之前的備份中恢復,同樣,自轉換protobuf之後的任何資料更改都將丟失。轉換到protobuf後,您應該在驗證Kubernetes叢集能夠正確工作之後再投入生產使用。
備份是一個很好的預防措施,特別是在升級的過程中。此次升級過程有多個已知的問題,唯一的應對方法就是從備份中還原。
2、主要更新和釋出主題
- 通過使用ETCD 3.0, Kubernetes叢集現在預設支援5000個節點。
- 基於角色的訪問控制(RBAC)升級到Beta版,併為控制平面、節點、控制器等元件定義了預設的安全形色。
- kubeadm的叢集引導工具升級到了Beta版,亮點:所有的通訊都通過TLS進行。
- 授權(Authorzation)外掛可以有kubeadm安裝,包括了新的RBAC預設的設定。
- 引導令牌系統現在允許令牌的管理和過期。
- kubefed聯邦引導工具現在也升級到了Beta版。
- 現在Kubernetes與容器執行時的互動通過CRI介面進行,這使kubelet與container runtime整合更加容易。Docker仍然是通過Docker-CRI(Beta版)。
- 多種排程相關的特性已經升級到Beta版:
您現在可以同時使用多種排程器。
Node和Pod現在支援親和性和反親和性。
高階的排程可以使用汙點(taint)和耐受(toleration)特性。 - 當一個節點有問題時,您可以指定(每個Pod)Pod在這個節點上的停留時間。
- 多種儲存相關的特性升級到了GA版:
StorageClass預先安裝並在Azuer, AWS, GCE, OpenStack和vSphere上設定為預設值。
可配置Dynamic Provisioning和StorageClass。
現在可以通過滾動升級來更新DaemonSet。