全部產品
Search
文件中心

Container Service for Kubernetes:(停止維護)ACK發布Kubernetes 1.16版本說明

更新時間:Sep 12, 2024

阿里雲Container ServiceKubernetes版(ACK)嚴格遵循社區一致性認證。本文介紹ACK發布Kubernetes 1.16版本所做的變更說明。

版本升級說明

ACK針對Kubernetes 1.16版本提供了全鏈路的組件最佳化和升級。

核心組件

版本號碼

升級注意事項

Kubernetes

1.16.9

1.16.6

Kubernetes 1.16版本對應內建的 CoreDNS為1.6.2版本。相較於Kubernetes 1.14 內建的CoreDNS 1.3.1版本,新版本的CoreDNS有以下變化:

  • 廢棄proxy外掛程式,改用效能更高的forward外掛程式。

  • 預設開啟ready外掛程式,作為readiness的檢查外掛程式。

為了使您的Corefile相容新版本的CoreDNS,我們會幫您自動進行Corefile的遷移工作,使您的Corefile匹配更新版本的CoreDNS。

Docker

19.03.5 (containerd 1.2.10)

etcd

3.4.3

版本解讀

  • 效能最佳化

    Kubernetes 1.16.6版本相比1.14的效能最佳化如下:

    • 對PodAffinity進行最佳化,效能提升了約100%。

    • 對序列化操作進行了最佳化。Pod list操作提升了約40%效能,Node list操作提升了約30%效能。

    • 提升了Server端在處理帶有巨大map對象的apply請求時候的效能。

    • 最佳化了nodelease的心跳包方案。在一個8000節點的ACK叢集中,能夠每分鐘降低50k次向API Server/etcd擷取Lease的請求。

    • Kubernetes 1.16.6版本在Pod建立速度方面有明顯提升。在無狀態Pod情境(Pod不用掛載configmap、secret等volume)的建立速度上:

      • 1.16.6和1.14的Pod建立時間都滿足ACK sig-scalability 定義的SLA((99%已拉取好鏡像的Pod 啟動時間在5秒內)。

      • 在最差情況下(99分位點),Kubernetes 1.14版的Pod建立速度接近5秒,表現差於同指標下Kubernetes 1.16.6版的3秒。

    Docker 19.03.5版本相對之前的版本的最佳化如下:

    • 內建buildkit,最佳化鏡像構建速度。

    • runC命令最佳化systemd檢測邏輯。容器啟動速度加快,佔用更小記憶體。

    Docker 19.03.5版本在運行時穩定性上提升如下:

    • 修複Pod使用exec健全狀態檢查時Pod偶發重啟的問題。

    • 修複運行命令docker cp時的安全性風險漏洞CVE-2018-15664。

    • 修複容器包含多進程(富容器)退出時Docker不響應的問題。

    • 修複containerd的控制代碼泄露問題。

  • 功能增強

    Kubernetes 1.16.6版本相較於1.14版本的演化和增強值得注意的變更主要為以下幾個方面。

    • extensions/v1beta1、apps/v1beta1、apps/v1beta2的API均不再被預設支援。其中,所有apps/v1beta1和apps/v1beta1下的資源使用apps/v1替代;位於extensions/v1beta1下的資源daemonsets、deployments、replicasets將使用apps/v1替代;位於extensions/v1beta1下的資源networkpolicies使用networking.k8s.io/v1替代。

      說明

      為了更好地相容您的業務,ACK會在Kubernetes 1.16.6版本開啟對上述API的相容,並在1.18版本再徹底廢除對其支援。建議您儘快調整這些API。

    • 已廢棄的kubelet安全控制參數AllowPrivilegedHostNetworkSourcesHostPIDSourcesHostIPCSources 已被移除,取而代之的是一些准入控制(例如PodSecurityPolicy)來增強這些限制。

    • 多個功能進入更加穩定的階段,例如CRD和Admission webhook在1.16.6版本中進入到了GA階段。

ACK對Kubernetes 1.16.6版本的增強

ACK針對Kubernetes 1.16版本做了以下方面的增強:

  • 穩定性和效能增強

    • 為等冪函數添加重試,提高叢集建立成功率。

    • 在升級kubelet的過程中不重啟存量容器。

    • 解決hugetlb導致kubelet啟動失敗問題。

  • 可觀測性增強

    • 最佳化Server Load Balancer到apiserver的探活日誌。

    • 調整aggregationcontroller日誌等級。

    • 最佳化阿里雲Container Service託管版叢集中命令get cs的輸出結果。

    • 在summary和container指標介面上增強安全沙箱容器的指標。

參考連結