日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

(停止維護)ACK發布Kubernetes1.24版本說明

阿里云容器服務Kubernetes版(ACK)嚴格遵循社區一致性認證。本文介紹ACK發布Kubernetes 1.24版本所做的變更說明。

版本升級說明

ACK針對Kubernetes 1.24版本提供了組件的升級和優化。

核心組件

版本號

升級注意事項

Kubernetes

1.24.6-aliyun.1

  • 升級前請仔細閱讀版本解讀

  • Kubernetes 1.24通過Dockershim對Docker的支持現已移除,但是Docker構建的鏡像可以繼續使用,新建的節點請使用Containerd作為容器運行時。更多信息,請參見Dockershim Removal FAQ

  • Kubernetes 1.24基于安全方面的考慮(特性門控LegacyServiceAccountTokenNoAutoGeneration默認啟用),Secret API將不會為ServiceAccount自動創建Secret對象存放Token信息,需要使用TokenRequest API來獲取ServiceAccount的Token。該Token具備過期時間,更加安全。如果一定需要創建一個永不過期的Token, 請參見service-account-token-secrets

  • 新建Kubernetes 1.24專有版集群時kubeadm添加控制面節點不會添加node-role.kubernetes.io/master標簽,只添加node-role.kubernetes.io/control-plane標簽,但是Taint里node-role.kubernetes.io/master:NoSchedulenode-role.kubernetes.io/control-plane:NoSchedule還會同時存在,1.25版本后將移除Taint里的node-role.kubernetes.io/master:NoSchedule

  • Kubernetes 1.24及以后的版本,去除了kube-proxy監聽NodePort的邏輯,在NodePort與內核net.ipv4.ip_local_port_range范圍有沖突的情況下,可能會導致偶發的TCP無法連接的情況,導致健康檢查失敗、業務異常等問題。升級前,請確保集群沒有NodePort端口與任意節點net.ipv4.ip_local_port_range范圍存在沖突。更多信息,請參見Kubernetes社區PR

  • CVE-2022-3172

etcd

3.5.4

CoreDNS

v1.9.3.6-32932850-aliyun

此次升級不會對業務造成影響,支持的新特性如下:

  • 優化CoreDNS調度親和性配置,允許集群所有節點為彈性伸縮節點。

  • 關閉ServError類型的解析結果緩存。

  • 按Hostname反親和調度由preferred改成required,即強制按節點反親和調度。

  • 增加自定義參數支持。

  • 默認開啟解析日志。

CRI

containerd 1.5.13

CSI

v1.26

CNI

Flannel v0.15.1.13-941db231-aliyun

  • 增加用于安裝Flannel CNI插件的初始化容器。

  • 將默認的IP緩存路徑移動至/var/run目錄中,以避免重啟機器導致的IP泄露問題。

  • 支持ARM64機型。

  • 修復CVE-2022-28391、CVE-2022-37434。

Terway

Terway版本需要大于v1.1.0。

NVIDIA Container Runtime

3.7.0

Ingress Controller

v1.2.0-aliyun.1

  • Ingress Controller 0.44.0及以下版本使用了v1beta1版本的Ingress API(該資源版本在1.22版本阿里云集群中得到了保留),無法在Kubernetes 1.24集群中正常運行,您需要先在1.22集群中升級Nginx Ingress Controller到1.2.0版本及以上再進行集群的升級。

  • 組件升級可能會造成業務的瞬斷和配置兼容性問題,請您在組件升級過程中充分驗證無誤后,再進行集群的升級。

版本解讀

重大變化

  • 在Kubernetes 1.24版本后,通過Dockershim對Docker的支持現已經移除,但是Docker構建的鏡像可以繼續使用,新建的節點請使用Containerd作為容器運行時。關于Dockershim移除對Docker的支持的更多信息,請參見Dockershim Removal FAQ。關于移除Dockershim的影響及反饋,請參見GitHub issue

  • 在Kubernetes 1.24版本后,kube-apiserver 99%的調用延遲下降10倍,同時負載增加大約25%,這是因為Kubernetes 1.24版本基于Go 1.18編譯,而Go 1.18的垃圾回收算法發生重大改變。如果無法接受kube-apiserver使用內存增長,可以通過修改GOGC環境變量來解決(GOGC=63大約可以和以前的內存消耗一樣)。

  • 在Kubernetes 1.24版本后,基于安全方面的考慮(特性門控LegacyServiceAccountTokenNoAutoGeneration默認啟用),Secret API將不會為ServiceAccount自動創建Secret對象存放Token信息,需要使用TokenRequest API來獲取ServiceAccount的Token,該Token具備過期時間,更加安全。如果一定需要創建一個永不過期的Token,請參見service-account-token-secrets

  • 在Kubernetes 1.24版本后,新建專有版集群時kubeadm添加控制面節點不會添加node-role.kubernetes.io/master標簽,只添加node-role.kubernetes.io/control-plane標簽,但是Taint里node-role.kubernetes.io/master:NoSchedulenode-role.kubernetes.io/control-plane:NoSchedule還會同時存在,1.25版本后將移除Taint里的node-role.kubernetes.io/master:NoSchedule

