阿里云容器服務ACK嚴格遵循社區一致性認證。本文介紹ACK發布Kubernetes 1.20版本所做的變更說明。
版本升級說明
ACK針對Kubernetes 1.20版本提供了全鏈路的組件優化和升級。
核心組件 | 版本號 | 升級注意事項 |
Kubernetes | 1.20.11 |
|
Docker Runtime | 19.03.5 | 無 |
Containerd Runtime | 1.4.4 | 無 |
etcd | 3.4.3 | 無 |
CSI | v1.26 | 無 |
CoreDNS | 1.7.0 |
|
NVIDIA Container Runtime | 3.4.1 | 無 |
版本解讀
資源變更與棄用
【棄用】廢棄Docker運行時:Docker運行時的支持在1.20被標記為廢棄,目前您可以繼續在集群中使用Docker。社區計劃在后續版本中移除。該變動與集群所使用的容器鏡像(Image)無關。您依然可以使用Docker構建您的鏡像。更多信息,請參見Dockershim Deprecation FAQ。
【棄用】對于專有版的Master節點標簽,ACK默認使用
node-role.kubernetes.io/control-plane
,同時在后續版本(不包含1.20)廢棄使用node-role.kubernetes.io/master
。【棄用】刪除selfLink字段,不再支持。更多信息,請參見Stop setting SelfLink in kube-apiserver。
【棄用】Ingress和IngressClass資源的
extensions/v1beta1
API和networking.k8s.io/v1beta1
API已經廢棄,并且會在1.22版本之后被移除。請使用networking.k8s.io/v1
替代。說明由于ACK中默認使用的Nginx Ingress Controller組件的限制,ACK中Ingress和IngressClass資源的networking.k8s.io/v1beta1 API可以正常被使用。
【變更】集群內部署的Admission Webhook組件自簽發的服務端證書需包含必要的SAN字段。當您的ACK集群升級到1.20及以上Kubernetes版本前,請確保集群內部署的Admission Webhook組件自簽發的服務端證書已經包含必要的SAN字段。更多信息,請參見Helm Chart配置示例。
功能增強
kubelet修復探測超時時間對EXEC探測方式不準的問題。修復之后默認的EXEC探測方式的探測超時時間默認為1秒(超時時間較短)。如果您未對EXEC探測方式的探測超時時間設置特定值,建議您加上此配置。
API優先級和公平性( APF )是Kubernetes默認開啟的測試版(Beta)特性。您可以通過此特性對不同的請求進行限制和優先級劃分。更多信息,請參見API Priority and Fairness。
端點切片(Endpoint Slices)特性默認啟動。從1.19開始,kube-proxy默認啟用Endpoint Slices,支持更大規模的集群。更多信息,請參見endpoint-slices。
不可修改ConfigMap和Secret。不可修改ConfigMap和Secret特性進入測試版(Beta)。如果設置ConfigMap或Secret為不可變,將不再允許修改,以降低kube-apiserver壓力。更多信息,請參見Immutable ConfigMaps。
ACK對Kubernetes 1.20版本的增強
管控面增強
觀測性:對Request、Watch等機制增加了諸多指標(Metrics),增加了Master組件的可觀測性。
穩定性:增加對存儲層(etcd)的保護,避免了集群啟動時,過多請求直接穿透到etcd,增強了系統的穩定性。
性能優化:通過增加索引,加速了List請求,減少kube-apiserver CPU消耗。
Windows容器增強
支持并默認開啟端點切片(Endpoint Slices)。
支持Device Plugin。更多信息,請參見Device Plugins。
性能優化
KubeProxy:1.20.11版本中KubeProxy兼容了Alibaba Cloud Linux2(kernel-4.19.91-23)及以上的版本,在開啟IPVS模式時,不設置conn_reuse_mode
為0。更多信息,請參見IPVS。