K8S環境なしでのKyverno入門

目次

Kyverno概要

Kyvernoは、Kubernetesクラスターでのポリシーマネジメントをサポートするオープンソースのツールです。ポリシーを使って、リソースの作成や変更を制御し、セキュリティやコンプライアンスの要件を容易に適用できます。Kyvernoは。Kubernetesクラスターのセキュリティと一貫性の確保に役立ちます。

ポリシーは、Kubernetesクラスター内のリソース(例: Pod、Deployment、Serviceなど)の作成や変更時に適用されるルールのセットです。これにより、特定の条件や要件に基づいてリソースの動作や構成を制御することができます。

ポリシーは通常、YAML形式で定義されます。ポリシーの定義では、マッチング規則と実行するアクションを指定します。マッチング規則は、リソースの属性や条件を指定するもので、どのリソースにポリシーを適用するかを制御します。アクションは、ポリシーがマッチした場合に実行される処理です。

ポリシーは、Kubernetesクラスターのセキュリティ、コンプライアンス、リソースの管理など、さまざまな目的で活用されます。Kyvernoは、このポリシーベースのマネジメントを簡単かつ効果的に実現するためのツールです。

Kyverno Playground概要

KyvernoはKubernetesネイティブのポリシーエンジンであるため、KyvernoをKubernetes環境で使用することは非常に容易です。しかし、手元にKubernetes環境がない場合、Kyvernoのポリシーを手軽に試すことは難しいです。一般的には、Kyvernoのポリシーを開発するには、MiniKubeやK3Sなどの軽量なKubernetes環境を用意する必要があります。

Kyvernoのテストや新しいポリシーの開発に必要な労力を軽減するために、Kyverno開発チームはKyverno Playgroundを開発しました。Kyverno Playgroundは、KyvernoのWebベースかつ隔離されたテスト環境で、ポリシーの実行をサポートします。実際のKubernetesクラスタへの接続は必要ありませんが、オプションでサポートされています。

Kyverno Playgroundは、コンテナイメージまたはHelm Chartとして提供されていますが、パブリックオンラインバージョンもあります。以下はこのオンラインバージョンを利用してKyverno Playgroundの使い方を説明します。

Kyverno Playgroundの使い方

まずは、Kyverno Playgroundのパブリックオンラインバージョンをアクセスして、以下のような画面が表示されます。

Figure 1. Kyverno Playground

次は画面にある主なボタンやコンポーネンを紹介します。

ONBOARDING ボタン
当該ボタンクリックすると、Kyverno Playgroundの使い方が紹介されます。
ポリシーエディタ
試す対象となるポリシーのエディタです。
リソースエディタ
ポリシーの適用対象となるKubernetesリソースのエディタです。
START ボタン
当該ボタンクリックすると、ポリシーエディタのポリシーがリソースエディタのリソースに対して実行されます。
サンプルポリシーライブラリ
Kyvernoが提供しているサンプルポリシーのライブラリです。その中に試す対象となるポリシーを選択したら、その内容が<1>のポリシーエディタにロードされます。
ADVANCED ボタン
当該ボタンクリックすると、Kyvernoの各オプションを設定するメニューが表示されます。

最後に、デフォルトでロードされているポリシーとリソースを利用して、Kyverno Playgroundを軽く動かしてみます。

そのポリシーはPodに app.kubernetes.io/name というキーを持つLabelが定義されているかをチェックし、そのようなLabelがなければ、エラーメッセージを表示します。

リソースエディタに表示されているリソースの内容から、nginx という名前のPodには`app.kubernetes.io/name` というキーを持つLabelが定義されていないことを確認できます。START ボタンを押下して、以下の図のように実行結果は fail となり、エラーメッセージが表示されます。

次はPodリソースに app.kubernetes.io/name=nginx のLabelを追記してから再度実行します。今回はポリシーの実行結果が pass になります。

  • URLをコピーしました!
目次