新增功能

  • 在Kubernetes 1.23版本后,結構化日志(Structured Logging)進入Beta,許多組件(kube-scheduler、kubelet等)日志都改成使用結構化日志,結構化日志使用 key="value" 形式(例如GET /healthz: (57.126μs) 200變為verb="GET" URI="/healthz" latency="57.126μs" resp=200)便于解析日志,不需要再使用正則表達式去解析非結構化的日志。推薦使用結構化日志打印或者JSON格式打印,詳細信息,請參見introducing-structured-logs。同時JSON格式的日志信息默認使用stderr輸出代替stdout

  • 在Kubernetes 1.23版本后,如果配置OS參數,kubelet會拒絕Pod操作系統參數pod.Spec.OS與節點的OS標簽不匹配的Pods。

  • 在Kubernetes 1.23版本后,StatefulSet默認支持Pod就緒的最小時間.spec.minReadySeconds,特性門控StatefulSetMinReadySeconds進入Beta,詳細信息請參見 Minimum Ready Seconds for StatefulSets

  • 在Kubernetes 1.23版本后,CSI CSIDriver.Spec.StorageCapacity字段支持修改。

  • 在Kubernetes 1.23版本后,開啟JobReadyPods特性,可以在Job Status中顯示Pods處于Ready狀態的數量。

  • 在Kubernetes 1.23版本后,CRD新增CustomResourceValidationExpressions特性門控,基于x-kubernetes-validations拓展,可以使用通用表達式語言(CEL)來驗證定制資源。

  • 在Kubernetes 1.23版本后,因為Go 1.17支持Windows ARM64,所以新增支持生成Windows ARM64的客戶端二進制文件。

  • 在Kubernetes 1.23版本后,client-go為Workqueue新增一個Processing的狀態,Shutdown Workqueue的時候會等待工作隊列里所有正在進行的項目完成。

  • 在Kubernetes 1.23版本后,新增指標admission_webhook_request_total,包含標簽:WebHook名字、Admission類型、請求動作、HTTP狀態碼、請求是否被拒絕、請求資源的Namespace。

  • 在Kubernetes 1.23版本后,APIServer的部分監控指標已經GA:controller_admission_duration_secondsstep_admission_duration_secondswebhook_admission_duration_secondsapiserver_current_inflight_requestsapiserver_response_sizes。除此之外APIServer還新增了針對LIST請求的指標。

  • 在Kubernetes 1.23版本后,部分Scheduler指標已經GA:pending_podspreemption_attempts_totalpreemption_victimsschedule_attempts_totalscheduling_attempt_duration_seconds(原e2e_scheduling_duration_seconds )、pod_scheduling_duration_secondspod_scheduling_attemptsframework_extension_point_duration_secondsplugin_execution_duration_secondsqueue_incoming_pods_total

  • 在Kubernetes 1.23版本后, 對kube-controller-manager的健康檢查會包含每一個控制器的健康檢查。

  • 在Kubernetes 1.24版本后,CSIStorageCapacity API支持顯示當前可用的存儲大小,確保Pod調度到足夠存儲容量的節點上,減少Volumes創建和掛載失敗導致的Pod調度延遲,詳細信息請參見Storage Capacity Constraints for Pod Scheduling

  • 在Kubernetes 1.24版本后,gRPC探針進入Beta,默認可用特性門控參數GRPCContainerProbe,使用方式請參見configure probes

  • 在Kubernetes 1.24版本后,CSI做了一些優化,例如Finalizer支持in-tree PV刪除保護,內置存儲插件支持遷移到CSI外部存儲驅動,詳細信息請參見In-tree Storage Plugin to CSI Migration Design Doc

  • 在Kubernetes 1.24版本后,為了能在Windows上運行kube-proxy,kube-proxy新增2個參數:

    • --forward-healthcheck-vip支持將到Service VIP的健康檢查流量轉發到kube-proxy的健康檢查服務。

    • --root-hnsendpoint-name指定根網絡命名空間的HNS端點的名稱。

  • 在Kubernetes 1.24版本后,CronJob新增可選字段timeZone。開啟特性CronJobTimeZone后,您可以在特定的時區運行CronJob。該特性將在Kubernetes 1.25版本進入Beta。

  • 在Kubernetes 1.24版本后,豐富了監控指標。

    • 增加webhook_fail_open_count指標用于監控Webhooks失敗。

    • kube-proxy引入新的指標sync_proxy_rules_no_local_endpoints_total展示沒有內部Endpoints的服務數量。

    • kubelet新增一個指標kubelet_volume_stats_health_abnormal用于記錄Volume健康狀態。

    • 使用evictions_total代替evictions_number指標。

  • 在Kubernetes 1.24版本后,StatefulSets支持可配置maxUnavailable參數,使得滾動更新時可以更快地停止Pods。

  • 在Kubernetes 1.24版本后,OpenAPI V3默認開啟。

  • 在Kubernetes 1.24版本后,Kubernetes基于Go 1.18編譯,默認不再支持SHA-1哈希算法驗證證書簽名。

  • 在Kubernetes 1.24版本后,kubelet會在Mangle表中添加一個名為KUBE-IPTABLES-HINT的iptables鏈,需要在主機網絡命名空間里修改iptables規則的容器化組件,可以使用它來更好的確認系統要使用iptables-legacy還是iptables-nft

  • 在Kubernetes 1.23和1.24版本中,kubectl做了一些功能優化,新增了一些指令,提升用戶幫助可讀性,補全提示支持fish和powershell。

    • kubectl logs默認選取第一個容器。

    • kubectl describe ingress包含IngressClass。

    • kubectl version包含嵌入式Kustomize信息。

    • kubectl get命令支持資源名稱提示,例如kubectl get pod pod1 <TAB>會自動提示Podname等。

