5.3. gatekeeper Operator の設定
クラスターに Gatekeeper をインストールするには、Operator Lifecycle Manager カタログから Gatekeeper Operator をインストールします。Red Hat Advanced Cluster Management では、ガバナンスフレームワークを使用してポリシーを使用して Gatekeeper Operator をインストールできます。Gatekeeper Operator をインストールした後、Gatekeeper をインストールするように Gatekeeper Operator のカスタムリソースを設定します。
5.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 必要なアクセス権限: クラスターの管理者
- OpenShift Container Platform ドキュメント の クラスターへの Operator の追加 および 関連情報 セクションをすべて確認して、Operator Lifecycle Manager (OLM) と OperatorHub の使用方法を理解します。
5.3.2. gatekeeper カスタムリソースの例 リンクのコピーリンクがクリップボードにコピーされました!
Gatekeeper Operator のカスタムリソースは、Gatekeeper Operator にクラスター上で Gatekeeper のインストールを開始するように指示します。Gatekeeper をインストールするには、サンプルとデフォルト値を含む次のサンプル YAML を使用します。
apiVersion: operator.gatekeeper.sh/v1alpha1
kind: Gatekeeper
metadata:
name: gatekeeper
spec:
audit:
replicas: 1
auditEventsInvolvedNamespace: Enabled
logLevel: DEBUG
auditInterval: 10s
constraintViolationLimit: 55
auditFromCache: Enabled
auditChunkSize: 66
emitAuditEvents: Enabled
containerArguments:
- name: ""
value: ""
resources:
limits:
cpu: 500m
memory: 150Mi
requests:
cpu: 500m
memory: 130Mi
validatingWebhook: Enabled
mutatingWebhook: Enabled
webhook:
replicas: 3
emitAdmissionEvents: Enabled
admissionEventsInvolvedNamespace: Enabled
disabledBuiltins:
- http.send
operations:
- "CREATE"
- "UPDATE"
- "CONNECT"
failurePolicy: Fail
containerArguments:
- name: ""
value: ""
resources:
limits:
cpu: 480m
memory: 140Mi
requests:
cpu: 400m
memory: 120Mi
nodeSelector:
region: "EMEA"
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
auditKey: "auditValue"
topologyKey: topology.kubernetes.io/zone
tolerations:
- key: "Example"
operator: "Exists"
effect: "NoSchedule"
podAnnotations:
some-annotation: "this is a test"
other-annotation: "another test"
config:
matches:
- excludedNamespaces: ["test-*", "my-namespace"]
processes: ["*"]
disableDefaultMatches: false
- 1
- バージョン 3.14 以降では、作成する namespace 監査イベントを管理するために
auditEventsInvolvedNamespaceパラメーターを有効にします。このパラメーターを有効にすると、Gatekeeper コントローラーのデプロイメントは、--audit-events-involved-namespace=trueの引数で実行されます。 - 3
- バージョン 3.14 以降では、作成する namespace アドミッションイベントを管理するために
admissionEventsInvolvedNamespaceパラメーターを有効にします。このパラメーターを有効にすると、Gatekeeper コントローラーのデプロイメントは、--admission-events-involved-namespace=true引数で実行されます。 - 4
- バージョン 3.14 以降では、Webhook 操作を管理するために
operationsパラメーターで"CREATE"、"UPDATE"、"CONNECT"、および"DELETE"の値を使用します。 - 2 5
- バージョン 3.17 以降では、コンテナーに渡す引数名と値のリストを指定して、
containerArgumentsを指定します。引数名の先頭のダッシュを省略します。省略された値はtrueとして扱われます。指定した引数が Operator または他のフィールドからの設定によって以前に設定されている場合、その引数は無視されます。以下は、拒否リストに登録されており、現在サポートされていないフラグのリストです。-
ポート -
prometheus-port -
health-addr -
validating-webhook-configuration-name -
mutating-webhook-configuration-name -
disable-cert-rotation -
client-cert-name -
tls-min-version
-
- 6
- ハブクラスターのすべての制約に対して特定のプロセスの対象から namespace を除外するには、
configセクションを使用します。 - 7
disableDefaultMatchesパラメーターは、ブール型パラメーターで、Gatekeeper operator が提供するデフォルトの exempt namespace が追加されないようにします。デフォルトの exempt namespace は OpenShift Container Platform または Kubernetes システム namespace です。デフォルトでは、このパラメーターはfalseに設定されており、デフォルトの namespace を追加できるようになります。
5.3.3. auditFromCache の同期情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
バージョン 3.14 以降では、Gatekeeper Operator は、デフォルトで無効になっている auditFromCache パラメーターを使用して、監査設定の Gatekeeper Operator カスタムリソースの設定を公開します。制約からリソースを収集するには、auditFromCache パラメーターを設定します。
auditFromCache パラメーターを Automatic に設定すると、Gatekeeper Operator は制約からリソースを収集し、それらのリソースを Gatekeeper Config リソースに挿入します。リソースが存在しない場合は、Gatekeeper Operator が Config リソースを作成します。
auditFromCache パラメーターを Enabled に設定する場合は、キャッシュに同期するオブジェクトを含む Gatekeeper Config リソースを手動で設定する必要があります。詳細は、Gatekeeper ドキュメントの 監査の設定 を参照してください。
制約からのリソース収集の auditFromCache パラメーターを設定するには、次の手順を実行します。
Gatekeeperリソースで、auditFromCacheをAutomaticに設定します。以下の例を参照してください。apiVersion: operator.gatekeeper.sh/v1alpha1 kind: Gatekeeper metadata: name: gatekeeper spec: audit: replicas: 2 logLevel: DEBUG auditFromCache: Automaticリソースが
Configリソースに追加されたことを確認するには、syncOnlyパラメーターセクションが追加されていることを確認します。以下のコマンドを実行します。oc get configs.config.gatekeeper.sh config -n openshift-gatekeeper-systemConfigリソースは次の例のようになります。apiVersion: config.gatekeeper.sh/v1alpha1 kind: Config metadata: name: config namespace: "openshift-gatekeeper-system" spec: sync: syncOnly: - group: "" version: "v1" kind: "Namespace" - group: "" version: "v1" kind: "Pod"
オプション: 次のコマンドを実行すると、Gatekeeper Operator のカスタムリソースの説明から、auditFromCache 設定の説明を表示できます。
oc explain gatekeeper.spec.audit.auditFromCache
5.3.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- 詳細は、Gatekeeper ドキュメントの 監査の設定 を参照してください。