3
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 3 years have passed since last update.

Kubernetes 1.19: SIG Cluster Lifecycle の変更内容

Last updated at Posted at 2020-09-18

はじめに

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

主な変更点 (What's New)

  • なし。

既知の問題 (Known Issues)

  • なし。

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

  • kubeadmは、kubeletのconfig.yamlに書かれるべきである/var/lib/kubelet/kubeadm-flags.env中にある非推奨の--cgroup-driverを設定しないようになりました。もし、そのフラグを/var/lib/kubelet/kubeadm-flags.envもしくは/etc/default/kubelet(RPMの場合は/etc/sysconfig/kubelet)で設定していた場合、それらを削除しKubeletConfigurationを利用するようにしてください。 (#90513, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadmはユーザが指定したClusterConfiguration中のetcdのバージョンを考慮し、適切に使用するようになりました。もし、ユーザがClusterConfigurationで指定したバージョンで固定されることを望まない場合はkubeadm-config ConfigMapを編集しバージョンの指定を削除してください。 (#89588, @rosti) [SIG Cluster Lifecycle]
    • :pencil: 対応を行わない場合、アップデート後にetcdのバージョンが古いまま固定されることになりそうです。
  • kubeadmは、systemd-resolved serviceが有効化されていたとしても、ユーザが設定したresolvecConfの値を考慮するようになりました。kubeadmは/var/lib/kubelet/kubeadm-flags.env中にある--resolv-confを設定しないようになりました。もし、そのフラグを/var/lib/kubelet/kubeadm-flags.envもしくは/etc/default/kubelet(RPMの場合は/etc/sysconfig/kubelet)で設定していた場合、それらを削除しKubeletConfigurationを利用するようにしてください。 (#90394, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm initフェーズ中のkubelet-startkubeconfigの後に移動しました。このため、kubelet serviceをクラッシュループできないOpenRCのようなinit systemにおいても問題を解決したのちにKubeletConfigurationコンポーネントコンフィグファイル(/var/lib/kubelet/config.yaml)を生成しkubeletが起動できるようになりました。 (#90892, @xphoniex) [SIG Cluster Lifecycle]
  • kubeadm config uploadコマンドはGAの非推奨サイクル後に削除されます。もしこのコマンドを利用している場合は代わりにkubeadm init phase upload-configコマンドを利用してください。 (#92610, @rosti) [SIG Cluster Lifecycle]

種々の変更 (Changes by Kind)

廃止予定 (Deprecation)

  • kubeadm config viewコマンドは非推奨になり、将来のバージョンで削除されます。kubeadmの設定ファイルをkubectl get cm -o yaml -n kube-system kubeadm-configを利用して直接取得してください。 (#92740, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm alpha kubelet config enable-dynamicコマンドは非推奨になりました。この機能を引き続き利用したい場合は、k8s.ioの「Dynamic Kubelet Configuration」というガイドを参照してください。 (#92881, @neolit123) [SIG Cluster Lifecycle]
    • :pencil: 原文だと "refer" を "defer"とtypoしてる。
    • :pencil: Node オブジェクトの .spec.configSource.configMap にノードの設定を動的に指定することができる機能のこと。
  • kubeadmの--experimental-kustomizeは非推奨となり--experimental-patchesフラグに置き換わりました。サポートされるフォーマットはkubectl patchと同じです。これらのパッチはディレクトリからファイルとして読み込まれinit/join/upgrade中にkubeadmコンポーネントに適用されます。現在のところ、static podのみにパッチすることができます。 (#92017, @neolit123)
  • kubeadm alpha certs renewコマンド中の--use-apiフラグが廃止されました。 (#90143, @neolit123) [SIG Cluster Lifecycle]
  • Kubernetesはhyperkubeのイメージをビルドしなくなりました。 (#88676, @dims) [SIG Cluster Lifecycle and Release]
    • :pencil: 前から削除しようと頑張っていましたが、とうとう削除したようです。これに依存してた皆様御愁傷様です…。

API の変更 (API Change)

  • kube-proxy: portへのbindが致命的な失敗として扱われるように--bind-address-hard-failフラグが追加されました。 (#89350, @SataQiu) [SIG Cluster Lifecycle and Network]

機能 (Feature)

  • cgroups v2ノードバリデーションのサポートが追加されました。 (#89901, @neolit123) [SIG Cluster Lifecycle and Node]
    • :pencil: k8s.io/system-validators という kubeadm preflight checks の機能をパッケージ化したものがあるようです。
  • kubeadmはユーザが定義したcomponent configと生成されたcomponent configを区別し、configのアップグレードが必要な場合、生成されたcomponent configを再生成するようになりました。 (#86070, @rosti) [SIG Cluster Lifecycle]
  • kubeadm upgrade plan / apply において --config オプションを利用してアップグレードされたcomponent configを手動で適用することができるようになりました。以前の--configオプションの振る舞いは、全ての保存された設定が上書きされていました。 (#91980, @rosti) [SIG Cluster Lifecycle]
  • kubeadmにおいて、起動の遅いstatic podを保護するためにstartup probeが追加されました。 (#91179, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm init phase certsで利用される--csr-onlyおよび--csr-dirフラグが非推奨になりました。代わりにkubeadm alpha certs generate-csrコマンドを利用してください。この新しいコマンドは外部のCAで証明書を作成するために利用できる、全てのcontrol-planeコンポーネント用の秘密鍵とCSRを生成します。 (#92183, @wallrj) [SIG Cluster Lifecycle]
  • kubeadm upgrade apply中にkube-proxyのConfigMapが存在しなかった場合、kube-proxyはアップグレードするべきでないと見なされます。また、kube-dns/coredns ConfigMapが存在しなかった場合も同様にこれらのDNSサーバーアドオンがアップデートされません。注:この挙動はupgrade applyがphaseをサポートするまでの一時的なワークアラウンドです。phaseがサポートされた後はマニュアルでスキップすることになります。 (#89593, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: control-planeのstatic podのプライオリティクラスがsystem-node-criticalに変更されました。 (#90063, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm upgrade planがアップグレード前の既知のコンポーネントの設定ファイルの内容をテーブルで表示するようになりました。 (#88124, @rosti) [SIG Cluster Lifecycle]

バグ修正 (Bug or Regression)

  • kubeadm join中のTLSのブートストラップにかかるタイムアウトの時間を5分に増やしました。 (#89735, @rosti) [SIG Cluster Lifecycle]
  • kubeadm joinにおけるステータス更新時にリトライを行うようにしました。 (#91952, @xlgao-zju) [SIG Cluster Lifecycle]
  • kubeadm: kube-controller-managerおよびkube-schedulerにおいてhttpでの待受を無効化するために、非推奨な--port=0フラグを追加しました。このフラグを利用しない場合、--addressフラグで制御されるデフォルトのインタフェースにおいて保護されない通信で/metricsなどが公開されます。この挙動を変更したい場合はkubeadmのそれぞれのコンポーネントにおけるextraArgsを利用して--portフラグを上書きしてください。 (#92720, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm join中に、クラスターにすでにetcdのメンバーが存在する場合新たに追加しないように修正しました。 (#92118, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm reset中において、クラスタにstackedなetcdのメンバーが残っていた場合、そのメンバーを削除せず、ローカルのetcdのストレージをクリーンナップするだけにしました。 (#91145, @tnqn) [SIG Cluster Lifecycle]
  • kubeadm joinにおいて、クラスター中に同名のノードが存在するかチェック時に、NodeReadyコンディションが正しく検証されるようになりました。 (#89602, @kvaps) [SIG Cluster Lifecycle]
  • kubeadmのupgradeフェーズ時に、--image-pull-timeoutフラグが反映されるように修正しました。 (#90328, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadmで1.18.xへのアップグレード時にRBACがないことによりノードがクラスターにjoinできなかった問題が修正されました。 (#89537, @neolit123) [SIG Cluster Lifecycle]

その他 (Other (Cleanup or Flake))

  • kubeadmはIPv6DualStackのFeatureGateの有効化を、コマンドラインではなく、kubelet component configを利用するようになりました。 (#90840, @rosti) [SIG Cluster Lifecycle]
  • kubeadm upgrade apply時に、control-planeのイメージをDaemonSetを利用して事前にpullしないようになりました。それぞれのノードにおける事前チェック時に必要なイメージをpullするようになります。それに伴いkubeadm upgrade apply時の--image-pull-timeoutフラグは非推奨になり、将来削除されます。 (#90788, @xlgao-zju) [SIG Cluster Lifecycle]
  • kubeadmはkube-apiserverの/healthzを利用する代わりに、/livezおよび/readyzを利用するようになりました。 (#90970, @johscheuer) [SIG Cluster Lifecycle]
3
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
3
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?