您好,登錄后才能下訂單哦!
本篇內容介紹了“Kubernetes1.5的新功能介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
主題簡介
1、StatefulSets (原名PetSets)
StatefulSets 現在是 beta 版 (主要是修復和穩定性)
2、改善聯邦支持
新命令:kubefed DaemonSets 部署 Configmaps
3、簡化集群部署
改進kubeadm Master的HA設置
4、節點魯棒性及可擴展性
支持Windows Service容器 實現了CRI(容器運行時接口) 添加kubelet API調用時身份驗證和授權
新特性簡介
1、API 機制
[beta] kube-apiserver支持OpenAPI從alpha移動到beta, 第一個non-go客戶端是基于此特性。
2、應用
[Stable]當replica sets不能創建Pods時,它們將通過API報告失敗的詳細底層原因。 [Stable] kubectl apply現可通過–prune刪除不再需要的資源 [beta] Deployments現可通過API升級到新版本,而之前是無法通過滾動來進行升級的 [beta] StatefulSets允許要求持久化identity或單實例存儲的工作負載從而在Kubernetes創建和管理。 [beta]為了提供安全保障,集群不會強行刪除未響應節點上的Pods,如果用戶通過CLI強行刪除Pods會收到警告。
3、認證
[Alpha]改進了基于角色的訪問控制alpha API。(包括一組默認的集群角色) [Beta]添加了對Kubelet API訪問的認證/授權機制。
4、AWS
[stable]角色出現在kubectl get nodes的結果里。
5、集群生命周期
[alpha] 提升了kubeadm二進制包的交互和可用性,從而更易于新建一個運行集群。
6、集群運維
[alpha] 在GCE上使用kube-up/kube-down腳本來創建/移除集群高可用(復制)的主節點。
7、聯邦
[beta] 支持聯邦ConfigMaps。 [alpha] 支持聯邦Daemonsets。 [alpha] 支持聯邦Deployments。 [alpha]集群聯邦:為聯邦資源添加對于DeleteOptions.OrphanDependents的支持。 [alpha]引入新命令行工具:kubefed,簡化聯邦控制臺的部署以及集群注冊/注銷體驗。
8、網絡
[stable]服務可以通過DNS名稱被其他服務引用,而不是只有在pods里才可以。 [beta]為NodePort類型和LoadBalancer的服務保留源IP的選項。 [stable]啟用beta ConfigMap參數支持的DNS水平自動伸縮
9、節點
[alpha]支持在容器運行時啟用用戶命名空間重映射的時候,保留對宿主用戶命名空間的訪問。 [alpha]引入了v1alpha1版本的CRI(容器運行時接口) API,它允許可插拔的容器運行時;現有一個已經就緒的用于測試和反饋的docker-CRI集成。 [alpha]Kubelet基于QoS層在每個Pod的CGroup層級里啟動容器。 [beta]Kubelet集成了memcg提示消息API,來檢測是否超過閾值。 [beta]引入了Beta版本的容器化節點一致性測試: gcr.io/google_containers/node-test:0.2。從而讓用戶驗證node設置。
10、調度
[alpha]添加了對不透明整數資源(node級)的審計支持。 [beta] PodDisruptionBudget已經升級到Beta版,當想要應用SLO時,可以用來安全地drain節點。
11、UI
[stable]Dashboard UI如今顯示面向用戶的對象及它們的資源使用情況。
12、Windows
[alpha]添加了對Windows Server 2016節點和調度Windows Server Container的支持。 已知問題 CRI已知問題及限制。 當volume路徑包含空格時,DeviceNameFromMount()函數不能正確的返回volume路徑。 聯邦alpha版的特性不具有特征定義,因此默認啟用,在未來的版本中將修復這一問題。 聯邦控制面板可通過更新控制面板組件Deployment規格的鏡像字段來進行升級,然而在該版本中聯邦控制面板升級尚未進行測試。
重大改變
1、節點控制器不再強行刪除來源于apiServer的pods
對于有狀態的應用StatefulSet(原名為 PetSet)而言,這個改動意味著創建替換的Pods被阻塞,直到舊的Pods確定不再運行(意味著kubelet從分區返回,Node對象的刪除,云服務商里實例的刪除,或強行刪除api-Server里的Pod)。這里通過確保不可達的Pod不會被認為已經死亡來防止集群應用出現“腦裂”的狀況,除非一些“包圍”操作提供了上述之一的情況。
對于其他現有的除StatefulSet外的控制器,這對于控制器替換Pods沒有影響,因為控制器不會重用Pods名稱(他們使用generate-name)用戶編寫的控制器會重用Pod對象的名稱,應該考慮這個變化。
當使用kubectl delete … –grace-period=0 刪除一個對象時,客戶端將開始進行優雅的刪除并等待,直到資源完全被刪除。要立即強制刪除,使用–force 標志。這可以防止用戶不小心讓兩個Stateful Set共享可能導致數據損壞的相同的持久存儲。
2、允許匿名API服務器的訪問,通過授權組系統設置認證的用戶
kube-apiserver添加了–anonymous-auth 標志,默認為true。當它啟用時,訪問安全端口的請求不會被其他配置的認證方法所拒絕,這些請求被當做匿名請求,并且用戶名為system:anonymous,組織為system:unauthenticated。
認證的用戶被設為system:authenticated組。
3、即使路徑是用于類型的有效字段,如果路徑在json文件下不提供字段,kubectl get -o jsonpath=… 將拋出一個錯誤。這個改變從pre-1.5版本開始,即使他們目前不在 json文件下,也會返回一些字段的默認值。
4、對于VolumeMounts的strategicmerge patchMergeKey是由“名稱”到“mountPath”的改變。這是必要的,因為名稱字段引用Volume的名稱,并且不是VolumeMount的唯一鍵。如果安裝多個相同的volume,多個VolumeMounts將有同樣的 Volume名稱。“mountPath”是獨一無二的,并可以作為mergekey。
升級前注意事項
1、升級前重要的安全相關改變
必須在kube-apiserver設置–anonymous-auth=false參數,除非你是一個測試該功能的開發者并且了解它。如果不這樣,你會允許未經授權的用戶訪問你的apiserver。
必須在聯邦apiserver設置–anonymous-auth=false參數,除非你是一個測試該功能的開發者并且了解它。如果不這樣,你會允許未經授權的用戶訪問你的聯邦apiserver。你不需要調整kublete的該參數:1.4的Kubelet APIs沒有授權。
2、batch/v2alpha1.ScheduledJob被重命名為batch/v2alpha1.CronJob。
3、PetSet被重命名為StatefulSet。如果你現在有PetSets,你要在升級為StatefulSets前后進行一些額外的遷移操作。
4、如果你從v1.4.x升級你的集群聯邦組件,請更新你的federation-apiserver和federation-controller-manager到新版本。
5、廢棄的kubelet –configure-cbr0參數被移除。經典的網絡模式也是。如果你依賴于此模式,請調研其他的網絡插件kubenet或cni是否滿足需求。
6、新的client-go結構,參考kubernetes/client-go進行版本控制策略。
“Kubernetes1.5的新功能介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。