Kubernetes v1.31:kubeadm v1beta4

作為 Kubernetes v1.31 版本的一部分,kubeadm 正在採用其組態檔案格式的新版本 (v1beta4)。先前的 v1beta3 格式組態現在已正式棄用,這表示它受到支援,但您應該遷移到 v1beta4 並停止使用已棄用的格式。在至少 3 個 Kubernetes 次要版本之後,將移除對 v1beta3 組態的支援。

在本文中,我將帶您瞭解主要變更;我將說明 kubeadm v1beta4 組態格式,以及如何從 v1beta3 遷移到 v1beta4。

您可以閱讀 v1beta4 組態格式的參考文檔:kubeadm 組態 (v1beta4)

v1beta3 以來的變更列表

此版本改進了 v1beta3 格式,修復了一些小問題並新增了一些新欄位。

簡而言之,

  • 兩個新的組態元素:ResetConfiguration 和 UpgradeConfiguration
  • 對於 InitConfiguration 和 JoinConfiguration,支援 dryRun 模式和 nodeRegistration.imagePullSerial
  • 對於 ClusterConfiguration,有新的欄位,包括 certificateValidityPeriodcaCertificateValidityPeriodencryptionAlgorithmdns.disabledproxy.disabled
  • 支援所有控制平面元件的 extraEnvs
  • extraArgs 從地圖變更為用於重複項的結構化額外引數
  • 為 init、join、upgrade 和 reset 新增 timeouts 結構。

如需詳細資訊,您可以查看下面的 官方文檔

  • 支援 ClusterConfiguration 下控制平面元件中的自訂環境變數。使用 apiServer.extraEnvscontrollerManager.extraEnvsscheduler.extraEnvsetcd.local.extraEnvs
  • v1beta4 現在支援 ResetConfiguration API 類型。使用者可以透過將 --config 檔案傳遞給 kubeadm reset 來重置節點。
  • dryRun 模式現在可在 InitConfiguration 和 JoinConfiguration 中設定。
  • 將現有的字串/字串額外引數地圖替換為支援重複項的結構化額外引數。此變更適用於 ClusterConfiguration - apiServer.extraArgscontrollerManager.extraArgsscheduler.extraArgsetcd.local.extraArgs。也適用於 nodeRegistrationOptions.kubeletExtraArgs
  • 新增了 ClusterConfiguration.encryptionAlgorithm,可用於設定此叢集金鑰和憑證使用的非對稱加密演算法。可以是 “RSA-2048”(預設值)、“RSA-3072”、“RSA-4096” 或 “ECDSA-P256” 之一。
  • 新增了 ClusterConfiguration.dns.disabledClusterConfiguration.proxy.disabled,可用於在叢集初始化期間停用 CoreDNS 和 kube-proxy 附加元件。在叢集建立期間跳過相關的附加元件階段,將會將相同的欄位設定為 true
  • InitConfigurationJoinConfiguration 中新增了 nodeRegistration.imagePullSerial 欄位,可用於控制 kubeadm 是依序還是並行提取映像。
  • 當將 --config 傳遞給 kubeadm upgrade 子命令時,v1beta4 現在支援 UpgradeConfiguration kubeadm API。對於升級子命令,kubelet 和 kube-proxy 的組件組態以及 InitConfiguration 和 ClusterConfiguration 的使用現在已棄用,並且在傳遞 --config 時將被忽略。
  • InitConfigurationJoinConfigurationResetConfigurationUpgradeConfiguration 新增了 timeouts 結構,可用於設定各種逾時。ClusterConfiguration.timeoutForControlPlane 欄位已由 timeouts.controlPlaneComponentHealthCheck 取代。JoinConfiguration.discovery.timeout 已由 timeouts.discovery 取代。
  • ClusterConfiguration 新增了 certificateValidityPeriodcaCertificateValidityPeriod 欄位。這些欄位可用於控制 kubeadm 在子命令(例如 initjoinupgradecerts)期間產生的憑證的有效期限。非 CA 憑證的預設值仍然為 1 年,CA 憑證的預設值仍然為 10 年。另請注意,只有非 CA 憑證可以透過 kubeadm certs renew 續訂。

這些變更簡化了使用 kubeadm 的工具的組態,並提高了 kubeadm 本身的可擴展性。

如何將 v1beta3 組態遷移到 v1beta4?

如果您的組態未使用最新版本,建議您使用 kubeadm config migrate 命令進行遷移。

此命令讀取使用舊格式的現有組態檔案,並寫入使用目前格式的新檔案。

範例

使用 kubeadm v1.31,執行 kubeadm config migrate --old-config old-v1beta3.yaml --new-config new-v1beta4.yaml

如何參與?

非常感謝所有協助設計、實作和審查此功能的貢獻者

對於那些有興趣參與未來關於 kubeadm 組態討論的人,您可以透過以下幾種方式聯繫 kubeadm 或 SIG-cluster-lifecycle