9.7. cert-manager Operator for Red Hat OpenShift と Istio-CSR の統合


重要

cert-manager Operator for Red Hat OpenShift と Istio-CSR の統合は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

cert-manager Operator for Red Hat OpenShift は、Red Hat OpenShift Service Mesh または Istio のワークロードとコントロールプレーンコンポーネントを保護するための強化されたサポートを提供します。これには、相互 TLS (mTLS) を有効にする証明書のサポートが含まれます。この証明書は cert-manager の発行者を使用して署名、配信、更新されます。cert-manager Operator for Red Hat OpenShift で管理される Istio-CSR エージェントを使用して、Istio ワークロードとコントロールプレーンコンポーネントを保護できます。

この Istio-CSR 統合により、Istio は cert-manager Operator for Red Hat OpenShift から証明書を取得できるようになります。これにより、セキュリティーと証明書管理が簡素化されます。

9.7.1. cert-manager Operator for Red Hat OpenShift を介した Istio-CSR エージェントのインストール

9.7.1.1. Istio-CSR 機能の有効化

cert-manager Operator for Red Hat OpenShift で Istio-CSR 機能を有効にするには、この手順を使用します。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  • 次のコマンドを実行して、cert-manager Operator for Red Hat OpenShift のデプロイメントを更新し、config map を使用します。

    $ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"UNSUPPORTED_ADDON_FEATURES","value":"IstioCSR=true"}]}}}'

検証

  1. 次のコマンドを実行して、デプロイメントのロールアウトが完了したことを確認します。

    $ oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator

    出力例

    deployment "cert-manager-operator-controller-manager" successfully rolled out

9.7.1.2. Istio-CSR エージェントのルート CA 発行者の作成

Istio-CSR エージェントのルート CA 発行者を作成するには、この手順を使用します。

注記

サポートされている他の発行者も使用できます。ただし、ACME はサポートされていません。詳細は、「cert-manager Operator for Red Hat OpenShift の発行者プロバイダー」を参照してください。

  • Issuer および Certificate オブジェクトを定義する YAML ファイル (例: issuer.yaml) を作成します。

    issuer.yaml ファイルの例

    apiVersion: cert-manager.io/v1
    kind: Issuer 1
    metadata:
      name: selfsigned
      namespace: <istio_project_name> 2
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: istio-ca
      namespace: <istio_project_name>
    spec:
     isCA: true
      duration: 87600h # 10 years
      secretName: istio-ca
      commonName: istio-ca
      privateKey:
        algorithm: ECDSA
        size: 256
      subject:
        organizations:
          - cluster.local
          - cert-manager
      issuerRef:
        name: selfsigned
        kind: Issuer 3
        group: cert-manager.io
    ---
    kind: Issuer
    metadata:
      name: istio-ca
      namespace: <istio_project_name> 4
    spec:
      ca:
        secretName: istio-ca

    1 3
    Issuer または ClusterIssuer を指定します。
    2 4
    Istio プロジェクトの名前を指定します。

検証

  • 次のコマンドを実行して、発行者が作成され、使用できる状態になっていることを確認します。

    $ oc get issuer istio-ca -n <istio_project_name>

    出力例

    NAME       READY   AGE
    istio-ca   True    3m

9.7.1.3. IstioCSR カスタムリソースの作成

cert-manager Operator for Red Hat OpenShift を介して Istio-CSR エージェントをインストールするには、この手順を使用します。

前提条件

  • cluster-admin 権限でクラスターにアクセスできる。
  • Istio-CSR 機能を有効にした。
  • Istio-CSR エージェントの証明書を生成するために必要な Issuer または ClusterIssuer リソースを作成した。

    注記

    Issuer リソースを使用している場合は、Red Hat OpenShift Service Mesh または Istiod namespace に Issuer および Certificate リソースを作成してください。証明書要求が同じ namespace に生成され、それに応じてロールベースのアクセス制御 (RBAC) が設定されます。

