介紹Kubernetes 1.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進行版本控制策略。
7、廢棄的kube-scheduler –bind-pods-qps和–bind-pods burst引數被移除,替換為–kube-api-qps和–kube-api-burst。
8、如果你需要使用1.4的特性:PodDisruptionBudget(例如建立了PodDisruptionBudget物件),那麼在從1.4升級為1.5之前,你一定要刪除所有建立的PodDisruptionBudget物件(policy/v1alpha1/PodDisruptionBudget)。升級之後不可能刪除這些物件。它們的存在也會妨礙你使用1.5裡Beta版的PodDisruptionBudget特性(policy/v1beta1/PodDisruptionBudget)。如果你已經進行了升級,那麼你需要降級到1.4來刪除這policy/v1alpha1/PodDisruptionBudget物件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2642210/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 詳細介紹:Kubernetes1.4版本的新功能
- Java 20 新功能介紹Java
- Java 18 新功能介紹Java
- Java 16 新功能介紹Java
- Java 17 新功能介紹(LTS)Java
- Flutter 2.2 全新功能介紹Flutter
- SOLIDWORKS 2022 Simulation新功能介紹Solid
- Kubernetes Gateway API 介紹GatewayAPI
- Kubernetes的client-go庫介紹clientGo
- 實時渲染KeyShot Pro 新功能介紹
- SOLIDWORKS 2022官方正版新功能介紹Solid
- macOS Monterey 12.0 新功能介紹:快捷指令Mac
- 超詳細 Java 15 新功能介紹Java
- Fabric1.3新功能詳細介紹
- 第64篇 Kubernetes的簡單介紹
- vim 的模糊查詢外掛 LeaderF 新功能介紹
- kubernetes client-go功能介紹clientGo
- Kubernetes 准入控制 Admission Controller 介紹Controller
- Kubernetes 支援 OpenAPI 的新功能API
- Apache Flink 1.9.0版本新功能介紹Apache
- Kubernetes 的層級名稱空間介紹
- Kubernetes(K8S) kubesphere 介紹K8S
- BitTorrent 客戶端 Deluge 2.0 釋出:新功能介紹客戶端
- FreeSql 新功能介紹:貪婪載入五種方法SQL
- ORM 創新解放勞動力 -SqlSugar 新功能介紹ORMSqlSugar
- xcode 12有哪些改動?xcode 12新功能介紹XCode
- 【Kubernetes系列】第2篇 基礎概念介紹
- kubernetes實踐之六十七:Istio介紹
- AutoCAD2023軟體mac中文版最新功能介紹Mac
- macOS Monterey 12 新功能介紹 – Safari標籤頁分組功能Mac
- LangChain SQL介紹以及使用Qwen1.5執行SQL查詢教程LangChainSQL
- 【Kubernetes系列】第6篇 Ingress controller - nginx元件介紹ControllerNginx元件
- 【Kubernetes系列】第5篇 Ingress controller - traefik元件介紹Controller元件
- JuiceFS 直連 NFS 新功能介紹,賦能 NAS 進行 AI 訓練UINFSAI
- Archicad 26中文版更新,Mac版archicad 26新功能介紹Mac
- [Android P] Android P版本 新功能介紹和相容性處理(一)Android
- 從0到1使用Kubernetes系列(二)——安裝工具介紹
- 什麼,kafka能夠從follower副本讀資料了 —kafka新功能介紹Kafka