Kubernetes 1.32 の CHANGELOG から SIG Cluster Lifecycle の取り組みについてまとめました。
ピックアップ
- なし!
アップグレード時の注意事項
-
kubeadm
に関連する注意事項は特になし
項目ごとの変更
非推奨
-
kubeadm
に関連する注意事項は特になし
APIの変更
-
kubeadm
に関連する注意事項は特になし
機能
-
kubeadm upgrade apply
がサブコマンドをサポートしました。phase
サブコマンドを使うことでkubeadm upgrade apply phase <phase-name>
のように特定のフェーズを実行することができます。また、kubeadm upgrade apply --skip-phases <phase-names>
を使うことで特定のフェーズをスキップすることもできるようになりました。(#126032, @SataQiu) [SIG Cluster Lifecycle]
以下が実行可能なフェーズです。
Available Commands:
addon Upgrade the default kubeadm addons
bootstrap-token Configures bootstrap token and cluster-info RBAC rules
control-plane Upgrade the control plane
kubelet-config Upgrade the kubelet configuration for this node
post-upgrade Run post upgrade tasks
preflight Run preflight checks before upgrade
upload-config Upload the kubeadm and kubelet configurations to ConfigMaps
フェーズに etcd
が無いように見えますが、control-plane
のフラグに--etcd-upgrade
があり、デフォルトで true
になっているようです。
-
kubeadm upgrade node
でaddon
とpost-upgrade
フェーズがサポートされました。kubeadm upgrade node phase addon
を実行することでアドオンのアップグレードを行うことができます。また、kubeadm upgrade node --skip-phases addon
を実行することでaddonのアップグレードをスキップすることができます。現在のところpost-upgrade
フェーズは何も行わず、リリース特有のアップグレード後のタスクに利用されています。(#127242, @SataQiu) [SIG Cluster Lifecycle] -
kubeadm:
certificateValidityPeriodの値が
caCertificateValidityPeriod` の値よりも大きかった場合に警告が出るようになりました。(#126538, @SataQiu) [SIG Cluster Lifecycle] -
kubeadm
:NodeLocalCRISocket
フィーチャーゲートを追加しました。このフィーチャーゲートが有効化されると、kubeadm
は各ノードのkubelet
設定のcontainerRuntimeEndpoint
フィールドをカスタマイズするために、/var/lib/kubelet/instance-config.yaml
ファイルを生成します。また、Nodeオブジェクトにアノテーションとして同じCRIソケットを書き込むことはなくなります。(#128031, @HirazawaUi) [SIG Cluster Lifecycle]
Nodeのアノテーションに保存していた CRI ソケットの情報を /var/lib/kubelet/instance-config.yaml
に書き出すことにしたようです。
-
kubeadm
:kubeadm init phase addon
のサブフェーズにおいて、--config
フラグと特別なフラグ--print-manifest
を混在して使用することが可能になりました。(#126740, @neolit123) [SIG Cluster Lifecycle] -
kubeadm
: フィーチャーゲートWaitForAllControlPlaneComponents
が有効な場合、コントロールプレーンコンポーネントに対して--bind-address
または--advertise-address
と--secure-port
を考慮するようになりました。kube-apiserver
とkube-scheduler
には/livez
を使用しますが、kube-controller-manager
は/livez
をサポートするまで引き続き/healthz
を使用します。(#128474, @neolit123) [SIG Cluster Lifecycle]
kubeadm init
の終了時に、すべてのコントロールプレーンコンポーネントを待つ際、今までは 127.0.0.1
を利用してステータスをチェックしていたようです。
-
kubeadm
:kubeadm init phase
のようなサブコマンドを必要とするコマンドに未知のサブコマンド名が渡された場合、エラーを返すようになりました。また、kubeadm init phase
や他のサブコマンドを持つコマンドがサブコマンド名なしで呼び出された場合、利用可能なコマンドを表示し、併せてエラーを返すようになりました。(#127096, @neolit123) [SIG Cluster Lifecycle] -
kubeadm
: フィーチャーゲートEtcdLearnerMode
がGA
に昇格しました。kubeadm
によってデプロイされたetcd
のLearner
モードは、デフォルトで有効になります。(#126374, @pacoxu) [SIG Cluster Lifecycle]
- See: etcd の Learner とは?
ドキュメント
-
kubeadm
に関連する注意事項は特になし
バグ、もしくはリグレッション
-
kubeadm
:kubeadm
が管理するCoreDNS
のCorefile
において、cache
プラグインのパラメータとしてdisable success
とdisable denial
が追加されました。これは、CoreDNS
のキャッシュ更新中に矛盾する応答を防ぐためです。(#128359, @matteriben) [SIG Cluster Lifecycle]
.cluster.local
に対して、キャッシングを無効にする設定を追加したようです。CoreDNS の cache
プラグインは kubernetes
プラグインより優先されるため古い情報を返してしまう問題があったようです。
-
kubeadm
: アップグレードの事前チェックのためのCreateJob
から作成されたPod
が、タイムアウト後に適切に終了されるようになりました。(#127333, @yuyabee) [SIG Cluster Lifecycle] -
kubeadm
:etcd
メンバーを削除する際に、誤ったメンバーリストが表示される問題が修正されました。 (#127650, @SataQiu)
表示されるメンバーのリストは、特に何かに利用されているわけでは無いので問題は現状無いとのこと。
-
kubeadm
:kubeadm join
で新しいコントロールプレーンノードを追加する際、指定されたメンバーURLがすでにメンバーリストに存在しない場合にのみetcd
メンバーの追加が行われるようになりました。同様に、kubeadm reset
の際も、etcd
メンバーのIDが存在する場合にのみそのメンバーを削除するようになりました。(#127491, @SataQiu) [SIG Cluster Lifecycle]
その他(クリーンアップまたはフレーク)
-
kubeadm
: v1.31以降、kubeadm
はcrictl
に依存しなくなったため、crictl
バイナリが存在しない場合に警告を表示しないようになりました。(#126596, @saschagrunert) [SIG Cluster Lifecycle] -
kubeadm
:init
、join
、upgrade
、reset
サブコマンド実行中のAPIクライアントのドライラン時の詳細度が増加しました。また、偽のcluster-info ConfigMap
を利用することで、既存のクラスタがない場合でもkubeadm join
のドライランを可能にしました。(#126776, @neolit123) -
kubeadm
:kubeadm
が管理するPodSpec
に書き込まれる追加の環境変数が、環境変数名によってアルファベット順に並べられるようになりました。 (#126743, @neolit123) [SIG Cluster Lifecycle] -
kubeadm
:init kubelet-finalize
の非推奨のサブフェーズであるexperimental-cert-rotation
が削除され、代わりにenable-client-cert-rotation
が使用されるようになりました。 (#126913, @pacoxu) [SIG Cluster Lifecycle] -
kubeadm
:kubeadm
の事前チェックからsocat
とebtables
が削除されました。(#127151, @saschagrunert) [SIG Cluster Lifecycle] -
kubeadm
:conntrack
バイナリの存在を確認する事前チェックが削除されました。これは、バージョン1.32以降ではconntrack
がkube-proxy
の依存関係ではなくなったためです。 (#126953, @aroradaman)
上記の socat
と ebtables
はサポートされている Kubernetes では不要になったため、チェックが完全に削除されましたが、conntrack
に関してはバージョン 1.32 未満の kube-proxy
が必要としているためバージョンチェック後に事前チェックが実行されています。
-
kubeadm
:kubeadm upgrade apply
コマンドの非推奨で機能しないフラグ--feature-gates
、およびkubeadm upgrade diff
コマンドの--api-server-manifest
、--controller-manager-manifest
、--scheduler-manifest
フラグが削除されました。(#127123, @neolit123) [SIG Cluster Lifecycle] -
kubeadm
: 非推奨のフラグ--experimental-output
が削除されました。代わりに同じ目的を果たす--output
フラグを使用してください。影響を受けるコマンドは以下の通りです:kubeadm config images list
、kubeadm token list
、kubeadm upgrade plan
、kubeadm certs check-expiration
。(#126914, @carlory) [SIG Cluster Lifecycle] -
kubeadm
:kube-scheduler
の静的Pod
が、起動プローブとリブネスプローブに/livez
エンドポイントを、レディネスプローブに/readyz
エンドポイントを使用するように変更されました。以前は、すべてのプローブに/healthz
が使用されていましたが、このコンポーネントにおいてはこの動作は非推奨とされています。(#126945, @liangyuanpeng) [SIG Cluster Lifecycle]