日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抢先看!Kubernetes v1.21 新特性一览

發布時間:2024/8/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抢先看!Kubernetes v1.21 新特性一览 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 倪朋飛

來源 |?漫談云原生

頭圖 | 下載于視覺中國

Kubernetes v1.21 下個月就要發布了(v1.21.0 將于 4 月 8 日發布),本文梳理該版本帶來的新特性,以便你為下個月的升級做好準備。

? PodSecurityPolicy 棄用

PodSecurityPolicy(PSP)是 Kubernetes 1.8 開始就支持的 Beta 特性,大量應用于容器的安全策略控制。但由于其 API 不夠靈活、認證模型不夠完善且配置更新繁瑣等缺陷,PodSecurityPolicy 將在 v1.21 正式棄用[1],并將在 v1.25 中從代碼庫中刪除。已經使用 PodSecurityPolicy 的用戶建議遷移到 Gatekeeper[2]。

? 不可變 ConfigMap/Secret 進入穩定版

當集群包含大量 ConfigMap 和 Secret 時,大量的 watch 事件會急劇增加 kube-apiserver 的負載,并會導致錯誤配置過快傳播到整個集群。在這種情況中,給不需要經常修改的 ConfigMap 和 Secret 設置 immutable: true 就可以避免類似的問題。

注意,設置 immutable: true 之后,ConfigMap 和 Secret 內容更新時需要刪除并重新創建,且使用它們的 Pod 也需要刪除重建。

? IPv4/IPv6 雙棧支持 Beta

IPv4/IPv6 雙棧支持在 v1.20 的時候進行了重構,并將于 v1.21 中進入 Beta 版本(默認開啟),kubeadm 也已經支持創建 IPv4/IPv6 雙棧集群。該特性開啟后,Kubernetes Service 和 Pod 會同時分配 IPv4 和 IPv6 兩個地址。

注意,如果使用了 CNI 插件和云服務商擴展(Cloud Provider),CNI 插件和云服務商擴展也需要支持 IPv4/IPv6 雙棧。

? CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta

從 v1.21 開始,Kubernetes 支持 CSI 存儲插件的 Volume 健康檢查(Alpha 版),CSI 插件需要實現外部健康監控控制器。當 Volume 或者 Node 出現異常時,該控制器會向 Volume 所屬的 PVC 以及使用該 PVC 的 Pod 發送一個異常事件。

CSIStorageCapacity 用于跟蹤 CSI 存儲容量并確保 Pod 調度到足夠存儲容量的節點上。該特性從 v1.21 開始進入 Beta 階段,并默認開啟。注意,使用該特性需要 CSI 驅動程序實現對應的接口。

? TTL 控制器 Beta

TTL 控制器用來自動清理已經結束的 Pod,如處于 Complete 或 Failed 狀態的 Job。Pod 停止之后的 TTL 可以通過 .spec.ttlSecondsAfterFinished 來設置。

注意,該特性要求集群中各節點(包括控制節點)的時間一致,比如在所有節點中運行 NTP 服務。

? GenericEphemeralVolume Beta

通用臨時卷(GenericEphemeralVolume)類似于 emptyDir 卷,但它更加靈活:

  • 存儲可以是本地的,也可以是網絡存儲。

  • 卷可以有固定的大小,Pod 不能超量使用。

  • 卷可能有一些初始數據,這取決于驅動程序和參數。

  • 當驅動程序支持,卷上的典型操作(如快照、克隆、擴展等)也被支持。

? Kubelet 內存控制策略 Alpha

內存控制策略是 Kubelet 在 v1.21 中新增的一個 Alpha 特性,用于為 Pod 提供 NUMA 內存。Kubelet 新增了?--memory-manager-policy 用于配置內存控制策略,它支持兩個策略:

  • 默認策略是 none,等同于內存控制策略未開啟;

  • static 策略:為 Pod 分配 NUMA 內存并確保 Guaranteed Pod 預留足夠的內存(Kubelet 狀態保存在?/var/lib/kubelet/memory_manager_state 文件中)。

? ServiceLoadBalancerClass Alpha

以前 LoadBalancer 類型的服務都需要云服務商擴展(Cloud Provider)去配置云上負載均衡器,并且整個集群中只能運行一個 Cloud Provider。Kubernetes v1.21 新增的 ServiceLoadBalancerClass 特性允許一個集群中運行多個負載均衡器的實現,而 Service 可以通過 spec.loadBalancerClass 指定使用哪個具體實現(類似于 Ingress Controller)。

