Kubernetes 1.23 の新機能 – イベント API、Pod セキュリティ標準、IPv6、その他多数 #Mirantis #Kubernetes #k8s #k0s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本Blogは、Mirantis社の「What’s New in Kubernetes 1.23 – Events API, Pod Security Standards, IPv6, and Much More」の翻訳記事です。
先日、Kubernetes 1.23が一般リリースに移行しました。この2021年最後のリリースは、Kubernetesコミュニティによるコミュニティのための贈り物です。
45の新しい改良( いくつかの新機能、段階的な改良、そして正式版へのステップアップがあります )を加えており、エキサイティングな機能を持つ強力なバンドルとなっています。
ここでは、その中から特に注目の機能強化についてご紹介します。
Kubernetes API の Version 1.23 へのアップデート
まず初めに、APIが強化されました。このAPI強化は、開発者やクラスタ管理者が直接操作する事になるので、最も変化を具体的に感じられるはずです。
kubectl events
Kubernetes 1.23では、α版として全く新しい機能である「events」が導入されました。
Kubernetesチームは、「get」よりも詳細な専用のAPI駆動型イベント監視機能の必要性を認識しており、驚くほどシンプルな新しい 「kubectl」コマンドを追加する事でそれに応えました。
kubectl events
このコマンドは、クラスター情報を参照する際(または、あるオブジェクトのすべての変更を見たい場合など)に、異なるタイプのイベントをフィルタリングして表示したい場合に便利です。
このサブコマンドは 「get」 とは完全に切り離されています。つまり、将来的には 「get」 では不可能なイベント固有の機能をもとにして、watch フラグを拡張することが可能となります。
例えば、特定のイベントが発生するまで対象のリソースを監視するような機能などを拡張することが可能となります。
この機能はまだ初期段階ですが、将来的にはよりきめ細かいリソースの参照が出来るようになります。この機能拡張の詳細については GitHub ページで、より詳しく読むことができます。
水平Podオートスケーラー(HPA)API
HPA API が 12月に正式版となる事を祝福します。何年も前から使えるようになっていましたが、Kubernetes 1.23で、この機能は正式に本番環境で使えるようになりました。水平PodオートスケーリングはKubernetesのスケーラビリティの基本なので、これは大きな話題です。
Kubernetes が要求の変化に対応するために Pod を追加するときは HPA を使用しおり、API を利用してユーザーはより直接的にコントロールできるようになります。
例えば、CPU使用率などの詳細なパラメータを定義した新しい HPA オブジェクトをオンザフライで作成することができるようになります。
Mirantis Container Cloud( MCC )のユーザーにも朗報です。近々、HPA の機能が MCC に統合される予定です。
CustomResourceDefinition (CRD) バリデーション
多くのKubernetesユーザーは、自分のクラスタにカスタムリソース ( ユーザーが作成した定義と、理想的にはその検証ルール)を実装する必要があります。
今回のアルファ版の機能強化は、カスタムリソースの検証ルールを書くための標準として、Common Expression Languageの使用を提案しています。
とはいえアルファ版であるため、この機能強化については正式版までには長い道のりがあります。詳細については GitHubのページ を参照してください。
その他の注目すべき機能
Kubernetes 1.23で強化されたのは、APIだけではありません。その他にも、クラスタセキュリティの強化、Windowsノードでの機能拡張、将来に向けての拡張など、注目すべき内容がいくつかあります。
Pod Security Standards ( PSS )
Kubernetesのセキュリティを優先して考え、Pod Security Standards がアルファ版からベータ版になったのは喜ばしいことです。
今回の拡張で、pod permissions を簡単に定義することができるようになりました。「privileged」、「baseline」、 「restricted」の3つのポリシーは、それぞれ異なるユースケースを対象としており、ユーザーに様々な選択肢を提供することを試みています。
Privileged Pod は無制限(システム管理およびインフラレベルのワークロードに有効)であり、baseline ポリシーは権限の拡大を防ぎ、restricted Podはセキュリティのベストプラクティスに従って厳しくロックダウンされています。
Kubernetesのユーザーは、すぐに使えるセキュリティソリューションを求めており、これらの標準はその方向へ向かう為の良いステップとなります。
この機能がベータ版になったことで、より多くのユーザーが導入を検討したいと思うようになるでしょう。
Windows privileged コンテナ
セキュリティといえば、Kubernetes 1.23 では、Windows ノードで privileged コンテナを作成したいユーザー向けの機能が追加されています。privileged コンテナプロセスは、ホストのリソースに直接アクセスでき、ほぼホスト上で直接動作するプログラムと同様に動作します。Linux ノードでは、この機能は以前から利用可能でした。
そして、まもなく k0s でも利用可能になる予定です。
ここで重要なのは、privileged コンテナのユースケースは非常に特殊で、通常はモニタリングやセキュリティを扱う為に利用されるということです。逆に言うと、ほとんどの一般的なアプリケーションには適さないということです。しかし、Windowsノードでこの機能を使う必要がある場合には、今回の拡張でとても簡単に利用できるようになりました。
CronJobs
この名前は、Linux ユーザーにとって、親しみやすい響きを持っていることでしょう。
Unix 系システムの cron と同じように、Kubernetes CronJobs では、定期的に実行されるタスクをスケジュールすることができます。しかし、これらのタスクは Kubernetes クラスタ全体で実行されます。
ScheduledJobs という名称から Stable となり機能は成熟してきています。今後も多くのクラスタ管理者にとって有用であることが証明されるでしょう。
IPv4/IPv6 デュアルスタックネットワーキング
最後に、クラスターを IPv6 に対応させるための待望のネットワーク機能の強化についてです。
デュアルスタックネットワークが利用可能になる事により、Pod は IPv4 と IPv6 アドレスを同時に使用できるようになりました。これにより、Pod はクラスタ内外のサービスと両方のプロトコルを使って通信することができます。
ユーザーは、自分のインフラ自体がこれらの機能をサポートしていることを確認する必要があります。しかし、IPv6 への対応は Kubernetes の普及を大きく前進させるものです。
さいごに
このリリースには何十もの新機能が含まれていますが、この小さなハイライト集はその一部に過ぎません。さらなる詳細については、Kubernetes 1.23 changelog をご覧ください。また、k0s のユーザーは、今後数週間のうちに Kubernetes 1.23 をサポートすることを楽しみにしていてください。
Kubernetes を使うのは好きだけど、自分では動かしたくない?
Mirantis Flowは、あなたの運用のニーズをすべて引き受けます。