2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Kubernetes 1.23: SIG Cluster Lifecycle の変更内容

Last updated at Posted at 2021-12-24

Kubernetes 1.23 の CHANGELOG から SIG Cluster Lifecycle の取り組みについてにピックアップしました。

主な変更点 (What's New)

  • なし。

重大なアップグレードに関する警告 (Urgent Upgrade Notes)

  • kubeadm: init|join|upgradeコマンドにおける非推奨の--experimental-patchesを削除しました。--patchesフラグは--configフラグと共に利用することはできません。ノードにパッチを適用するkubeadmの設定には、{Init|Join}Configuration.patchesを利用してください。 (#104065, @pacoxu)

種々の変更 (Changes by Kind)

廃止予定 (Deprecation)

  • kubeadm: 新しい output/v1alpha2 APIを追加しました。これは output/v1alpha1APIと同じものですが、kubeadm/v1beta2 における内部の依存関係を解決するためのものです。output/v1alpha1APIは非推奨となり将来のリリースで削除予定です。 (#105295, @neolit123)
    • :pencil: output/v1alphaX API とは、kubeadmの出力結果をjsonやyaml、gotemplateで出力するためのAPIです、詳しくは KEPを参照してください。
  • kubeadm: デフォルトで無効化されている、kubeadm特有の Alpha Featurea Gateである UnversionedKubeletConfigMap を追加しました。この機能を有効化してすると、kubeadmはKubeletConfigurationを保存するConfigMapについて、新しいフォーマットの名前を使い始めます。古いConfigMapの名前には"kube-system/kubelet-config-1.22"のようにKuberneteのバージョンが含まれていましたが、新しいフォーマットは"kube-system/kubelet-configのようにバージョンが含まれていません。古いフォーマットの名前は非推奨になり、この名前のフォーマットがGAになった際に削除されます。ConfigMapを書く際にはkubeadmはUnversionedKubeletConfigMap`の値を考慮し、読込の際は新しいフォーマットの利用を試み、必要な場合は古いフォーマットにフォールバックします。 (#105741, @neolit123) [SIG Cluster Lifecycle and Testing]
  • kubeadm: kubeadm resetにおいてupdate-cluster-statusにおける非推奨のNO-OPフェーズを削除しました。 (#105888, @neolit123)

API の変更 (API Change)

  • なし。

機能 (Feature)

  • kubeadm: kubeadm joinにおいて、ドライランがサポートされました。この新しい、kubeadm join --dry-runフラグは既存の kubeadm init/upgrade のフラグと同様に、どのような変更が適用されるかを事前に知ることができます。 (#103027, @Haleygo)
  • kubeadm: preflight時に、参加するワーカーノードで /etc/kubernetes/manifests フォルダが空かどうかを確認しなくなりました。 (#104942, @SataQiu)
    • :pencil: ユーザが独自のstatic podを /etc/kubernetes/manifestsフォルダに事前に定義していた場合、エラーが発生していたようです。
  • etcdを3.5.1にアップグレードしました。 (#105706, @uthark) [SIG Cloud Provider, Cluster Lifecycle and Testing]
    • :pencil: etcd 3.5.0 にはいくつかの致命的なバグがありました。

ドキュメント (Documentation)

  • なし。

バグ修正 (Bug or Regression)

  • kubeadm: etcdのピアを既存のクラスタに追加する際、ピアがすでに追加されている、というエラーであった場合はそのエラーを許容し既存のメンバーを返すようにしました。これにより以前の呼び出しによりピアがすでに追加されていた場合でも最初のAddMenber呼び出しがタイムアウトしたときに指数関数的バックオフ(exponential backoff)を軽減させることができます。 (#104134, @ihgann)
  • kubeadm: 空の --configkubeadm kubeconfig userコマンドに渡すことができなくなりました。 (#105649, @navist2020)
    • :pencil: PRには空のconfigの値が渡された場合には、"It still works properly." と書かれていましたが、正常に動作しているならバグではないのでは?と思いました…。
  • kubeadm: Windows ワーカーノードで、クラスタからダウンロードした KubeletConfiguration に Windows では動作しない Linux パスが含まれていることがあり、kubelet バイナリがトリップ?することがある不具合を修正しました。 (#105992, @hwdef) [SIG Cluster Lifecycle and Windows]
    • :pencil: Windows のワーカーノードで kubeadm が実行されていた場合、KubeletConfiguration中の絶対パスにドライブレターが追加されて利用されるようです。例えば /var/lib/kubelet/config.yamlC:/var/lib/kubelet/config.yaml に変換されます。ちなみにドライブは、実行している kubeadm のバイナリが含まれているドライブが利用されるようです。
  • kubeadm: Linuxノードにおいてswapが有効化されていた場合、swapをチェックするpreflightチェックがエラーではなく警告を出力するようになりました。この変更はkubeletにおける NodeSwap のFeatureGateがベータになり、バージョン1.23からデフォルトで有効化されたことに関連する修正です。次のkubeadmのリリース(v1.24)ではこのpreflight checkは削除されるので、このpreflight checkを利用の停止をお勧めします。--ignore-preflight-errorsもしくは kubeadm の設定ファイルで無効化できます。 (#104854, @pacoxu)

その他 (Other (Cleanup or Flake))

  • ClusterConfiguration で渡される Unicode 文字を持つ外部 etcd エンドポイントは、IDNA エンコードされなくなりました (Punycode に変換されます)。これらはGoのRFC-3986の実装に従ってURLエンコードされ、URLパスから重複する「/」が削除され、直接kube-apiserver--etcd-serversフラグに渡されるようになりました。Unicode文字を含むetcdエンドポイントがある場合は、IDNAに完全に準拠したツールで事前にエンコードしておくことをお勧めします。エンコードを行わなかった場合、エンドポイントへのリクエストを行う際にk8sやetcdで使用されているGo標準ライブラリがそれを行ってしまうでしょう。 (#103801, @gkarthiks)
    • :pencil: URL文字列をノーマライズするモジュールであるgithub.com/PuerkitoBio/purell がメンテナンスされていないため、簡易的なノーマライズに置き換えたようです。
  • kubeadm: kube-controller-manager のマニフェストから --port フラグを削除しました。このフラグは 1.22 以降何も行なっておらず、コンポーネントにいうてinsecure servingが削除されていたためです。 (#104157, @knight42)
  • kubeadm: kube-scheduler のマニフェストから --port フラグを削除しました。このフラグは 1.23 以降何も行なっておらず、コンポーネントにいうてinsecure servingが削除されていたためです (#105034, @pacoxu)
  • 古いアーティファクトのロケーションへの参照を更新し、新しい gs://k8s-release-dev バケットに存在しない ci-cross prefixをバージョンマッチから削除しました。 (#103813, @SataQiu)
    • :pencil: CI上で行うテストに関する修正でユーザーには影響ありません。
2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?