すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ゲートキーパーの紹介とリリースノート

最終更新日:Dec 19, 2024

ゲートキーパーコンポーネントは、KubernetesクラスターでOpen Policy Agent (OPA) によって実行されるポリシーの管理と適用を容易にします。 このコンポーネントを使用すると、名前空間のラベルを管理できます。 このトピックでは、gatekeeperの機能、使用法ノート、リリースノートについて説明します。

概要

OPAは、標準化されたコンテキストを意識した方法でポリシーをスタックに実装するために一般的に使用されるオープンソースのポリシーエンジンです。 ゲートキーパーコンポーネントを使用して、OPAポリシーを管理および実装し、Container Service for Kubernetes (ACK) クラスターの名前空間のラベルを管理できます。 OPAの詳細については、「ポリシーエージェントを開く」をご参照ください。 gatekeeperのアーキテクチャを次の図に示します。

image

gatekeeperのインストール方法の詳細については、「コンポーネントの管理」をご参照ください。

使用上の注意

gatekeeperを使用して、ラベルに基づいて特定の名前空間でのポッドの展開を制限できます。 この例では、特定の名前空間で作成されるすべてのポッドをgatekeeper-test-labelでラベル付けする必要があることを宣言する制約が定義されています。 ゲートキーパーの使用方法の詳細については、「ゲートキーパーの使用方法」をご参照ください。

  1. 次のコマンドを実行してtest-gatekeeperという名前のテスト名前空間を作成し、名前空間にname=test-gatekeeperラベルを追加します。

    kubectl create ns test-gatekeeper
    kubectl label ns test-gatekeeper name=test-gatekeeper
  2. 次のコマンドを実行して、ポッドラベルの制約を定義するために使用できる制約テンプレートを作成します。

    kubectl apply -f - <<EOF
    apiVersion: templates.gatekeeper.sh/v1beta1
    kind: ConstraintTemplate
    metadata:
      name: k8srequiredlabels
    spec:
      crd:
        spec:
          names:
            kind: K8sRequiredLabels
          validation:
            openAPIV3Schema:
              properties:
                labels:
                  type: array
                  items:
                    type: string
      targets:
        - target: admission.k8s.gatekeeper.sh
          rego: |
            package k8srequiredlabels
            violation[{"msg": msg, "details": {"missing_labels": missing}}] {
              provided := {label | input.review.object.metadata.labels[label]}
              required := {label | label := input.parameters.labels[_]}
              missing := required - provided
              count(missing) > 0
              msg := sprintf("you must provide labels: %v", [missing])
            }
    EOF

    制約テンプレートの初期化には約10秒かかります。

  3. 次のコマンドを実行して、前述の制約テンプレートから制約を作成します。 この制約は、name=test-gatekeeperラベルを持つ名前空間に作成されるすべてのポッドにgatekeeper-test-labelのラベルを付ける必要があることを宣言しています。

    kubectl apply -f - <<EOF
    apiVersion: constraints.gatekeeper.sh/v1beta1
    kind: K8sRequiredLabels
    metadata:
      name: pod-must-have-gatekeeper-test-label
    spec:
      match:
        kinds:
          - apiGroups: [""]
            kinds: ["Pod"]
        namespaceSelector:
          matchExpressions:
          - key: name
            operator: In
            values: ["test-gatekeeper"]
      parameters:
        labels: ["gatekeeper-test-label"]
    
    EOF

    制約を初期化するのに約10秒を要する。

  4. 名前空間が制約されているかどうかを確認します。

    • 次のコマンドを実行して、test-gatekeeper名前空間にgatekeeper-test-labelでラベル付けされていないポッドを作成します。 test-gatekeeper名前空間には、name=test-gatekeeperラベルがあります。

      kubectl -n test-gatekeeper run test-deny --image=nginx --restart=Never

      期待される出力:

      Error from server ([denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}): admission webhook "validation.gatekeeper.sh" denied the request: [denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}

      test-gatekeeper名前空間には、name=test-gatekeeperラベルがあります。 ポッドはgatekeeper-test-labelラベルなしで作成されます。 したがって、ポッドの作成は失敗します。

    • 次のコマンドを実行して、test-gatekeeper名前空間にgatekeeper-test-labelでラベル付けされたポッドを作成します。 test-gatekeeper名前空間には、name=test-gatekeeperラベルがあります。

      kubectl -n test-gatekeeper run test-pass -l gatekeeper-test-label=pass --image=nginx --restart=Never

      期待される出力:

      pod/test-pass created

      test-gatekeeper名前空間には、name=test-gatekeeperラベルがあります。 ポッドはgatekeeper-test-labelラベルで作成されます。 したがって、ポッドの作成は成功します。

    • 次のコマンドを実行して、制約の対象とならない名前空間にname=test-gatekeeperでラベル付けされていないポッドを作成します。

      kubectl -n default run test-deny --image=nginx --restart=Never

      期待される出力:

      pod/test-deny created

      名前空間は制約の対象ではありません。 したがって、ポッドの作成は成功します。 作成されたポッドには、name=test-gatekeeperラベルがありません。

    上記の手順は、ゲートキーパーを使用して特定の名前空間でのポッドの作成を制限できることを示しています。 この例では、名前空間に作成されるポッドにgatekeeper-test-labelラベルが必要です。

