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


重要

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

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

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

この Istio-CSR 統合により、Istio は Red Hat OpenShift の cert-manager Operator から証明書を取得し、セキュリティーおよび証明書の管理を単純化できるようになりました。

9.10.1. Red Hat OpenShift の cert-manager Operator を使用した Istio-CSR エージェントのインストール

9.10.1.1. Istio-CSR 機能の有効化

以下の手順を使用して、Red Hat OpenShift の cert-manager Operator で 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.10.1.2. Istio-CSR エージェントのルート CA 発行者の作成

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

注記

ACME 発行者はサポートされていない他の発行者を除き、サポートされている他の発行者を使用できます。詳細は、"cert-manager Operator for Red Hat OpenShift issuer providers" を参照してください。

  • 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 プロジェクトの名前を指定します。

検証

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

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

    出力例

    NAME       READY   AGE
    istio-ca   True    3m

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

この手順を使用して、Red Hat OpenShift の cert-manager Operator を使用して 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 カスタムリソースを作成して、Istio ワークロードおよびコントロールプレーンの証明書署名要求を処理するために、Red Hat OpenShift の cert-manager Operator によって管理される Istio-CSR エージェントを有効にします。

    注記

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

    • 複数の IstioCSR CR が同時に作成される場合、何も処理されません。
    • 複数の IstioCSR CR が順次作成される場合、最初の CR のみが処理されます。
    • 新規要求が拒否されるのを防ぐには、未処理の IstioCSR CR を削除します。
    • Operator は、IstioCSR 用に作成されたオブジェクトを自動的に削除しません。アクティブな 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>
    • 以下のコマンドを実行して、Red Hat OpenShift Pod の cert-manager Operator がエラーを報告していないことを確認します。

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

9.10.2. Red Hat OpenShift の cert-manager Operator が管理する 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.10.3. Istio-CSR 機能が有効にされている Red Hat OpenShift の cert-manager Operator のアップグレード

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.