7.3. OpenShift Serverless トランスポート暗号化のセットアップ
前提条件
- クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
- {oc-first} をインストールします。
- cert-manager Operator for Red Hat OpenShift をインストールします。
- OpenShift Serverless Operator をインストールしている。
Red Hat OpenShift 用の cert-manager Operator をインストールする前に OpenShift Serverless Operator をインストールする場合は、knative-serving namespace でコントローラーとアクティベーターのデプロイメントを再起動する必要があります。これらのデプロイメントを再起動しないと、Knative は必要な cert-manager リソースを作成できなくなり、Knative Service が保留となり、Knative Serving cert-manager 統合を有効にできなくなります。
7.3.1. SelfSigned クラスター発行者の設定 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、ルート証明書として SelfSigned 発行者を使用します。この方法の影響と制限は、SelfSigned cert-manager のドキュメント を参照してください。
独自の会社固有の秘密鍵インフラストラクチャー (PKI) を管理する場合は、CA 発行者を使用します。詳細は、CA 発行者に関する cert-manager ドキュメント を参照してください。
手順
SelfSignedClusterIssuerカスタムリソース (CR) を作成します。ClusterIssuer CR の例
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: knative-serving-selfsigned-issuer spec: selfSigned: {}次のコマンドを実行して
ClusterIssuerCR を適用します。$ oc apply -f <filename>ClusterIssuerCR を参照するルート証明書を作成します。ルート証明書の例
apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: knative-serving-selfsigned-ca namespace: cert-manager1 spec: secretName: knative-serving-ca2 isCA: true commonName: selfsigned-ca privateKey: algorithm: ECDSA size: 256 issuerRef: name: knative-serving-selfsigned-issuer kind: ClusterIssuer group: cert-manager.io次のコマンドを実行して
CertificateCR を適用します。$ oc apply -f <filename>
7.3.2. Serving で使用する ClusterIssuer の作成 リンクのコピーリンクがクリップボードにコピーされました!
Serving による証明書の使用を有効にするには、クラスター発行者を作成する必要があります。
手順
Serving 用の
knative-serving-ca-issuerClusterIssuerを作成します。apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: knative-serving-ca-issuer spec: ca: secretName: knative-serving-ca1 - 1
- 新しい証明書の OpenShift Serverless Serving コンポーネントで使用できる証明書を含む、Red Hat OpenShift namespace の cert-manager Operator 内のシークレット名 (デフォルトでは
cert-manager)。
次のコマンドを実行して
ClusterIssuerリソースを適用します。$ oc apply -f <filename>
7.3.3. トランスポート暗号化の設定 リンクのコピーリンクがクリップボードにコピーされました!
トランスポート暗号化の設定には、以下の 2 つの部分があります。
使用する
ClusterIssuer発行者を指定します。-
clusterLocalIssuerRef: Ingress に使用される cluster-local-domain 証明書の発行者 -
systemInternalIssuerRef: Knative 内部コンポーネントによって使用される system-internal-tls 証明書の発行者
-
使用するトランスポート暗号化機能を指定します。
-
cluster-local-domain-tls: cluster-local ドメインのトランスポート暗号化機能の有効化 -
system-internal-tls: OpenShift Serverless Serving 内部コンポーネントのトランスポート暗号化機能を有効にします。
-
手順
KnativeServingリソースでのトランスポート暗号化の有効化apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: ... config: certmanager: clusterLocalIssuerRef: | kind: ClusterIssuer name: knative-serving-ca-issuer1 systemInternalIssuerRef: | kind: ClusterIssuer name: knative-serving-ca-issuer2 network: cluster-local-domain-tls: Enabled3 system-internal-tls: Enabled4 次のコマンドを実行して、
KnativeServingリソースを適用します。$ oc apply -f <filename>必要に応じて、Ingress Controller の
defaultCertificate値を変更します。apiVersion: operator.openshift.io/v1 kind: IngressController ... spec: defaultCertificate: name: ca-ingress-certdefaultCertificate値を変更した場合は、KnativeServingカスタムリソースのopenshift-Ingress-default-certificateフィールドにカスタム証明書名を指定する必要があります。たとえば、カスタム証明書名が
ca-ingress-certの場合、次の設定を追加します。... spec: config: network: system-internal-tls: Enabled openshift-ingress-default-certificate: "ca-ingress-cert" ...cluster-local-domain-tlsまたはsystem-internal-tlsを有効にした場合は、次のコマンドを実行して Controller コンポーネントを再起動します。重要cluster-local-domain-tlsまたはsystem-internal-tls機能のいずれかが有効になっている場合は、Knative Servingcert-managerインテグレーションを有効にするために、Controller コンポーネントを再起動する必要があります。$ oc rollout restart deploy/controller -n knative-servingsystem-internal-tlsを有効にした場合は、次のコマンドを実行して Activator コンポーネントを再起動します。重要system-internal-tls機能が有効化されている場合、Activator コンポーネントを再起動して内部 Web サーバーを再設定する必要があります (ランタイム時にはできないため)。$ oc rollout restart deploy/activator -n knative-serving