|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
Haulerを使用したエアギャップ環境でのインストール
このガイドでは、Haulerを使用してエアギャップ(された)環境にSUSE Security Admission Controllerをインストールする方法を示します。Haulerは、ユーザーがエアギャップ(された)環境でワークロードを実行するのを支援するツールです。アプリに必要なリソースをエアギャップ(された)環境に移動します。
Admission Controllerは、プライベート環境でAdmission Controllerを実行するために必要なすべてのリソースを含むマニフェストファイルを提供します。このドキュメントでは、どのようにそれを使用できるかを説明します。Haulerのドキュメントを参照して、詳細を学んでください。
Haulerマニフェストを使用した基本的なワークフローは次のとおりです:
-
Admission Controllerのリリースページから取得します。
-
Admission Controllerを実行するために必要なすべてのリソースをローカルストアにロードします。
-
それらをファイルにエクスポートします。
-
ファイルをプライベート環境に移動します。
-
プライベート環境内で実行されているHaulerにリソースをロードします。
-
インストールプロセスで使用するために、すべてをエアギャップ(された)環境内のレジストリにコピーします。
HelmチャートのリリースページからHaulerマニフェストをダウンロードします。
Admission Controllerリリースページから`hauler_manifest.yml`をダウンロードします。
マニフェストに定義されたリソースをHaulerストアに同期します:
hauler store sync --filename hauler_manifest.yaml
Haulerはマニフェストからすべてのリソースをローカルストアにダウンロードします。このプロセスには数分かかります。完了すると、`hauler store info`コマンドで同期されたリソースを確認できます。
すべてのAdmission Controllerリソースを含むtarファイルを生成します。
Haulerコマンドを実行して、ストアに以前ロードされたすべてのリソースをファイルにエクスポートします:
hauler store save --filename kubewarden-resources.tar.zst
|
Admission Controllerコンテナイメージはx86_64およびArm®アーキテクチャをサポートしています。したがって、リソースをファイルに保存するときに、このような警告メッセージが表示されることがあります:
この警告メッセージを回避するには、 |
tarファイルを隔離された環境に転送します。
Admission Controllerリソースがすべて`kubewarden-resources.tar.zst`にあるので、エアギャップ(された)環境にコピーし、そこでHaulerストアにロードします:
hauler store load --filename kubewarden-resources.tar.zst
# Check if the resources are loaded
hauler store info
これで、Admission Controllerをインストールするために必要なすべてのリソースが、隔離された環境のHaulerストアにあります。
プライベートレジストリに投入します
Haulerストアのリソースを使用するには、それらを内部レジストリで利用可能にする必要があります。Haulerコマンドを使用して、それらをプライベートレジストリにコピーできます。
hauler store copy registry://localhost:5000
Haulerを実行して、ストアからすべてのリソースを持つレジストリを開始することもできます。このレジストリは安全ではないため、クラスターの設定を変更する必要があります:
# Find IP address of your host
# hostname -I
# Update registries.yaml for k3s based cluster to allow insecure access
# mirrors:
# "<HOST_IP>:5000":
# endpoint:
# - "http://<HOST_IP>:5000"
# configs:
# "<HOST_IP>:5000":
# tls:
# insecure_skip_verify: true
# Configure policy-server to allow pulling policies from insecure sources
# helm install .. kubewarden-defaults .. --set policyServer.insecureSources[0]=<HOST_IP:5000>
hauler store serve registry
これにより、`localhost:5000`アドレスでレジストリが開始されます。この時点から、Skopeoのような他のコマンドを使用して、Admission Controllerによって使用されるすべてのコンテナイメージ、ポリシーモジュール、およびHelmチャートをプライベートレジストリにコピーできます。
Admission Controllerをインストールします
プライベートレジストリに必要なすべてのものが揃ったので、Admission Controllerをインストールできます。標準のAdmission Controllerインストールとの違いは、コンテナイメージとポリシーのレジストリをプライベートレジストリに変更する必要があることです。さらに、OCIアーティファクトからHelmチャートをインストールする必要があります。
Admission Controllerスタックをインストールします:
helm install --wait -n kubewarden kubewarden-crds --create-namespace \
oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-crds
helm install --wait -n kubewarden kubewarden-controller \
--set "global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>" \
oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-controller
|
`kubewarden-controller`チャートで利用可能なPolicyReporterサブチャートを使用するには、エアギャップ(された)環境でサブチャートに特有の他の値を定義する必要があります。以下に例を示します:
サブチャートを有効にし、Policy Reporterイメージストアの場所でレジストリとリポジトリを構成するために、`auditScanner.policyReporter`と他の4つの値を定義する必要があります。ポリシーレポートサブチャートの値に関する詳細については、\Policy Reporterのドキュメントを参照してください。 |
helm install --wait -n kubewarden \
kubewarden-defaults oci://<REGISTRY.YOURDOMAIN.COM:PORT>/hauler/kubewarden-defaults \
--set global.cattle.systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT>
最後に、各ポリシーサーバーを設定して、プライベートレジストリからポリシーを取得する必要があります。ドキュメントのプライベートレジストリの使用セクションを参照してください。
これで、クラスター内にAdmission Controllerポリシーを作成できます。ポリシーは、プライベートレジストリで利用可能でなければなりません。
kubectl apply -f - <<EOF
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
name: privileged-pods
spec:
module: registry://<REGISTRY.YOURDOMAIN.COM:PORT>/kubewarden/policies/pod-privileged:v0.2.2
rules:
- apiGroups: [""]
apiVersions: ["v1"]
resources: ["pods"]
operations:
- CREATE
mutating: false
EOF
|
`PolicyServer`リソースは、プライベートレジストリで利用可能なイメージを使用する必要があります。 次に例を示します。
|