廢棄功能

  • 在Kubernetes 1.23版本后,FlexVolume被廢棄,推薦使用Out-of-tree CSI驅動方式。更多信息請參見Kubernetes Volume Plugin FAQ for Storage Vendors

  • 在Kubernetes 1.23版本后,klog廢棄部分命令行參數,Kubernetes正在簡化組件日志,詳細信息請參見System Logs

  • 在Kubernetes 1.23版本后,kubeadm在initjoinupgrade命令中廢棄了--experimental-patches參數,--patches--config不能混合使用。

  • 在Kubernetes 1.23版本后,kube-log-runner包含在Release的TAR包里,代替被廢棄的--log-file參數,詳細信息請參見 kube-log-runner

  • 在Kubernetes 1.23版本后,廢棄指標scheduler_volume_scheduling_duration_seconds

  • 在Kubernetes 1.23版本后,使用apiserver_longrunning_requests指標代替廢棄指標apiserver_longrunning_gauge

  • 在Kubernetes 1.23版本后,kubectl --dry-run必須指定--dry-run=(server|client|none)

  • 在Kubernetes 1.24版本后,Service.Spec.LoadBalancerIP被棄用,因為它無法用于雙棧協議。

  • 在Kubernetes 1.24版本后,kube-apiserver移除參數--address--insecure-bind-address--port--insecure-port=0

  • 在Kubernetes 1.24版本后,kube-controller-manager和kube-scheduler移除啟動參數--port=0--address

  • 在Kubernetes 1.24版本后,kube-apiserver --audit-log-version--audit-webhook-version僅支持audit.k8s.io/v1,Kubernetes 1.24移除audit.k8s.io/v1[alpha|beta]1,只能使用audit.k8s.io/v1

  • 在Kubernetes 1.24版本后,kubelet移除啟動參數--network-plugin,僅當容器運行環境設置為Docker時,此特定于Docker的參數才有效,并會隨著Dockershim一起刪除。

  • 在Kubernetes 1.24版本后,動態日志清理功能已經被廢棄,并在Kubernetes 1.24版本移除。該功能引入了一個日志過濾器,可以應用于所有Kubernetes系統組件的日志,以防止各種類型的敏感信息通過日志泄漏。此功能可能導致日志阻塞,所以廢棄,更多信息請參見Dynamic log sanitization KEP-1753

  • VolumeSnapshot v1beta1 CRD在Kubernetes 1.20版本中被廢棄,在Kubernetes 1.24版本中移除,需改用v1版本。

  • 在Kubernetes 1.24版本后,移除自1.11版本就廢棄的service annotation tolerate-unready-endpoints,使用Service.spec.publishNotReadyAddresses代替。

  • 在Kubernetes 1.24版本后,廢棄metadata.clusterName字段,并將在下一個版本中刪除。

  • Kubernetes 1.24及以后的版本,去除了kube-proxy監聽NodePort的邏輯,在NodePort與內核net.ipv4.ip_local_port_range范圍有沖突的情況下,可能會導致偶發的TCP無法連接的情況,導致健康檢查失敗、業務異常等問題。升級前,請確保集群沒有NodePort端口與任意節點net.ipv4.ip_local_port_range范圍存在沖突。更多信息,請參見Kubernetes社區PR

