1.8. ServiceMeshControlPlane の作成
OpenShift Container Platform Web コンソールを使用するか、または oc
クライアントツールを使用してコマンドラインから ServiceMeshControlPlane
(SMCP) の基本的なインストールをデプロイできます。
この基本的なインストールはデフォルトの OpenShift 設定に基づいて設定され、実稼働環境での使用を目的としていません。このデフォルトインストールを使用してインストールを確認し、お使いの環境に ServiceMeshControlPlane
を設定します。
Red Hat OpenShift Service on AWS (ROSA) では、リソースを作成できる場所に関して追加の制限が適用されるので、デフォルトのデプロイメントは機能しません。ROSA 環境に SMCP をデプロイする前に、追加の要件について、Red Hat OpenShift Service on AWS (ROSA) へのインストールを参照してください。
Service Mesh に関するドキュメントは istio-system
をサンプルプロジェクトとして使用しますが、サービスメッシュを任意のプロジェクトにデプロイできます。
1.8.1. Web コンソールからの Service Mesh コントロールプレーンのデプロイ
Web コンソールを使用して基本的な ServiceMeshControlPlane
をデプロイできます。この例では、istio-system
が Service Mesh コントロールプレーンプロジェクトの名前です。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
-
cluster-admin
ロールを持つアカウントがある。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。 istio-system
という名前のプロジェクトを作成します。-
Home
Projects に移動します。 - Create Project をクリックします。
Name
フィールドに istio-system と入力します。ServiceMeshControlPlane
リソースは、マイクロサービスおよび Operator とは異なるプロジェクトにインストールする必要があります。これらのステップは
istio-system
を例として使用しますが、サービスが含まれるプロジェクトから分離されない限り、Service Mesh コントロールプレーンを任意のプロジェクトにデプロイすることができます。- Create をクリックします。
-
Home
-
Operators
Installed Operators に移動します。 - Red Hat OpenShift Service Mesh Operator をクリックした後に、Istio Service Mesh Control Plane をクリックします。
- Istio Service Mesh Control Plane タブで Create ServiceMeshControlPlane をクリックします。
Create ServiceMeshControlPlane ページで、デフォルトの Service Mesh コントロールプレーンバージョンを受け入れて、製品の最新バージョンで利用可能な機能を活用します。コントロールプレーンのバージョンは、Operator のバージョンに関係なく利用可能な機能を判別します。
ServiceMeshControlPlane
設定は後で設定できます。詳細は、Red Hat OpenShift Service Mesh の設定を参照してください。- Create をクリックします。Operator は、設定パラメーターに基づいて Pod、サービス、Service Mesh コントロールプレーンのコンポーネントを作成します。
Istio Service Mesh Control Plane タブをクリックしてコントロールプレーンが正常にインストールされることを確認します。
- 新規コントロールプレーンの名前をクリックします。
- Resources タブをクリックして、Red Hat OpenShift Service Mesh コントロールプレーンリソース (Operator が作成し、設定したもの) を表示します。
1.8.2. CLI を使用した Service Mesh コントロールプレーンのデプロイ
コマンドラインから基本的な ServiceMeshControlPlane
をデプロイできます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
-
OpenShift CLI (
oc
) へのアクセスがある。
手順
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
istio-system
という名前のプロジェクトを作成します。$ oc new-project istio-system
以下の例を使用して
istio-installation.yaml
という名前のServiceMeshControlPlane
ファイルを作成します。Service Mesh コントロールプレーンのバージョンは、Operator のバージョンに関係なく利用可能な機能を判別します。バージョン 2.3 istio-installation.yaml の例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic namespace: istio-system spec: version: v2.3 tracing: type: Jaeger sampling: 10000 addons: jaeger: name: jaeger install: storage: type: Memory kiali: enabled: true name: kiali grafana: enabled: true
以下のコマンドを実行して Service Mesh コントロールプレーンをデプロイします。ここで、
<istio_installation.yaml>
にはファイルへの完全パスが含まれます。$ oc create -n istio-system -f <istio_installation.yaml>
Pod のデプロイメントの進行状況を監視するには、次のコマンドを実行します。
$ oc get pods -n istio-system -w
以下のような出力が表示されるはずです。
NAME READY STATUS RESTARTS AGE grafana-b4d59bd7-mrgbr 2/2 Running 0 65m istio-egressgateway-678dc97b4c-wrjkp 1/1 Running 0 108s istio-ingressgateway-b45c9d54d-4qg6n 1/1 Running 0 108s istiod-basic-55d78bbbcd-j5556 1/1 Running 0 108s jaeger-67c75bd6dc-jv6k6 2/2 Running 0 65m kiali-6476c7656c-x5msp 1/1 Running 0 43m prometheus-58954b8d6b-m5std 2/2 Running 0 66m
1.8.3. CLI を使用した SMCP インストールの検証
コマンドラインから ServiceMeshControlPlane
の作成を検証できます。
手順
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。$ oc login https://<HOSTNAME>:6443
次のコマンドを実行して、Service Mesh コントロールプレーンのインストールを確認します。
istio-system
は、Service Mesh コントロールプレーンをインストールした namespace です。$ oc get smcp -n istio-system
STATUS
列がComponentsReady
の場合、インストールは正常に終了しています。NAME READY STATUS PROFILES VERSION AGE basic 10/10 ComponentsReady ["default"] 2.1.1 66m
1.8.4. Kiali を使用した SMCP インストールの検証
Kiali コンソールを使用して、Service Mesh のインストールを検証できます。Kiali コンソールには、Service Mesh コンポーネントが適切にデプロイおよび設定されていることを検証する方法がいくつかあります。
手順
-
cluster-admin 権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)
dedicated-admin
ロールがあるアカウント。 -
Networking
Routes に移動します。 Routes ページで、Namespace メニューから Service Mesh コントロールプレーンプロジェクトを選択します (例:
istio-system
)。Location 列には、各ルートのリンク先アドレスが表示されます。
- 必要に応じて、フィルターを使用して Kiali コンソールのルートを見つけます。ルートの Location をクリックしてコンソールを起動します。
Log In With OpenShift をクリックします。
初回の Kiali コンソールへのログイン時に、表示するパーミッションを持つサービスメッシュ内のすべての namespace を表示する Overview ページが表示されます。概要 ページに複数の namespace が表示されている場合には、Kiali は最初に正常性または検証に問題がある namespace を表示します。
図1.1 Kiali の概要ページ
各 namespace のタイルには、ラベルの数、Istio Config の状態、アプリケーション の状態と数、namespace の トラフィック が表示されます。コンソールのインストールを検証中で、namespace がまだメッシュに追加されていない場合、
istio-system
以外のデータは表示されない可能性があります。Kiali には、Service Mesh コントロールプレーンがインストールされている namespace 専用のダッシュボードが 4 つあります。これらのダッシュボードを表示するには、オプション メニューをクリックします コントロールプレーン namespace のタイル (例:
istio-system
) で、次のいずれかのオプションを選択します。- Istio メッシュダッシュボード
- Istio コントロールプレーンダッシュボード
- Istio パフォーマンスダッシュボード
Istio Wasm Exetension ダッシュボード
図1.2 GrafanaIstio コントロールプレーンダッシュボード
Kiali は、Grafana ホームページ から入手できる追加の Grafana ダッシュボード 2 つもインストールします。
- Istio ワークロードダッシュボード
- Istio サービスダッシュボード
Service Mesh コントロールプレーンノードを表示するには、グラフ ページをクリックし、メニューから
ServiceMeshControlPlane
をインストールした Namespace を選択します (例:istio-system
)。- 必要に応じて、Display idle nodes をクリックします。
- グラフ ページの詳細は、グラフツアー リンクをクリックしてください。
- メッシュトポロジーを表示するには、namespace メニューの Service Mesh メンバーロールから追加の namespace を 1 つまたは複数選択します。
istio-system
namespace 内のアプリケーションのリストを表示するには、アプリケーション ページをクリックします。Kiali は、アプリケーションの状態を表示します。- 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
istio-system
namespace のワークロードのリストを表示するには、ワークロード ページをクリックします。Kiali は、ワークロードの状態を表示します。- 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
istio-system
namespace のサービスのリストを表示するには、サービス ページをクリックします。Kiali は、サービスと設定の状態を表示します。- 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
istio-system
namespace の Istio 設定オブジェクトのリストを表示するには、Istio Config ページをクリックします。Kiali は、設定の正常性を表示します。- 設定エラーがある場合は、行をクリックすると、Kiali が設定ファイルを開き、エラーが強調表示されます。
1.8.5. Red Hat OpenShift Service on AWS (ROSA) へのインストール
バージョン 2.2 以降、Red Hat OpenShift Service Mesh は Red Hat OpenShift Service on AWS (ROSA) へのインストールがサポートされます。本セクションでは、このプラットフォームに Service Mesh をインストールする際の追加の要件について説明します。
1.8.5.1. インストールの場所
Red Hat OpenShift Service Mesh をインストールし、ServiceMeshControlPlane
を作成する際に、istio-system
などの新規 namespace を作成する必要があります。
1.8.5.2. 必要な Service Mesh コントロールプレーンの設定
ServiceMeshControlPlane
ファイルのデフォルト設定は ROSA クラスターでは機能しません。Red Hat OpenShift Service on AWS にインストールする場合は、デフォルトの SMCP を変更し、spec.security.identity.type=ThirdParty
を設定する必要があります。
ROSA 用の ServiceMeshControlPlane
リソースの例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic namespace: istio-system spec: version: v2.3 security: identity: type: ThirdParty #required setting for ROSA tracing: type: Jaeger sampling: 10000 policy: type: Istiod addons: grafana: enabled: true jaeger: install: storage: type: Memory kiali: enabled: true prometheus: enabled: true telemetry: type: Istiod
1.8.5.3. Kiali 設定の制限
Red Hat OpenShift Service on AWS では、リソースを作成できる場所に関して追加の制限が適用され、Red Hat 管理の namespace に Kiali リソースを作成することはできません。
つまり、ROSA クラスターでは、spec.deployment.accessible_namespaces
の以下の共通設定は許可されません。
-
['**']
(すべての namespaces) -
default
-
codeready-*
-
openshift-*
-
redhat-*
検証エラーメッセージでは、制限されたすべての namespace の完全なリストが提供されます。
ROSA 用の Kiali
リソースの例
apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: auth: strategy: openshift deployment: accessible_namespaces: #restricted setting for ROSA - istio-system image_pull_policy: '' ingress_enabled: true namespace: istio-system
1.8.6. 関連情報
Red Hat OpenShift Service Mesh はクラスター内で複数の独立したコントロールプレーンをサポートします。ServiceMeshControlPlane
プロファイルを使用すると、再利用可能な設定を作成することができます。詳細は、コントロールプレーンプロファイルの作成 を参照してください。
1.8.7. 次のステップ
ServiceMeshMemberRoll
リソースを作成し、Service Mesh に関連付けられた namespace を指定します。詳細は、サービスメッシュへのサービスの追加 を参照してください。