0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes 1.33: SIG Cluster Lifecycle の変更内容

Posted at

Kubernetes 1.33

Kubernetes 1.33 の CHANGELOG から SIG Cluster Lifecycle の取り組みについてまとめました。

:tada: ピックアップ :tada:

  • なし!

:warning: アップグレード時の注意事項

  • kubeadm に関連する注意事項は特になし

:dizzy: 項目ごとの変更

:do_not_litter: 非推奨

  • kubeadm に関連する注意事項は特になし

:construction_site: APIの変更

  • kubeadm に関連する注意事項は特になし

:unicorn: 機能

  • kubeadm: kubeadm upgrade plan コマンドが --etcd-upgrade フラグをサポートするようになり、etcdのアップグレードの計画を表示するかどうかを制御できるようになりました。また、UpgradeConfigurationv1beta4.Plan.EtcdUpgrade フィールドが追加されました。(#130023, @SataQiu)

  • kubeadm: Linuxノードでは cp コマンド、Windowsノードでは xcopy コマンドの存在を確認するプリフライトチェックが追加されました。これらのバイナリは kubeadm が正常に動作するために必要です。 (#130045, @carlory)

  • kubeadm: kubelet が失敗した場合やコントロールプレーンの待機に失敗した場合に、一貫性のあるエラーメッセージを提供するよう kubeadm initkubeadm join が改善されました。 (#130040, @HirazawaUi)

コントロールプレーンの待機に失敗した場合のエラーメッセージが init 時と join 時に異なるフォーマットで出力されていたものを修正したようです。

  • kubeadm: フィーチャーフラグ ControlPlaneKubeletLocalMode がベータ版に昇格しました。デフォルトでは、kubeadm init でクラスターを作成する場合や kubeadm join でコントロールプレーンノードを追加する場合、kubeadmkubelet 用にローカルの kube-apiserver エンドポイントを使用するようになりました。この機能フラグは、kubeadm init phasekubeconfig kubelet フェーズにも影響します。また、--control-plane-endpoint フラグは生成される kubeconfigServer フィールドに影響しなくなりますが、代わりに --apiserver-advertise-address フラグを同じ目的で使用できるようになりました。 (#129956, @chrischdi)

そもそものこの機能のモチベーションは、Control PlaneノードにおけるKubeletのLB経由のAPIサーバーへのアクセスがアップグレード時に "kubelet must not be newer than kube-apiserver." というバージョンスキューポリシーに引っかかってしまうという問題を解決するためのもののようです。

  • kubeadm: WaitForAllControlPlaneComponents のフィーチャーフラグがベータ版に昇格しました。コントロールプレーンコンポーネントの健全性をチェックする際、各コンポーネントのスタティックPodのマニフェストで引数として定義されているアドレスとポートが使用されるようになりました。 (#129620, @neolit123) [SIG Cluster Lifecycle] [sig/cluster-lifecycle]

  • kubeadm: NodeLocalCRISocket 機能フラグが有効になっている場合、kubeadm upgrade 実行時に対象ノードから kubeadm.alpha.kubernetes.io/cri-socket アノテーションが削除されるようになりました。 (#129279, @HirazawaUi)

  • kubeadm: NodeLocalCRISocket 機能フラグが有効になっている場合、kubeadm upgrade 実行時に /var/lib/kubelet/kubeadm-flags.env ファイルから --container-runtime-endpoint フラグが削除されるようになりました。 (#129278, @HirazawaUi)

上記の #129279 と合わせて、CRIのエンドポイントの情報が /var/lib/kubelet/kubeadm-flags.env や、kubeadm.alpha.kubernetes.io/cri-socket アノテーション から、kubeadm の設定ファイルと /var/lib/kubelet/instance-config.yaml になったようです。

  • kubeadm: Linuxノードでの nsenter に対するプリフライトチェックが削除されました。また、Linuxノードで kubelet がブロックデバイスを開いた状態に保つために必要となる losetup に対するプリフライトチェックが追加されました。(#129450, @carlory)

  • kubeadm: 1.32 で GA となった EtcdLearnerMode のフィーチャーゲートが削除されました。(#129589, @neolit123)

:bookmark: ドキュメント

クリーンアップ時に、kubeadm reset では消されないファイルや設定などのクリーンアップ方法がドキュメントに記載されたようです。

例:

  • /etc/cni/net.d 配下にある CNI の設定ファイル。
  • kube-proxy が設定した iptable のルール。

:bug: バグ、もしくはリグレッション

  • kubeadm: kubeadm init のフェーズ実行時に、--kubeconfig に渡されたファイルが複数回読み込まれるのを回避するように改善されました。 (#129006, @kokes)

  • kubeadm: CRIからのサンドボックスイメージにエラーがある場合に、イメージがプルされないバグを修正しました。 (#129594, @neolit123)

  • kubeadm: kubeadm upgrade node サブコマンドが UpgradeConfiguration 内の node.skipPhases を無視しているバグを修正しました。(#129452, @SataQiu)

  • kubeadm: 設定ファイル中に UpgradeConfiguration が存在しなかった場合にパニックが発生するバグを修正しました。(#130202, @SataQiu)

  • kubeadm: 設定ファイル v1beta4 における Timeouts.EtcdAPICall フィールドが etcd クライアントの操作で利用されず、常にデフォルトのタイムアウト(2分)が使用されるバグを修正しました。 (#129859, @neolit123)

  • kubeadm: ClusterConfiguration でアドオンが無効化されている場合、アップグレード時にそのアドオンをスキップするようになりました。 (#129418, @neolit123)

kube-proxy を無効化して kube-router を使っていたユーザーがv1.31からv1.32にアップデートした際に、無効化してたはずのkube-proxy が復活してサービス停止になってしまったらしい。ヒドイ。

  • kubeadm: --anonymous-auth=false が設定され、WaitForAllControlPlaneComponents フィーチャーゲートが有効になっている場合でも kube-apiserver のヘルスチェックが可能になるようにしました。 (#131036, @neolit123)

  • kubeadm: kubeadm upgrade でカーネルバージョンとOSバージョンの事前チェックを実行するようになりました。 (#129401, @pacoxu)

  • kubeadm: ログ内で YAML/JSON への直接的な言及ではなく、一般的な用語を使用するようになりました (#130345, @HirazawaUi)

  • kubeadm: Linux ノードにおける ipiptablesethtooltc に対するプリフライトチェックが削除されました。kubeletkube-proxy は、iptables の使用が必要な場合には引き続きエラーを報告します。ipethtooltc ツールは kubelet で過去に使用されていましたが、現在では必要なくなりました。 (#129131, @pacoxu)

  • kubeadm: Linux ノードにおける touch に対するプリフライトチェックが削除されました。 (#129317, @carlory)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?