第12章 ネットワーク
12.1. OpenShift Serverless でのサービスメッシュの使用
OpenShift Serverless でサービスメッシュを使用すると、開発者はデフォルトの Kourier 実装で OpenShift Serverless を使用する際にサポートされない追加のネットワークおよびルーティングオプションを設定できます。これらのオプションには、TLS 証明書を使用したカスタムドメインの設定、および JSON Web トークン認証の使用が含まれます。
前提条件
- OpenShift Serverless Operator および Knative Serving をインストールします。
- Red Hat OpenShift Service Mesh をインストールします。
手順
default
namespace をメンバーとして ServiceMeshMemberRoll に追加します。apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: - default
重要knative-serving
およびknative-serving-ingress
などのシステム namespace の Pod へのサイドカー挿入の追加はサポートされていません。Knative システム Pod から Knative サービスへのトラフィックフローを許可するネットワークポリシーを作成します。
serving.knative.openshift.io/system-namespace=true
ラベルをknative-serving
namespace に追加します。$ oc label namespace knative-serving serving.knative.openshift.io/system-namespace=true
serving.knative.openshift.io/system-namespace=true
ラベルをknative-serving-ingress
namespace に追加します。$ oc label namespace knative-serving-ingress serving.knative.openshift.io/system-namespace=true
以下の
NetworkPolicy
リソースを YAML ファイルにコピーします。apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-serving-system-namespace namespace: default spec: ingress: - from: - namespaceSelector: matchLabels: serving.knative.openshift.io/system-namespace: "true" podSelector: {} policyTypes: - Ingress
NetworkPolicy
リソースを適用します。$ oc apply -f <filename>
12.1.1. Knative サービスのサイドカーコンテナー挿入の有効化
アノテーションを Service
リソース YAML ファイルに追加し、Knative サービスのサイドカー挿入を有効にすることができます。
手順
sidecar.istio.io/inject="true"
アノテーションをService
リソースに追加します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: hello-example-1 spec: template: metadata: annotations: sidecar.istio.io/inject: "true" 1 spec: containers: - image: docker.io/openshift/hello-openshift name: container
- 1
sidecar.istio.io/inject="true"
アノテーションを追加します。
Service
リソースの YAML ファイルを適用します。$ oc apply -f <filename>
12.1.2. 追加リソース
- Red Hat OpenShift Service Mesh の詳細は、 Red Hat OpenShift Service Mesh architecture を参照してください。