? PodDeletionCost Alpha

以前從 ReplicaSet 刪除 Pod 時只能設置副本數量而不能指定要刪除的 Pod,而 Kubernetes v1.21 新增的 PodDeletionCost 特性允許用戶設置哪些 Pod 優先刪除。使用該特性時需要給 Pod 增加一個 annotation controller.kubernetes.io/pod-deletion-cost,其值表示刪除一個 Pod 的成本,值越小代表越優先刪除。當 annotation 不存在時,表示其刪除成本為 0。

? Indexed Jobs Alpha

通常,當使用 Job 來運行分布式任務時,用戶需要一個單獨的系統來在 Job 的不同 worker Pod 之間分配任務。比如,設置一個工作隊列,逐一給每個 Pod 分配任務。Kubernetes v1.21 新增的 Indexed Job 會給每個任務分配一個數值索引,并通過 annotation batch.kubernetes.io/job-completion-index 暴露給每個 Pod。使用方法為在 Job spec 中設置 completionMode: Indexed。

? TopologyAwareHints Alpha

服務拓撲(Service Topology)在 Kubernetes v1.21 中已棄用,并將在 v1.22 中刪除。Kubernetes v1.21 新增的拓撲感知提示提供了類似的功能。該特性開啟后,EndpointSlice 控制器將填充 EndpointSlice 中每個 Endpoint 上的提示字段,以將其分配到一個區域。然后,諸如 kube-proxy 這樣的組件在配置請求路由時就可以使用這些提示。

? 其他需要留意的新特性

  • CronJob 進入穩定版本,已有用戶注意切換 API 版本到 apiVersion: batch/v1。

  • Sysctls 進入穩定版本,用戶終于有一個穩定的 API 來配置 Sysctl 了。

  • Pod disruption budgets(PDB)進入穩定版本,已有用戶注意切換 API 版本到 apiVersion: policy/v1。

  • RootCAConfigMap 進入穩定版本,kube-controller-manager 將會在每個 namespace 發布一個名為 kube-root-ca.crt 的 ConfigMap,內容是 ca.crt,可用來驗證 Kubernetes API 連接。

  • EndpointSlice 進入穩定版本,已有用戶注意切換 API 版本到 apiVersion: discovery.k8s.io/v1。

  • ServiceAccountIssuerDiscovery 進入穩定版本,該特性使得用戶能夠用聯邦的方式結合使用 Kubernetes 集群(_Identity Provider_,標識提供者)與外部系統(_relying parties_, 依賴方)所分發的服務賬號令牌。

  • CRIContainerLogRotation 進入穩定版本,kubelet 將會自動為 containerd 等 CRI 容器運行時輪換日志。

  • 結構化日志(Structured Logging)進入 Beta,很多組件的日志都改成以 JSON 格式記錄,這樣第三方日志處理系統就可以方便地從日志中解析出日志所對應的資源對象和資源屬性。

  • EfficientWatchResumption 進入 Beta,kube-apiserver 重啟后 watch 緩存將更高效的恢復,更好的支持大規模集群。

  • CSIServiceAccountToken 進入 Beta,使得 CSI 驅動程序可以獲取 Pod 的 service account token。

  • GracefulNodeShutdown 進入 Beta,Kubelet 將會檢測 Node 的狀態并在 Node 關閉前終止其上運行的 Pod(使用前需要配置 ShutdownGracePeriod 和 ShutdownGracePeriodCriticalPods)。

  • Network Policy 支持設置端口范圍(port 和 endPort),大量端口時不再需要每個端口單獨列出。

參考鏈接:

https://github.com/kubernetes/kubernetes/pull/97171

https://github.com/open-policy-agent/gatekeeper

你覺得這些特性怎么樣?

歡迎來評論區聊聊~

CSDN協同行業大佬 打造13長熱門知識圖譜及IT成長路線 助力千萬IT人成長,快速實現職場進階! 更多精彩推薦 ?Kubernetes 和 Docker,到底什么關系??PassMark 更新排行,蘋果 M1 殺瘋了?干貨!Redis集群工作原理解析點分享點收藏點點贊點在看

總結

以上是生活随笔為你收集整理的抢先看!Kubernetes v1.21 新特性一览的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。