API 變化

  • 在Kubernetes 1.23版本后:

    • 移除rbac.authorization.k8s.io/v1alpha1,使用rbac.authorization.k8s.io/v1

    • 移除scheduling.k8s.io/v1alpha1,使用scheduling.k8s.io/v1

  • 在Kubernetes 1.23版本后,HorizontalPodAutoscaler v2已經GA,autoscaling/v2beta2 API被廢棄。

  • 在Kubernetes 1.23版本后,在創建和更新雙協議棧的時候Service.spec.ipFamilyPolicy為必填項。用戶使用雙協議棧的Service必須指明ipFamilyPolicy為“PreferDualStack”或者“RequireDualStack”。

  • 在Kubernetes 1.23版本后,組件使用LogFormatRegistry配置的,需要更新代碼使用logr v1.0.0 API,JSON日志輸出現在使用go-logr/zapr的格式,并修復了一些問題。

  • 在Kubernetes 1.24版本后,client.authentication.k8s.io/v1alpha1已經被移除,使用v1版本替換。

  • 在Kubernetes 1.24版本后,node.k8s.io/v1alpha1已經移除,使用v1版本替換。

  • 在Kubernetes 1.24版本后,CSIStorageCapacity.storage.k8s.io改用v1版本,廢棄v1beta1版本,在1.27徹底移除v1beta1。

  • 在Kubernetes 1.24版本后,移除networking.k8s.io/v1alpha1網絡API。

特性門控

