9.12. トラストマネージャーオペランドを使用して証明書を配布する
トラストマネージャーオペランドを使用すると、OpenShift Container Platform クラスター全体への認証局 (CA) 証明書の配布が簡素化されます。管理者として、クラスターの要件に応じてオペランドを設定し、トラストバンドルを効率的に管理できます。
トラストマネージャーを使用した証明書の配布は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
トラストマネージャーオペランドには、以下の利点があります。
- クラスター全体への CA 証明書の配布は、Day 2 オペレーションとして実施します。
- ConfigMap、Secrets、インラインデータ、デフォルト CA など、複数のソースからの証明書を単一のトラストバンドルに統合します。
- 基となるソース証明書が変更されるたびに、対象オブジェクトが自動的に更新されます。
- ConfigMap オブジェクトではなく、シークレットを明示的に必要とするアプリケーション向けに、シークレットオブジェクトとしてトラストバンドルを作成する。
- クラスターのデフォルトの信頼できる認証局 (CA) バンドルとの自動統合により、手動設定は不要です。
9.12.1. トラストマネージャーオペランドのインストール リンクのコピーリンクがクリップボードにコピーされました!
トラストマネージャーオペランドをインストールすると、クラスター名前空間全体にトラストバンドルを自動的に配布できるようになります。トラストマネージャーオペランドはデフォルトではインストールされません。
トラストマネージャーを使用した証明書の配布は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
クラスターで、
TechPreviewNoUpgrade、DevPreviewNoUpgrade、CustomNoUpgrade、またはOKDのいずれかの機能セットを有効にしています。機能セットを有効にする方法の詳細は、フィーチャーゲートを使用した機能の有効化を参照してください。 -
cluster-admin権限でクラスターにアクセスできる。 - Cert-manager Operator for Red Hat OpenShift をインストールしました。
手順
Operator 契約でトラストマネージャーアドオン機能を有効にするには、次のコマンドを実行します。
oc -n cert-manager-operator patch subscription cert-manager-operator \ --type='merge' \ -p '{"spec":{"config":{"env":[{"name":"UNSUPPORTED_ADDON_FEATURES","value":"TrustManager=true"}]}}}'次の例に示すように、
TrustManagerカスタムリソース (CR) を定義する YAML ファイル (例:trust-manager.yaml) を作成します。trust-manager.yaml の例
apiVersion: operator.openshift.io/v1alpha1 kind: TrustManager metadata: name: cluster spec: trustManagerConfig: logLevel: 2 logFormat: "text" trustNamespace: "cert-manager" filterExpiredCertificates: "Enabled" secretTargets: policy: "Custom" authorizedSecrets: - "my-trust-bundle" - "app-ca-bundle" defaultCAPackage: policy: "Enabled" resources: {} affinity: {} tolerations: [] nodeSelector: {} controllerConfig: labels: environment: "production" team: "platform" annotations: example.com/managed-by: "cert-manager-operator"注記クラスターごとに
TrustManagerCR のインスタンスを 1 つしか作成できないため、metadata.nameフィールドはclusterに設定する必要があります。以下のコマンドを実行して、
TrustManagerCR を作成します。$ oc create -f trust-manager.yaml
検証
以下のコマンドを実行して、
trust-managerオペランドが正常に動作していることを確認してください。$ oc get TrustManager cluster -o jsonpath='{.status.conditions}' | jq出力例
[ { "lastTransitionTime": "2026-03-27T11:54:50Z", "message": "", "reason": "Ready", "status": "False", "type": "Degraded" }, { "lastTransitionTime": "2026-03-27T11:54:50Z", "message": "reconciliation successful", "reason": "Ready", "status": "True", "type": "Ready" } ]出力の
メッセージフィールドにはリコンシリエーション successfulという値が含まれている必要があります。cert-manager名前空間でtrust-manager のデプロイメントが正常に実行されていることを確認してください。$ oc get Deployments -l "app.kubernetes.io/name=cert-manager-trust-manager" -n cert-manager出力例
NAME READY UP-TO-DATE AVAILABLE AGE trust-manager 1/1 1 1 109s以下のコマンドを実行して、Pod の状態が
実行中であることを確認してください。$ oc get pods -l "app.kubernetes.io/name=cert-manager-trust-manager" -n cert-manager出力例
NAME READY STATUS RESTARTS AGE trust-manager-547bb59b4b-hd6mv 1/1 Running 0 24s
次のステップ
- トラストバンドルの設定