手順

  1. 次のコマンドを実行して、Istio-CSR をインストールするための新しいプロジェクトを作成します。既存のプロジェクトを使用して、このステップをスキップすることもできます。

    $ oc new-project <istio_csr_project_name>
  2. IstioCSR カスタムリソースを作成して、cert-manager Operator for Red Hat OpenShift によって管理される Istio-CSR エージェントを有効にし、Istio ワークロードとコントロールプレーンの証明書署名要求を処理できるようにします。

    注記

    一度にサポートされる IstioCSR カスタムリソース (CR) は 1 つだけです。複数の IstioCSR CR が作成された場合、アクティブになるのは 1 つだけです。IstioCSRstatus サブリソースを使用して、リソースが未処理かどうかを確認してください。

    • 複数の IstioCSR CR が同時に作成された場合、いずれも処理されません。
    • 複数の IstioCSR CR が連続して作成された場合、最初の CR のみが処理されます。
    • 新しい要求が拒否されないように、未処理の IstioCSR CR を削除します。
    • IstioCSR 用に作成されたオブジェクトが、Operator によって自動的に削除されることはありません。アクティブな IstioCSR リソースが削除され、以前のデプロイメントを削除せずに別の namespace に新しいリソースが作成されると、複数の istio-csr デプロイメントがアクティブなままになる可能性があります。この動作は推奨されておらず、サポートされていません。
    1. IstioCSR オブジェクトを定義する YAML ファイル (例: istiocsr.yaml) を作成します。

      IstioCSR.yaml ファイルの例

      apiVersion: operator.openshift.io/v1alpha1
      kind: IstioCSR
      metadata:
        name: default
        namespace: <istio_csr_project_name>
      spec:
        IstioCSRConfig:
          certManager:
            issuerRef:
              name: istio-ca  1
              kind: Issuer 2
              group: cert-manager.io
          istiodTLSConfig:
            trustDomain: cluster.local
          istio:
            namespace: istio-system

      1
      Issuer または ClusterIssuer の名前を指定します。issuer.yaml ファイルで定義されている CA 発行者と同じ名前にする必要があります。
      2
      Issuer または ClusterIssuer の種類を指定します。issuer.yaml ファイルで定義されている CA 発行者と同じ種類である必要があります。
    2. 次のコマンドを実行して、IstioCSR カスタムリソースを作成します。

      $ oc create -f IstioCSR.yaml

検証

  1. 次のコマンドを実行して、Istio-CSR デプロイメントの準備ができていることを確認します。

    $ oc get deployment -n <istio_csr_project_name>

    出力例

    NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
    cert-manager-istio-csr   1/1     1            1           24s

  2. 次のコマンドを実行して、Istio-CSR の Pod が実行されていることを確認します。

    $ oc get pod -n <istio_csr_project_name>

    出力例

    NAME                                  	 READY   STATUS	  RESTARTS    AGE
    cert-manager-istio-csr-5c979f9b7c-bv57w  1/1     Running  0           45s

    • 次のコマンドを実行して、Istio-CSR の Pod がログにエラーを報告していないことを確認します。

      $ oc -n <istio_csr_project_name> logs <istio_csr_pod_name>
    • 次のコマンドを実行して、cert-manager Operator for Red Hat OpenShift の Pod がエラーを報告していないことを確認します。

      $ oc -n cert-manager-operator logs <cert_manager_operator_pod_name>

9.7.2. cert-manager Operator for Red Hat OpenShift によって管理される Istio-CSR エージェントのアンインストール

Red Hat OpenShift の cert-manager Operator によって管理される Istio-CSR エージェントをアンインストールするには、この手順を使用します。

前提条件

  • cluster-admin 権限でクラスターにアクセスできる。
  • Istio-CSR 機能を有効にした。
  • IstioCSR カスタムリソースを作成した。

手順

  1. 次のコマンドを実行して、IstioCSR カスタムリソースを削除します。

    $ oc -n <istio-csr_project_name> delete istiocsrs.operator.openshift.io default
  2. 関連リソースを削除します。

    重要

    Red Hat OpenShift Service Mesh または Istio コンポーネントの停止を回避するために、次のリソースを削除する前に、Istio-CSR サービスまたは Istio 用に発行された証明書を参照しているコンポーネントがないことを確認してください。

    1. 次のコマンドを実行してクラスタースコープのリソースをリスト表示し、リスト表示されたリソースの名前を後で参照できるように保存します。

      $ oc get clusterrolebindings,clusterroles -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr"
    2. 次のコマンドを実行して、Istio-csr がデプロイされた namespace 内のリソースをリスト表示し、リスト表示されたリソースの名前を後で参照できるように保存します。

      $ oc get certificate,deployments,services,serviceaccounts -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
    3. 次のコマンドを実行して、Red Hat OpenShift Service Mesh または Istio がデプロイされた namespace 内のリソースをリスト表示し、リスト表示されたリソースの名前を後で参照できるように保存します。

      $ oc get roles,rolebindings -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
    4. 前のステップでリスト表示された各リソースに対して、次のコマンドを実行してリソースを削除します。

      $ oc -n <istio_csr_project_name> delete <resource_type>/<resource_name>

      関連するリソースがすべて削除されるまで、このプロセスを繰り返します。

9.7.3. Istio-CSR 機能が有効な cert-manager Operator for Red Hat OpenShift のアップグレード

Istio-CSR TechPreview フィーチャーゲートが有効になっている場合、Operator をアップグレードすることはできません。次の利用可能なバージョンを使用するには、cert-manager Operator for Red Hat OpenShift をアンインストールし、すべての Istio-CSR リソースを削除してから再インストールする必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.