LoginSignup
3
0

More than 1 year has passed since last update.

KubernetesのFeature Gatesを使おうとして使い方がわからなかったのでメモ

Posted at

Kubernetes には Feature Gates という「アルファ機能または実験的機能を記述するkey=valueのペアのセット」があります。

古参の Kubernetes ユーザーの方々からすれば「何を今更」という感じでしょうが、新参の私からしたら Feature Gates で使えるようになる機能を有効にする方法が全然わからなかったので、同じように悩んでいる方のために使い方をまとめておきたいと思います。

まずは公式ドキュメント

各コンポーネントはそれぞれのコンポーネント固有のフィーチャーゲートの設定をサポートします。すべてのコンポーネントのフィーチャーゲートの全リストを表示するには -h フラグを使用します。kubeletなどのコンポーネントにフィーチャーゲートを設定するには以下のようにリストの機能ペアを --feature-gates フラグを使用して割り当てます。

公式ドキュメントには上のように書かれており、その下には使える Feature Gates の一覧があります。

上の説明を見るとわかる通り、Feature Gates で機能を有効化するには、その機能に関連するコンポーネントのコマンドに --feature-gates フラグを付けてあげれば良さそうです。

では、「どのコンポーネントのコマンドにつければいいの?」という点で、私はつまずきました。

答えは

このように書くと明らかに当然のことですが、各コンポーネントのヘルプを見ればわかります

Component tools のページにある下記コンポーネントの --feature-gates オプションで使える値の説明を見れば、どのコンポーネントにフラグを追加すればよいかがわかります。

例えば、Kubernetes 1.24 で alpha として追加された機能 CronJobTimeZone を使うには、kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler に CronJobTimeZone の記載があるので、上記コンポーネントのコマンドにフラグを付ければよいとわかります。

ちなみに kubeadm で構築した場合の各コンポーネントのオプション付与方法は

  • kubelet: /var/lib/kubelet/kubeadm-flags.env に追記して systemctl restart kubelet
  • kube-proxy: kubectl -n kube-system edit ds kube-proxy
  • kube-apiserver, kube-controller-manager, kube-scheduler: /etc/kubernetes/manifests/kube-*.yaml を編集

という感じです。

それではよい k8s ライフを~。

3
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
3
0