OCI Native Ingress Controllerの構成
OCIネイティブ・イングレス・コントローラを構成およびカスタマイズして、受信トラフィックをロード・バランシングし、Kubernetesクラスタ内のワーカー・ノードで実行されているサービス・ポッドにルーティングする方法をご紹介します。
OCIネイティブ・イングレス・コントローラ(スタンドアロン・プログラムまたはクラスタ・アドオンとして)をインストールし、それを使用するために必要なKubernetesイングレス関連リソースを作成したら、次の方法でOCIネイティブ・イングレス・コントローラを構成できます:
OCIネイティブ・イングレス・コントローラのルート・ルールの指定
OCIネイティブ・イングレス・コントローラ(スタンドアロン・プログラムまたはクラスタ・アドオンとしてインストール)によって作成されたOCIロード・バランサが受信リクエストをルーティングする方法を指定するには、Ingress
マニフェストでルート・ルールを指定します。
ホストに基づくリクエストのルーティング
OCIネイティブ・イングレス・コントローラを構成して、リクエストのホスト・ヘッダー(リクエストが最初に送信されたホスト)のドメイン名に基づいて受信リクエストをルーティングできます。
ホストに基づいて特定のバックエンド・サービスおよびポートにリクエストをルーティングするには、Ingress
マニフェストにルート・ルールを作成します。ホストがルート・ルールに一致する場合、OCIネイティブ・イングレス・コントローラは、関連付けられたバックエンド・サービスおよびポートにリクエストをルーティングします。
たとえば、http://foo.bar.com
に最初に送信されたリクエストを、ポート80のServiceAという名前のバックエンド・サービスにルーティングする次のルールを定義できます。最初にhttp://foo.bar.com
に送信されたすべての受信トラフィックは、ポート80でServiceAにルーティングされます。
kind: Ingress
...
spec:
rules:
- host: "foo.bar.com"
http:
paths:
- pathType: Prefix
path: /
backend:
serviceName: ServiceA
servicePort: 80
パスに基づいてリクエストを異なるバックエンド・サービスにルーティングします
OCIネイティブ・イングレス・コントローラを構成して、リクエストが最初に送信されたパス内の要素に基づいて、受信リクエストを異なるバックエンド・サービスにルーティングできます。
パスに基づいて特定のバックエンド・サービスおよびポートにリクエストをルーティングするには、Ingress
マニフェストにルート・ルールを作成します。パスがルート・ルールと一致する場合、OCIネイティブ・イングレス・コントローラは、関連付けられたバックエンド・サービスおよびポートにリクエストをルーティングします。同じルールに複数のパスを指定して、リクエストを異なるバックエンドにルーティングできます。
たとえば、リクエストの元の送信先パスに基づいてリクエストをルーティングする次のルールを定義できます。
- パスが/app1で始まる場合、OCIネイティブ・イングレス・コントローラは、ポート80のServiceAという名前のバックエンド・サービスにリクエストをルーティングします。
- パスが/app2で始まる場合、OCIネイティブ・イングレス・コントローラは、ポート443のServiceBという名前のバックエンド・サービスにリクエストをルーティングします。
ルールはホストを指定しないため、ルールはすべての受信トラフィックに適用されます。
kind: Ingress
...
spec:
rules:
- http:
paths:
- pathType: Prefix
path: /app1
backend:
serviceName: ServiceA
servicePort: 80
- pathType: Prefix
path: /app2
backend:
serviceName: ServiceB
servicePort: 443
ホストおよびパスに基づくリクエストのルーティング
OCIネイティブ・イングレス・コントローラを構成して、リクエストのホスト・ヘッダーのドメイン名(リクエストが最初に送信されたホスト)と元のリクエストが送信されたパス内の要素の両方に基づいて、受信リクエストをルーティングできます。
ホストおよびパスに基づいてリクエストを特定のバックエンド・サービスおよびポートにルーティングするには、Ingress
マニフェストにルート・ルールを作成します。ホストとパスがルート・ルールと一致する場合、OCIネイティブ・イングレス・コントローラは、関連付けられたバックエンド・サービスおよびポートにリクエストをルーティングします。
たとえば、http://foo.bar.com/app1
に最初に送信されたリクエストを、ポート80のfooという名前のバックエンド・サービスにルーティングする次のルールを定義できます。
kind: Ingress
...
spec:
rules:
- host: "foo.bar.com"
http:
paths:
- pathType: Prefix
path: /app1
backend:
serviceName: foo
servicePort: 80
デフォルト・バックエンドへのリクエストのルーティング
OCIネイティブ・イングレス・コントローラを構成して、受信リクエストをデフォルトのバックエンドにルーティングできます。どのルート・ルールにも一致しないリクエストを処理するようにデフォルト・バックエンドを構成できます。
たとえば、次のdefaultBackend
を定義して、Ingress
マニフェストの他のルールと一致しないリクエストを、ポート8080のServiceCという名前のバックエンド・サービスにルーティングできます。
Ingress
マニフェストで他のルールを指定しない場合は、defaultBackend
を指定する必要があります。
kind: Ingress
...
spec:
rules:
- http:
paths:
- pathType: Prefix
path: /app1
backend:
serviceName: ServiceA
servicePort: 80
- pathType: Prefix
path: /app2
backend:
serviceName: ServiceB
servicePort: 443
defaultBackend:
service:
name: ServiceC
port:
number: 8080
注釈を使用したOCIネイティブ・イングレス・コントローラの動作のカスタマイズ
IngressClass
またはIngress
リソース・マニフェストに注釈を追加して、OCIネイティブ・イングレス・コントローラ(スタンドアロン・プログラムまたはクラスタ・アドオンのいずれかとしてインストール)の動作をカスタマイズできます。
注釈を使用した一般的な動作のカスタマイズ
IngressClass
またはIngress
リソース・マニフェストに注釈を追加して、OCIネイティブ・イングレス・コントローラの一般的な動作をカスタマイズできます。
Annotation | 説明 | このリソース・マニフェストへの注釈の追加 | 例 |
---|---|---|---|
oci-native-ingress.oraclecloud.com/id |
OCID of an existing OCI load balancer to use, rather than creating a new one. 既存のロード・バランサを指定した場合、必要に応じてそのプロパティが更新され、IngressClassParametersおよびイングレス・リソース・マニフェストの値と一致します。 |
IngressClass |
oci-native-ingress.oraclecloud.com/id: ocid1.loadbalancer.oc1.iad.aaaaaaaan___u7a |
oci-native-ingress.oraclecloud.com/protocol |
ロード・バランサのリスナーに使用するプロトコル。(プロトコルとしてHTTP2を指定する場合は、TLS構成リスナーが必要です。) | Ingress |
oci-native-ingress.oraclecloud.com/protocol: "HTTP2" |
oci-native-ingress.oraclecloud.com/policy |
トラフィック分散のロード・バランサ・バックエンド・セットで使用されるポリシー。 | Ingress |
oci-native-ingress.oraclecloud.com/policy: "ROUND_ROBIN" |
oci-native-ingress.oraclecloud.com/waf-policy-ocid |
既存のWebアプリケーション・ファイアウォール(WAF)ポリシーのOCID。Web Application Firewallポリシーを参照してください。 | Ingress |
oci-native-ingress.oraclecloud.com/waf-policy-ocid: ocid1.webappfirewallpolicy.oc1.iad.ama___aqq |
注釈を使用したヘルス・チェック動作のカスタマイズ
Ingress
リソース・マニフェストに注釈を追加して、OCIネイティブ・イングレス・コントローラによって作成されたロード・バランサによって実行されるヘルス・チェックをカスタマイズできます。ロード・バランサのヘルス・チェックの詳細は、ロード・バランサのヘルス・チェックを参照してください。
Annotation | 説明 | このリソース・マニフェストへの注釈の追加 | 例 |
---|---|---|---|
oci-native-ingress.oraclecloud.com/healthcheck-protocol |
ロード・バランサ・バックエンド・セットのヘルス・チェックに使用するプロトコル。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-protocol: "HTTP" |
oci-native-ingress.oraclecloud.com/healthcheck-port |
ロード・バランサのバックエンド・セットのヘルス・チェックに使用するポート。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-port: "80" |
oci-native-ingress.oraclecloud.com/healthcheck-path |
ロード・バランサのバックエンド・セットのヘルス・チェックに使用するパス。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-path: "/test" |
oci-native-ingress.oraclecloud.com/healthcheck-interval-milliseconds |
ロード・バランサ・バックエンド・セットのヘルス・チェック間の間隔。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-interval-milliseconds: "1000" |
oci-native-ingress.oraclecloud.com/healthcheck-timeout-milliseconds |
ロード・バランサのバックエンド・セットのヘルス・チェックが失敗したとみなされる期間。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-timeout-milliseconds: "750" |
oci-native-ingress.oraclecloud.com/healthcheck-retries |
ロード・バランサのバックエンド・セットのヘルス・チェックが失敗したとみなされる再試行回数。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-retries: "5" |
oci-native-ingress.oraclecloud.com/healthcheck-return-code |
ヘルス・チェックに応答してロード・バランサ・バックエンド・セットが返す必要があるステータス・コードが正常とみなされます。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-return-code: "200" |
oci-native-ingress.oraclecloud.com/healthcheck-response-regex |
ロード・バランサ・バックエンド・セットからレスポンス本文を解析するための正規表現。正規表現の値(*、/など)または空の値を指定できます。 | Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-response-regex: "*" |
oci-native-ingress.oraclecloud.com/healthcheck-force-plaintext |
SSLを使用せずにロード・バランサ・バックエンドにヘルス・チェックを送信するかどうか(HTTPのみ)。指定しない場合、false がデフォルトです。 |
Ingress |
oci-native-ingress.oraclecloud.com/healthcheck-force-plaintext: "true" |
ポッド準備ゲートの設定
ポッド準備ゲートは、ポッドがトラフィックを受信する準備ができていることを示す追加の条件です。ポッド・レディネス・ゲートを使用すると、複雑なカスタム・レディネス・チェックを実装でき、ローリング・デプロイメント中にゼロ・ダウンタイムを実現できます。詳細は、Kubernetesドキュメントのポッド・レディネス詳細を参照してください。
OCIネイティブ・イングレス・コントローラを(スタンドアロン・プログラムとして、またはクラスタ・アドオンとして)ネットワーク・タイプとしてVCNネイティブ・ポッド・ネットワーキングを持つクラスタで使用する場合、OCIネイティブ・イングレス・コントローラが、特定のネームスペースで作成されたすべてのポッドのポッド仕様にポッド・レディネス・ゲートを注入することを指定することができます。クラスタにネットワーク・タイプとしてFlannel overayがある場合、OCIネイティブ・イングレス・コントローラを使用してポッド準備状況ゲートをポッド仕様に注入することはできません。
次のように入力して、OCIネイティブ・イングレス・コントローラが、特定のネームスペースで作成されたすべてのポッドのポッド仕様にポッド準備ゲートを注入することを指定します:
kubectl label ns <namespace> podreadiness.ingress.oraclecloud.com/pod-readiness-gate-inject=enabled
OCIネイティブ・イングレス・コントローラは、ネームスペースで作成されたすべてのポッドのポッド仕様に条件を注入します。例:
kind: Pod
...
spec:
readinessGates:
- conditionType: backend-health.lb.ingress.k8s.oci/ServiceA_80
kubectl get pods -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
testecho-7cdcfff87f-b6xt4 1/1 Running 0 35s 10.0.10.242 10.0.10.135 <none> 0/1
testecho-7cdcfff87f-b6xt4 1/1 Running 0 72s 10.0.10.242 10.0.10.135 <none> 1/1
HTTPS/TLSリクエストのサポートの追加
OCIネイティブ・イングレス・コントローラ(スタンドアロン・プログラムまたはクラスタ・アドオンとして)を使用して、セキュアなHTTPS通信をサポートできます。OCIネイティブ・イングレス・コントローラを使用して、TLS (旧SSL)を使用して暗号化されたトラフィックを処理するようにOCIロード・バランサ・リスナーおよびバックエンド・セットを設定できます。
OCIネイティブ・イングレス・コントローラを使用してHTTPS通信をサポートする場合、次の2つのオプションがあります:
- オプション1: OCI Native Ingress Controllerは、Kubernetesシークレットを使用して証明書サービスから証明書を取得します: Kubernetesシークレットを作成し、
Ingress
リソース・マニフェストでシークレットの名前を指定します。OCIネイティブ・イングレス・コントローラは、Kubernetesシークレットを使用して、OCI証明書サービスから証明書およびCAバンドル(認証局バンドル)を取得します。OCIネイティブ・イングレス・コントローラは、証明書およびCAバンドルをリスナーおよびバックエンド・セットに関連付けます。 - オプション2: 証明書サービスから証明書を取得する: OCI証明書サービスで証明書を自分で作成します。次に、証明書のOCIDを
Ingress
リソース・マニフェストに注釈として指定します。OCIネイティブ・イングレス・コントローラは、証明書をリスナーおよびバックエンド・セットに関連付けます。
HTTPSトラフィックを処理する場合、OCIネイティブ・イングレス・コントローラによって作成されたOCIロード・バランサは、エンドツーエンドTLSを実装します。ロード・バランサは、証明書を使用してクライアントからTLSで暗号化されたリクエストを受け入れ、ルーティング・ルールを使用してリクエストを適切なバックエンド・セットに転送します。バックエンド・セットは、クラスタで実行されているサービス・ポッドを使用して新しいTLS接続を作成します(CAバンドルを新しい接続の信頼権限として使用します)。
次の点に注意してください:
IngressClass
リソースを削除すると、OCIネイティブ・イングレス・コントローラは、作成したロード・バランサを削除します(または、oci-native-ingress.oraclecloud.com/id
注釈で指定された既存のロード・バランサを削除します)。ただし、イングレス・コントローラでは、OCI証明書サービスで作成されたリソースは削除されません。そのような証明書サービス・リソースを削除する責任があります。特に、Ingress
リソース・マニフェストでKubernetesシークレットを指定した場合は、OCIネイティブ・イングレス・コントローラが作成した証明書サービス・リソースを削除する必要があります。- タイプが「インポート済」のOCI証明書サービスから取得した証明書は、自動的にローテーションできません。証明書を自動的にローテーションする場合は、証明書サービス内部CAによって証明書を発行するように指定することで、OCI証明書サービスで証明書を手動で取得します(証明書のタイプは内部CAによって発行されます)。内部CAによって発行されるタイプの証明書を自動的にローテーションするように構成できます。
Ingress
リソース・マニフェストでKubernetesシークレットを指定する場合、OCIネイティブ・イングレス・コントローラが証明書サービスから取得する証明書のタイプはインポート済であるため、自動的にローテーションされないことに注意してください。このような証明書サービス証明書を手動でローテーションするには、まず新しいTLS公開キーと秘密キー・ペアと新しい証明書を使用して新しいKubernetesシークレットを作成します。次に、Ingress
リソースを新しいシークレットの名前で更新します。OCIネイティブ・イングレス・コントローラは、新しい証明書およびCAバンドルを証明書サービスから取得し、リスナーおよびバックエンド・セットに関連付けます(以前の証明書およびCAバンドルを置き換えます)。- 1つのリスナーは1つの証明書にのみ関連付けることができます。したがって、各イングレス・リソースに同じバックエンド・サービス/ポートの組合せを指定するルールがあるが、イングレス・リソースで異なる証明書が使用されている複数のイングレス・リソースを作成しないでください。
オプション1: OCIネイティブ・イングレス・コントローラは、Kubernetesシークレットを使用して証明書サービスから証明書を取得します
To configure the OCI native ingress controller to obtain a certificate from the OCI Certificates service:
- TLSの公開キーと秘密キーのペア、および証明書を取得します。
本番環境では、証明書署名リクエストを送信することで、選択した認証局からTLS証明書を取得します。証明書リクエスト・プロセス中に、公開キーおよび対応する秘密キーが生成されます。
開発およびテスト環境では、自己署名証明書を作成し、OpenSSLなどのツールを使用して秘密キーを自分で生成できます。たとえば(OpenSSL 3.0以降を使用):
-
次のコマンドを入力して、公開キーと秘密キーのペアを生成します。
openssl genrsa -out rootCA.key 4096
openssl req -x509 -addext basicConstraints=critical,CA:TRUE -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt -subj /CN=RootCA
-
次のコマンドを入力して証明書を生成します。
openssl genrsa -out server.key 4096
openssl req -new -sha256 -key server.key -subj /C=US/ST=CA/O=MyOrg,Inc./CN=my.example.com -out server.csr
openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256
この例では:
rootCA.key
には、ルートCAのキー・ペアが含まれます。rootCA.crt
には、ルートCA証明書が含まれます。server.key
には、サーバー証明書を生成するためのキー・ペアが含まれます。server.csr
には、サーバー証明書の証明書署名リクエストが含まれます。server.crt
には、生成されたサーバー証明書が含まれます。
-
- 次のいずれかの方法でKubernetesシークレット・リソースを作成します:
-
kubectl create secret generic
コマンドを使用して、次のように入力します。kubectl create secret generic <k8s-secret-name> --type=kubernetes.io/tls --from-file=ca.crt=<path-and-filename>.crt --from-file=tls.crt=<path-and-filename>.crt --from-file=tls.key=<path-and-filename>.key
ここでは:
<k8s-secret-name>
は、Kubernetesシークレットの名前を選択します--from-file=ca.crt=<path-and-filename>.crt
は、ルートCA証明書を含むファイルへのパスを指定します。たとえば、--from-file=ca.crt=rootCA.crt
です。--from-file=tls.crt=<path-and-filename>.crt
は、生成されたサーバー証明書を含むファイルへのパスを指定します。たとえば、--from-file=tls.crt=server.crt
です。--from-file=tls.key=<path-and-filename>.key
は、生成された秘密キーを含むファイルへのパスを指定します。たとえば、--from-file=tls.key=server.key
です。
例:
kubectl create secret generic example-tls-secret --type=kubernetes.io/tls --from-file=ca.crt=rootCA.crt --from-file=tls.crt=server.crt --from-file=tls.key=server.key
Secret
リソース・マニフェスト・ファイルの使用:-
Kubernetesシークレットを.yamlファイルで次の形式で定義します:
apiVersion: v1 kind: Secret metadata: name: <k8s-secret-name> type: kubernetes.io/tls data: ca.crt: <base64-encoded-certificate-chain> tls.crt: <base64-encoded-server-certificate> tls.key: <base64-encoded-private-key>
ここでは:
name: <k8s-secret-name>
は、Kubernetesシークレット・リソースの名前を選択します。ca.crt: <base64-encoded-certificate-chain>
は、リーフ証明書から認証局に戻る証明書チェーンを形成する中間証明書を含むファイル(またはファイル)の内容です。tls.crt: <base64-encoded-server-certificate>
は、生成されたサーバー証明書を含むファイルの内容です。tls.key: <base64-encoded-private-key>
は、生成された秘密キーを含むファイルの内容です。
例:
apiVersion: v1 kind: Secret metadata: name: example-tls-secret type: kubernetes.io/tls data: ca.crt : MIIFGERTegcDFRTuSDGfghREdE______Jre tls.crt: MIIC2DCCAcCgAwIBAgIBATANBg______kqh tls.key: MIIEpgIBAAKCAQEA7yn3bRHQ5F______HMQ
-
kubectl create -f <filename>.yaml
を入力してシークレット・リソースを作成します
-
-
- Kubernetesシークレットを
Ingress
リソース・マニフェストに追加します:- .yamlファイルに新しいイングレス・リソースを定義します。イングレス・リソースの作成を参照してください。
- マニフェストの
spec:
セクションで、HTTPSトラフィックを受信するホストとKubernetesシークレットの名前の両方を次の形式で指定するtls:
要素を追加します:kind: Ingress ... spec: tls: - hosts: - <host-name> secretName: <k8s-secret-name>
例:
kind: Ingress ... spec: tls: - hosts: - my.example.com secretName: example-tls-secret
- マニフェストの
rules:
セクションで、HTTPSトラフィックを受信するホストのルールを追加し、HTTPSトラフィックを待機するポートとして443を指定します。例:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: acme-tls-secret-ingress spec: tls: - hosts: - my.example.com secretName: example-tls-secret rules: - host: "my.example.com" http: paths: - pathType: Prefix path: "/TLSPath" backend: service: name: tls-test port: number: 443
-
kubectl create -f <filename>.yaml
を入力してリソースを作成します
イングレス・リソースを作成すると、OCIネイティブ・イングレス・コントローラはKubernetesシークレットを使用して、OCI証明書サービスからインポート済タイプの証明書およびCAバンドル(認証局バンドル)を取得します。OCIネイティブ・イングレス・コントローラは、証明書をリスナーに関連付け、CAバンドルをバックエンド・セットに関連付けます。
ポート443でリスニングしているリスナーが、指定されたホストへのHTTPSリクエストを受信すると、リスナーはTLS終了の証明書を使用します。次に、リスナーはルーティング・ルールを使用して、リクエストをバックエンド・セットに転送します。バックエンド・セットは、クラスタで実行されているサービス・ポッドを使用して新しいTLS接続を作成します(CAバンドルを新しい接続の信頼権限として使用します)。
オプション2: 証明書サービスから証明書を取得します
To configure the OCI native ingress controller to use a certificate that you have obtained from the OCI Certificates service:
- 次のいずれかの方法で、OCI証明書サービスに証明書を作成します:
- サード・パーティCAによって発行された証明書をインポートする(証明書のタイプは「インポート済」)
- 証明書サービスのCAから内部的に証明書を発行します(証明書のタイプは内部CAによって発行されたになります)
外部で管理する証明書を作成しないでください(タイプ「内部CAによって発行され、外部で管理されます」)。詳細は、証明書の作成を参照してください。
- 証明書のOCIDを書き留めます。
- 証明書のOCIDを
Ingress
リソース・マニフェストに追加します:- .yamlファイルに新しいイングレス・リソースを定義します。イングレス・リソースの作成を参照してください。
metadata:
セクションで、OCI証明書サービスで作成した証明書のOCIDを指定するannotations:
要素を次の形式で追加します:kind: Ingress metadata: name: <i-name> annotations: oci-native-ingress.oraclecloud.com/certificate-ocid: <certificate-ocid> spec: ...
ここでは:
name: <i-name>
は、イングレス・リソースの名前を選択します。oci-native-ingress.oraclecloud.com/certificate-ocid: <certificate-ocid>
は、OCI証明書サービスで作成した証明書のOCIDです
例:
kind: Ingress metadata: name: acme-tls-certificate-ingress annotations: oci-native-ingress.oraclecloud.com/certificate-ocid: ocid1.certificate.oc1.iad.amaaaaaa______gabc spec: ...
Ingress
リソース・マニフェストのrules:
セクションで、HTTPSトラフィックを受信するホストのルールを追加し、HTTPSトラフィックをリスニングするポートとして443を指定します。例:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: acme-tls-certificate-ingress annotations: oci-native-ingress.oraclecloud.com/certificate-ocid: ocid1.certificate.oc1.iad.amaaaaaa______gabc spec: rules: - host: "my.example.com" http: paths: - pathType: Prefix path: "/TLSPath" backend: service: name: tls-test port: number: 443
-
kubectl create -f <filename>.yaml
を入力してリソースを作成します
イングレス・リソースを作成するとどうなるかは、OCI証明書サービスで証明書を作成した方法によって異なります:
- サード・パーティのCAによって発行された証明書をインポートして証明書を作成した場合、証明書のタイプは「インポート済」です。OCIネイティブ・イングレス・コントローラは、証明書をリスナーに関連付け、証明書チェーンからCAバンドルを作成し、CAバンドルをバックエンド・セットに関連付けます。「インポート済」タイプの証明書を自動的にローテーションするように構成することはできません。
- 証明書サービスCAから内部的に証明書を発行して証明書を作成した場合、その証明書のタイプは内部CAによって発行されたです。OCIネイティブ・イングレス・コントローラは、証明書をリスナーに関連付け、CAのOCIDを取得し、そのOCIDをバックエンド・セットに関連付けます。「内部CAによって発行」タイプの証明書を自動的にローテーションするように構成できます。
ポート443でリスニングしているリスナーが、指定されたホストへのHTTPSリクエストを受信すると、リスナーはTLS終了の証明書を使用します。次に、リスナーはルーティング・ルールを使用して、リクエストをバックエンド・セットに転送します。バックエンド・セットは、クラスタで実行されているサービス・ポッド(CAバンドルまたはそのOCIDで識別されるCAを新しい接続の信頼権限として使用)を使用して、新しいTLS接続を作成します。