3.2. Service Mesh のインストール
OpenShift Serverless のインストールには、サービスメッシュのインストールされたバージョンが必要です。詳細は、OpenShift Container Platform ドキュメントで「Installing Service Mesh」を参照してください。
Operator のインストールについてのみサービスメッシュのドキュメントを使用してください。Operator のインストール後は、以下のドキュメントを使用してサービスメッシュのコントロールプレーンおよびメンバーロールをインストールします。
3.2.1. ServiceMeshControlPlane のインストール
サービスメッシュは、データプレーンおよびコントロールプレーンで構成されます。ServiceMesh Operator のインストール後に、コントロールプレーンをインストールできます。コントロールプレーンは、サイドプロキシーを管理し、ポリシーを適用し、Telemetry を収集するようにこれを設定します。以下の手順では、アプリケーションに対する ingress として機能するサービスメッシュのコントロールプレーンのバージョンをインストールします。
コントロールプレーンを istio-system
namespace にインストールする必要があります。現在、他の namespace はサポートされていません。
サンプル YAML ファイル
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: basic-install namespace: istio-system spec: istio: global: multitenant: true proxy: autoInject: disabled omitSidecarInjectorConfigMap: true disablePolicyChecks: false defaultPodDisruptionBudget: enabled: false istio_cni: enabled: true gateways: istio-ingressgateway: autoscaleEnabled: false type: LoadBalancer istio-egressgateway: enabled: false cluster-local-gateway: autoscaleEnabled: false enabled: true labels: app: cluster-local-gateway istio: cluster-local-gateway ports: - name: status-port port: 15020 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 mixer: enabled: false policy: enabled: false telemetry: enabled: false pilot: autoscaleEnabled: false sidecar: false kiali: enabled: false tracing: enabled: false prometheus: enabled: false grafana: enabled: false sidecarInjectorWebhook: enabled: false
このバージョンでは自動スケーリングが無効になっています。本リリースは実稼働環境での使用を目的としていません。
OpenShift Serverless で有効にされているサイドカーコンテナー挿入を使用してサービスメッシュを実行することは現時点で推奨されません。
前提条件
- クラスター管理者アクセスのあるアカウント
- ServiceMesh Operator がインストールされている。
手順
- クラスター管理者として OpenShift Container Platform インストールにログインします。
以下のコマンドを実行して
istio-system
namespace を作成します。$ oc new-project istio-system
-
サンプル YAML ファイルを
smcp.yaml
ファイルにコピーします。 以下のコマンドを使用して YAML ファイルを適用します。
$ oc apply -f smcp.yaml
以下のコマンドを実行して、インストールプロセス時に Pod の進捗を確認します。
$ oc get pods -n istio-system -w
3.2.2. ServiceMeshMemberRoll のインストール
サービスメッシュがマルチテナンシー用に設定されている場合、コントロールプレーン namespace のサービスメッシュのメンバーロールが必要です。アプリケーションがデプロイされたコントロールプレーンおよび ingress を使用するには、それらの namespace をメンバーロールの一部にする必要があります。
マルチテナントコントロールプレーンのインストールは、サービスメッシュの一部として設定された namespace のみに影響を与えます。ServiceMeshControlPlane
リソースと同じ namespace にある ServiceMeshMemberRoll
リソースのサービスメッシュに関連付けられた namespace を指定し、これを default
として指定する必要があります。
ServiceMeshMemberRoll カスタムリソースの例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: - knative-serving - mynamespace
前提条件
- Service Mesh Operator がインストールされていること。
- Red Hat OpenShift Service Mesh コントロールプレーンのパラメーターを定義するカスタムリソースファイル。
手順
- ServiceMeshMemberRoll カスタムリソースサンプルを複製する YAML ファイルを作成します。
関連する namespace を含めるように YAML ファイルを設定します。
注記サーバーレスアプリケーションをデプロイするすべての namespace を追加します。
knative-serving
namespace をメンバーロールに保持するようにしてください。以下を使用して、設定した YAML をファイル
smmr.yaml
にコピーし、これを適用します。$ oc apply -f smmr.yaml