リリースノート

12月2024

バージョン

画像アドレス

リリース日

説明

影響

v3.17.1.174-g6383c639-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.17.1.174-g6383c639-aliyun

2024-12-09

このバージョンはカナリアリリースです。

OPA Gatekeeperが3.17.1に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存します。 OPAゲートキーパー3.17.1の詳細については、「リリースv3.17.1」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

9月2024

バージョン

画像アドレス

リリース日

説明

影響

v3.16.3.158-g5e73c0ad-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.16.3.158-g5e73c0ad-aliyun

2024-09-25

OPA Gatekeeperが3.16.3に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存します。 OPAゲートキーパー3.16.3の詳細については、「v3.16.3」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

March 2024

バージョン

画像アドレス

リリース日

説明

影響

v3.15.1.150-g29b8b2a8-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.15.1.150-g29b8b2a8-aliyun

2024-03-27

OPA Gatekeeperが3.15.1に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存します。 OPAゲートキーパー3.15.1の詳細については、「v3.15.1」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

10月2023

バージョン

画像アドレス

リリース日

説明

影響

v3.12.0.138-g1ee37e37-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.12.0.138-g1ee37e37-aliyun

2023-10-09

  • OPA Gatekeeperが3.12.0に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存します。 OPA Gatekeeper 3.12.0の詳細については、「v3.12.0」をご参照ください。

  • ポリシーは、サービス削除イベントを処理するように構成できます。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

April 2023

バージョン

画像アドレス

リリース日

説明

影響

v3.10.0.130-g0e79597d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.10.0.130-g0e79597d-aliyun

2023-04-18

  • OPA Gatekeeperが3.10.0に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。 OPA Gatekeeper 3.10.0の詳細については、「v3.10.0」をご参照ください。

  • デフォルトでは、データレプリケーション機能は無効になっています。 この機能は、ACKコンソールの [アドオン] ページで有効にできます。 データレプリケーション機能の詳細については、「データのレプリケーション」をご参照ください。

  • ポリシーは、名前空間削除イベントを処理するように設定できます。

  • Kubernetes 1.26がサポートされています。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

6月2022

バージョン

画像アドレス

リリース日

説明

影響

v3.8.1.113-geb7947ef-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.8.1.113-geb7947ef-aliyun

2022-06-08

  • OPA Gatekeeperは3.8.1に更新されます。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。 OPA Gatekeeper 3.8.1の詳細については、「v3.8.1」をご参照ください。

  • デフォルトでは、監査ポッドは無効になっています。 監査ポッドは、ACKコンソールの [アドオン] ページで有効にできます。

  • CPUリソース、メモリ、およびレプリケートされたポッドの数に関するコンポーネントの設定は、ACKコンソールの [アドオン] ページで変更できます。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

April 2022

バージョン

画像アドレス

リリース日

説明

影響

v3.7.1.93-gaf375989-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.1.93-gaf375989-aliyun

2022-04-02

変更機能は、ACKコンソールの [アドオン] ページで有効にできます。 デフォルトでは、変異機能は無効になっています。 変異機能の詳細については、「変異」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

2月2022

バージョン

画像アドレス

リリース日

説明

影響

v3.7.0.84-gf5fd3ffd-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.84-gf5fd3ffd-aliyun

2022-02-15

コンポーネントのパフォーマンスが最適化されます。 極端な場合の異常なCPU使用率の問題は修正されています。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

January 2022

バージョン

画像アドレス

リリース日

説明

影響

v3.7.0.82-gafe4391b-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.82-gafe4391b-aliyun

2022-01-14

  • OPA Gatekeeperは3.7.0に更新されます。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。 OPA Gatekeeper 3.7.0の詳細については、「v3.7.0」をご参照ください。

  • ARM64アーキテクチャがサポートされています。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

9月2021

バージョン

画像アドレス

リリース日

説明

影響

v3.6.0.62-g156146d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.6.0.62-g156146d-aliyun

2021-09-20

  • gatekeeper 3.6.0.62以降のバージョンは、Kubernetes 1.16.9以降を実行するACKクラスターのみをサポートします。

  • OPA Gatekeeperは3.6.0に更新されます。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。 OPA Gatekeeper 3.6.0の詳細については、「v3.6.0」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

March 2021

バージョン

画像アドレス

リリース日

説明

影響

v3.3.0.24-8e68abc-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.3.0.24-8e68abc-aliyun

2020-03-16

  • ゲートキーパーは登録済みクラスターにインストールできます。

  • OPA Gatekeeperが3.3.0に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。

8月2020

バージョン

画像アドレス

リリース日

説明

影響

v3.1.0.11-24bab09-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.1.0.11-24bab09-aliyun

2020-08-20

OPA Gatekeeperが3.1.0-beta.12に更新されました。 ゲートキーパーコンポーネントは、OPAゲートキーパーに依存しています。

説明

OPA Gatekeeperは、ゲートキーパーの開発に基づいたオープンソースプロジェクトです。

コンポーネントの更新中に例外が発生した場合、クラスターリソースの変更は失敗する可能性があります。 オフピーク時に更新を実行することを推奨します。