關于特性門控一般有三個階段:Alpha默認禁用、Beta一般默認啟用、GA將一直默認啟用,且不能禁用(會在后續版本中刪除這個開關功能),更多信息請參見Feature Gates。下面列舉部分主要變化:

  • 在Kubernetes 1.23版本后,TTLAfterFinished特性門控已經GA,默認開啟,資源執行完成后允許TTL控制器清理資源。

  • 在Kubernetes 1.23版本后,新增StatefulSetAutoDeletePVC允許自動刪除StatefulSet Pods創建的PVCs。

  • 在Kubernetes 1.23版本后,PodSecurity進入Beta,默認開啟。PodSecurity代替被廢棄的PodSecurityPolicy準入控制器。

  • 在Kubernetes 1.23版本后,IPv4/IPv6 Dual-stack Networking已經GA,且移除IPv6DualStack特性門控。

  • 在Kubernetes 1.23版本后,NodeLease在1.17已經GA的特性開關被移除了,默認一直啟用。

  • 在Kubernetes 1.23版本后,CSIVolumeFSGroupPolicy已經GA,默認一直啟用。

  • 在Kubernetes 1.23版本后,通用臨時卷GenericEphemeralVolume默認啟用,使用方式請參見 Ephemeral Volumes。通用臨時內聯卷支持所有普通卷的功能。通用臨時內聯卷可以由支持持久存儲的第三方存儲驅動提供,普通卷可以由第三方存儲提供、存儲容量跟蹤、從快照還原等。

  • 在Kubernetes 1.23版本后,IngressClassNamespacedParams已經GA,允許IngressClass資源中使用命名空間范圍的參數引用,IngressClass.spec.parameters添加了兩個字段- scopenamespace

  • 在Kubernetes 1.23版本后,StorageObjectInUseProtection如果仍在使用PersistentVolume或PersistentVolumeClaim對象,則將其刪除操作推遲。已經在1.11版本GA,即將在1.25版本移除。

  • 在Kubernetes 1.23版本后,ConfigurableFSGroupPolicy已經GA,并重命名指標volume_fsgroup_recursive_applyvolume_apply_access_control。在Pod中掛載卷時,ConfigurableFSGroupPolicy允許用戶為fsGroup配置卷訪問權限和屬主變更策略,詳細信息請參見為 Pod 配置卷訪問權限和屬主變更策略

  • 在Kubernetes 1.23版本后,KubeletPodResourcesGetAllocatable進入Beta,默認開啟Pod的GetAllocatableResources功能,增強節點資源分配能力,詳細信息請參見GetAllocatableResources gRPC endpoint

  • 在Kubernetes 1.23版本后,WindowsHostProcessContainers進入Beta,默認啟用對Windows HostProcess容器的支持。

  • 在Kubernetes 1.24版本后,NonPreemptingPriority支持Pod優先級搶占,已經GA。

  • 在Kubernetes 1.24版本后,廢棄ValidateProxyRedirects和StreamingProxyRedirects。

  • 在Kubernetes 1.24版本后,JobReadyPods進入Beta,默認啟用,允許跟蹤記錄Ready的Pod到Job對象的status字段中。

  • 在Kubernetes 1.24版本后,Indexed Jobs已經GA,無法禁用。

  • 在Kubernetes 1.24版本后,SuspendJob啟用支持暫停和恢復作業,已經GA,且參數將在1.26版本移除。

  • 在Kubernetes 1.24版本后,RemoveSelfLink已經GA,將所有對象和集合的.metadata.selfLink字段設置為空字符串。 該字段自Kubernetes 1.16版本以來已被棄用。 啟用此功能后,.metadata.selfLink字段仍然是Kubernetes API的一部分。

  • 在Kubernetes 1.24版本后,PodAffinityNamespaceSelector已經GA,且參數將在1.26版本移除,該特性允許Pod的親和性策略不再局限于同命名空間的標簽選擇,可以實現跨命名空間的標簽選擇,這將實現更完善的親和性調度策略。

  • 在Kubernetes 1.24版本后,AnyVolumeDataSource進入Beta,允許使用任何自定義的資源來作為PVC中的DataSource。

  • 在Kubernetes 1.24版本后,CSRDuration已經GA,CertificateSigningRequest資源類型允許您使用它申請發放X.509證書,CSRDuration 特性門控支持使用可選字段spec.expirationSeconds為頒發的證書設定一個特定的有效期,最小值為600。

  • 在Kubernetes 1.24版本后,服務器端字段驗證ServerSideFieldValidation進入Beta,默認啟用。驗證資源模式在API服務器端而不是客戶端執行(例如,kubectl createkubectl apply命令行)。

  • 啟動kubelet的動態配置(DynamicKubeletConfig)功能在Kubernetes 1.22版本廢棄,在1.24版本從kubelet featureGates中移除。

  • 在Kubernetes 1.24版本后,LegacyServiceAccountTokenNoAutoGeneration默認啟用,將不會為ServiceAccount自動創建Secret。

  • 在Kubernetes 1.24版本后,移除在1.22版本中GA的SetHostnameAsFQDN、ImmutableEphemeralVolumes和NamespaceDefaultLabelName。

  • Kubernetes 1.23版本和 Kubernetes 1.24版本已經GA的特性門控(不需要額外配置,默認一直啟用,無法禁用):ConfigurableFSGroupPolicy、ControllerManagerLeaderMigration、CSIMigrationAzureDisk、CSIMigrationOpenStack、CSIStorageCapacity、CSIVolumeFSGroupPolicy、CSRDuration、CronJobControllerV2、DefaultPodTopologySpread、EfficientWatchResumption、ExpandCSIVolumes、ExpandInUsePersistentVolumes、ExpandPersistentVolumes、GenericEphemeralVolume、IPv6DualStack、IndexedJob、IngressClassNamespacedParams、NonPreemptingPriority、PodAffinityNamespaceSelector、PodOverhead、PreferNominatedNode、RemoveSelfLink、ServiceLBNodePortControl、ServiceLoadBalancerClass、SuspendJob、DynamicKubeletConfig、TTLAfterFinished。

參考鏈接