2.5. Service Mesh のインストール
こちらは、サポートされなくなった Red Hat OpenShift Service Mesh リリースのドキュメントです。
Service Mesh バージョン 1.0 および 1.1 コントロールプレーンはサポートされなくなりました。Service Mesh コントロールプレーンのアップグレードについては、Service Mesh の アップグレード を参照してください。
特定の Red Hat Service Mesh リリースのサポートステータスについては、製品ライフサイクルページ を参照してください。
Service Mesh のインストールには、OpenShift Elasticsearch、Jaeger、Kiali、Service Mesh Operator のインストール、コントロールプレーンをデプロイするための ServiceMeshControlPlane
リソースの作成および管理、Service Mesh に関連する namespace を指定するための ServiceMeshMemberRoll
リソースの作成が含まれます。
Mixer のポリシーの適用はデフォルトで無効にされています。ポリシータスクを実行するには、これを有効にする必要があります。Mixer ポリシーの適用を有効にする方法については、Mixer ポリシーの適用の更新 を参照してください。
マルチテナントコントロールプレーンのインストールがデフォルトの設定です。
Service Mesh に関するドキュメントは istio-system
をサンプルプロジェクトとして使用しますが、サービスメッシュを任意のプロジェクトにデプロイできます。
2.5.1. 前提条件
- Red Hat OpenShift Service Mesh のインストールの準備 のプロセスに従ってください。
-
cluster-admin
ロールを持つアカウントがある。
Service Mesh のインストールプロセスでは、OperatorHub を使用して openshift-operators
プロジェクト内に ServiceMeshControlPlane
カスタムリソース定義をインストールします。Red Hat OpenShift Service Mesh は、コントロールプレーンのデプロイメント、更新、および削除に関連する ServiceMeshControlPlane
を定義し、監視します。
Red Hat OpenShift Service Mesh 1.1.18.2 以降では、Red Hat OpenShift Service Mesh Operator がコントロールプレーンをインストールする前に、OpenShift Elasticsearch Operator、Jaeger Operator、および Kiali Operator をインストールする必要があります。
2.5.2. OpenShift Elasticsearch Operator のインストール
デフォルトの Red Hat OpenShift 分散トレースプラットフォームのデプロイメントでは、インメモリーのストレージが使用されます。これは、Red Hat OpenShift 分散トレースの評価、デモの提供、またはテスト環境での Red Hat OpenShift 分散トレースプラットフォームの使用を希望するユーザー用に、迅速にインストール行うために設計されているためです。実稼働環境で Red Hat OpenShift 分散トレースプラットフォームを使用する予定がある場合、永続ストレージのオプション (この場合は Elasticsearch) をインストールし、設定する必要があります。
前提条件
- OpenShift Container Platform Web コンソールへのアクセスがある。
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。
Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。
OpenShift Logging の一部として OpenShift Elasticsearch Operator がすでにインストールされている場合、OpenShift Elasticsearch Operator を再びインストールする必要はありません。Red Hat OpenShift 分散トレースプラットフォーム Operator はインストールされた OpenShift Elasticsearch Operator を使用して Elasticsearch インスタンスを作成します。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。 -
Operators
OperatorHub に移動します。 - Elasticsearch とフィルターボックスに入力して、OpenShift Elasticsearch Operator を検索します。
- Red Hat が提供する OpenShift Elasticsearch Operator をクリックし、Operator についての情報を表示します。
- Install をクリックします。
- Install Operator ページで、stable 更新チャネルを選択します。これにより、新しいバージョンがリリースされると Operator が自動的に更新されます。
デフォルトの All namespaces on the cluster (default) を受け入れます。これにより、Operator がデフォルトの
openshift-operators-redhat
プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。注記Elasticsearch インストールでは、 Elasticsearch Operator に openshift-operators-redhat namespace が必要です。他の Red Hat OpenShift 分散トレース Operator は、
openshift-operators
namespace にインストールされます。デフォルトの Automatic 承認ストラテジーを受け入れます。デフォルトを受け入れることで、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動 更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator が新規バージョンに更新されるように更新要求を手動で承認する必要があります。
注記手動 の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
-
Installed Operators ページで、
openshift-operators-redhat
プロジェクトを選択します。OpenShift Elasticsearch Operator が InstallSucceeded のステータスを表示するまで待機してから続行します。
2.5.3. Red Hat OpenShift 分散トレースプラットフォーム Operator のインストール
Red Hat OpenShift 分散トレースプラットフォームをインストールするには、OperatorHub を使用して Red Hat OpenShift 分散トレースプラットフォーム Operator をインストールします。
デフォルトでは、Operator は openshift-operators
プロジェクトにインストールされます。
前提条件
- OpenShift Container Platform Web コンソールへのアクセスがある。
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。 - 永続ストレージが必要な場合、Red Hat OpenShift 分散トレースプラットフォーム Operator をインストールする前に OpenShift Elasticsearch Operator もインストールする必要があります。
Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。 -
Operators
OperatorHub に移動します。 - フィルターに distributing tracing platform と入力して、Red Hat OpenShift 分散トレースプラットフォーム Operator を探します。
- Red Hat が提供する Red Hat OpenShift distributed tracing platform Operator をクリックし、Operator についての情報を表示します。
- Install をクリックします。
- Install Operator ページで、stable 更新チャネルを選択します。これにより、新しいバージョンがリリースされると Operator が自動的に更新されます。
デフォルトの All namespaces on the cluster (default) を受け入れます。これにより、Operator がデフォルトの
openshift-operators
プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。デフォルトの Automatic 承認ストラテジーを受け入れます。デフォルトを受け入れることで、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動 更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator が新規バージョンに更新されるように更新要求を手動で承認する必要があります。
注記手動 の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
-
Operators
Installed Operators に移動します。 -
Installed Operators ページで、
openshift-operators
プロジェクトを選択します。Red Hat OpenShift 分散トレースプラットフォーム Operator が Succeeded のステータスを表示するまで待機してから続行します。
2.5.4. Kiali Operator のインストール
Service Mesh コントロールプレーンをインストールするには、Red Hat OpenShift Service Mesh Operator の Kiali Operator をインストールする必要があります。
Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。
前提条件
- OpenShift Container Platform Web コンソールにアクセスします。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub に移動します。 - Kiali とフィルターボックスに入力して、Kiali Operator を検索します。
- Red Hat が提供する Kiali Operator をクリックし、Operator についての情報を表示します。
- Install をクリックします。
- Operator Installation ページで、stable 更新チャネルを選択します。
-
All namespaces on the cluster(default) を選択します。これにより、Operator がデフォルトの
openshift-operators
プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。 Automatic Approval Strategy を選択します。
注記手動の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
- Installed Operators ページには、Kiali Operator のインストールの進捗状況が表示されます。
2.5.5. Operator のインストール
Red Hat OpenShift Service Mesh をインストールするには、以下の Operator をこの順序でインストールします。Operator ごとに手順を繰り返します。
- OpenShift Elasticsearch
- Red Hat OpenShift 分散トレースプラットフォーム
- Kiali
- Red Hat OpenShift Service Mesh
OpenShift Logging の一部として OpenShift Elasticsearch Operator がすでにインストールされている場合、OpenShift Elasticsearch Operator を再びインストールする必要はありません。Red Hat OpenShift 分散トレースプラットフォーム Operator はインストールされた OpenShift Elasticsearch Operator を使用して Elasticsearch インスタンスを作成します。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。 -
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Operator のフィルターボックスに名前を入力し、Red Hat バージョンの Operator を選択します。Operator のコミュニティーバージョンはサポートされていません。
- Install をクリックします。
- 各 Operator の Install Operator ページで、デフォルト設定を受け入れます。
Install をクリックします。Operator がインストールされるまで待機してから、一覧で次に来る Operator で手順を繰り返します。
-
OpenShift Elasticsearch Operator は、
openshift-operators-redhat
namespace にインストールされ、クラスター内のすべての namespace で使用できます。 -
Red Hat OpenShift 分散トレースプラットフォームは、
openshift-distributed-tracing
namespace にインストールされ、クラスター内のすべての namespace で使用できます。 -
Kiali および Red Hat Service Mesh Operator は、
openshift-operators
namespace にインストールされ、クラスター内のすべての namespace で使用できます。
-
OpenShift Elasticsearch Operator は、
-
4 つの Operator すべてをインストールしたら、Operators
Installed Operators をクリックし、Operator がインストールされていることを確認します。
2.5.6. Red Hat OpenShift Service Mesh コントロールプレーンのデプロイ
ServiceMeshControlPlane
リソースは、インストール時に使用される設定を定義します。Red Hat が提供するデフォルト設定をデプロイするか、またはビジネスのニーズに合わせて ServiceMeshControlPlane
ファイルをカスタマイズすることができます。
Web コンソールを使用するか、または oc
クライアントツールを使用してコマンドラインから Service Mesh コントロールプレーンをデプロイすることができます。
2.5.6.1. Web コンソールを使用したコントロールプレーンのデプロイ
以下の手順に従って、Web コンソールを使用して Red Hat OpenShift Service Mesh コントロールプレーンをデプロイします。この例では、istio-system
は、コントロールプレーンプロジェクトです。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
- Red Hat OpenShift Service Mesh のインストールのカスタマイズ方法についての手順を確認します。
-
cluster-admin
ロールを持つアカウントがある。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。 istio-system
という名前のプロジェクトを作成します。-
Home
Projects に移動します。 - Create Project をクリックします。
-
Name フィールドに
istio-system
を入力します。 - Create をクリックします。
-
Home
-
Operators
Installed Operators に移動します。 -
必要な場合は、Project メニューから
istio-system
を選択します。Operator が新規プロジェクトにコピーされるまでに数分待機する必要がある場合があります。 Red Hat OpenShift Service Mesh Operator をクリックします。Provided APIs の下に、Operator は 2 つのリソースタイプを作成するためのリンクを提供します。
-
ServiceMeshControlPlane
リソース -
ServiceMeshMemberRoll
リソース
-
- Istio Service Mesh Control Plane で Create ServiceMeshControlPlane をクリックします。
Create Service Mesh Control Plane ページで、必要に応じてデフォルト
ServiceMeshControlPlane
テンプレートの YAML を変更します。注記コントロールプレーンのカスタマイズについての詳細は、Red Hat OpenShift Service Mesh インストールのカスタマイズについて参照してください。実稼働環境の場合は、デフォルトの Jaeger テンプレートを変更する 必要 があります。
- Create をクリックしてコントロールプレーンを作成します。Operator は、設定パラメーターに基づいて Pod、サービス、Service Mesh コントロールプレーンのコンポーネントを作成します。
- Istio Service Mesh Control Plane タブをクリックします。
- 新規コントロールプレーンの名前をクリックします。
- Resources タブをクリックして、Red Hat OpenShift Service Mesh コントロールプレーンリソース (Operator が作成し、設定したもの) を表示します。
2.5.6.2. CLI からのコントロールプレーンのデプロイ
以下の手順に従って、CLI を使用して Red Hat OpenShift Service Mesh コントロールプレーンをデプロイします。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされている必要がある。
- Red Hat OpenShift Service Mesh のインストールのカスタマイズ方法についての手順を確認します。
-
cluster-admin
ロールを持つアカウントがある。 -
OpenShift CLI (
oc
) へのアクセスがある。
手順
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
istio-system
という名前のプロジェクトを作成します。$ oc new-project istio-system
-
Customize the Red Hat OpenShift Service Mesh installation にある例を使用して、
istio-installation.yaml
という名前のServiceMeshControlPlane
ファイルを作成します。必要に応じて値をカスタマイズして、ユースケースに合わせて使用することができます。実稼働デプロイメントの場合は、デフォルトの Jaeger テンプレートを変更する 必要 があります。 以下のコマンドを実行してコントロールプレーンをデプロイします。
$ oc create -n istio-system -f istio-installation.yaml
以下のコマンドを実行して、コントロールプレーンのインストールのステータスを確認します。
$ oc get smcp -n istio-system
STATUS 列が
ComponentsReady
の場合、インストールは正常に終了しています。NAME READY STATUS PROFILES VERSION AGE basic-install 11/11 ComponentsReady ["default"] v1.1.18 4m25s
以下のコマンドを実行して、インストールプロセス時の Pod の進捗を確認します。
$ oc get pods -n istio-system -w
以下のような出力が表示されるはずです。
出力例
NAME READY STATUS RESTARTS AGE grafana-7bf5764d9d-2b2f6 2/2 Running 0 28h istio-citadel-576b9c5bbd-z84z4 1/1 Running 0 28h istio-egressgateway-5476bc4656-r4zdv 1/1 Running 0 28h istio-galley-7d57b47bb7-lqdxv 1/1 Running 0 28h istio-ingressgateway-dbb8f7f46-ct6n5 1/1 Running 0 28h istio-pilot-546bf69578-ccg5x 2/2 Running 0 28h istio-policy-77fd498655-7pvjw 2/2 Running 0 28h istio-sidecar-injector-df45bd899-ctxdt 1/1 Running 0 28h istio-telemetry-66f697d6d5-cj28l 2/2 Running 0 28h jaeger-896945cbc-7lqrr 2/2 Running 0 11h kiali-78d9c5b87c-snjzh 1/1 Running 0 22h prometheus-6dff867c97-gr2n5 2/2 Running 0 28h
マルチテナントインストールでは、Red Hat OpenShift Service Mesh はクラスター内で複数の独立したコントロールプレーンをサポートします。ServiceMeshControlPlane
テンプレートを使用すると、再利用可能な設定を作成することができます。詳細は、コントロールプレーンテンプレートの作成 を参照してください。
2.5.7. Red Hat OpenShift Service Mesh メンバーロールの作成
ServiceMeshMemberRoll
は、Service Mesh コントロールプレーンに属するプロジェクトを一覧表示します。ServiceMeshMemberRoll
に一覧表示されているプロジェクトのみがコントロールプレーンの影響を受けます。プロジェクトは、特定のコントロールプレーンのデプロイメント用にメンバーロールに追加するまでサービスメッシュに属しません。
istio-system
など、ServiceMeshControlPlane
と同じプロジェクトに、 default
という名前の ServiceMeshMemberRoll
リソースを作成する必要があります。
2.5.7.1. Web コンソールからのメンバーロールの作成
Web コンソールを使用して 1 つ以上のプロジェクトを Service Mesh メンバーロールに追加します。この例では、istio-system
が Service Mesh コントロールプレーンプロジェクトの名前です。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
- サービスメッシュに追加する既存プロジェクトの一覧。
手順
- OpenShift Container Platform Web コンソールにログインします。
メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
-
Home
Projects に移動します。 - Name フィールドに名前を入力します。
- Create をクリックします。
-
Home
-
Operators
Installed Operators に移動します。 -
Project メニューをクリックし、一覧から
ServiceMeshControlPlane
リソースがデプロイされているプロジェクト (例:istio-system
) を選択します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
- Create ServiceMeshMemberRoll をクリックします。
-
Members をクリックし、Value フィールドにプロジェクトの名前を入力します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRoll
リソースしか属することができません。 - Create をクリックします。
2.5.7.2. CLI からのメンバーロールの作成
コマンドラインからプロジェクトを ServiceMeshMemberRoll
に追加します。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
- サービスメッシュに追加するプロジェクトの一覧。
-
OpenShift CLI (
oc
) へのアクセスがある。
手順
OpenShift Container Platform CLI にログインします。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
メッシュのサービスがない場合や、ゼロから作業を開始する場合は、アプリケーションのプロジェクトを作成します。これは、Service Mesh コントロールプレーンをインストールしたプロジェクトとは異なる必要があります。
$ oc new-project <your-project>
プロジェクトをメンバーとして追加するには、以下の YAML の例を変更します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRoll
リソースしか属することができません。この例では、istio-system
が Service Mesh コントロールプレーンプロジェクトの名前です。servicemeshmemberroll-default.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name
以下のコマンドを実行して、
istio-system
namespace にServiceMeshMemberRoll
リソースをアップロードおよび作成します。$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
以下のコマンドを実行して、
ServiceMeshMemberRoll
が正常に作成されていることを確認します。$ oc get smmr -n istio-system default
STATUS
列がConfigured
の場合には、インストールは正常に終了しています。
2.5.8. サービスメッシュからのプロジェクトの追加または削除
Web コンソールを使用して既存の Service Mesh ServiceMeshMemberRoll
リソースを追加または削除できます。
-
任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRoll
リソースしか属することができません。 -
ServiceMeshMemberRoll
リソースは、対応するServiceMeshControlPlane
リソースが削除されると削除されます。
2.5.8.1. Web コンソールを使用したメンバーロールからのプロジェクトの追加または削除
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
-
既存の
ServiceMeshMemberRoll
リソース。 -
ServiceMeshMemberRoll
リソースを持つプロジェクトの名前。 - メッシュに/から追加または削除するプロジェクトの名前。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
Installed Operators に移動します。 -
Project メニューをクリックし、一覧から
ServiceMeshControlPlane
リソースがデプロイされているプロジェクト (例:istio-system
) を選択します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Member Roll タブをクリックします。
-
default
リンクをクリックします。 - YAML タブをクリックします。
-
YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRoll
リソースしか属することができません。 - Save をクリックします。
- Reload をクリックします。
2.5.8.2. CLI を使用したメンバーロールからのプロジェクトの追加または削除
コマンドラインを使用して既存の Service Mesh Member Roll を変更できます。
前提条件
- Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
-
既存の
ServiceMeshMemberRoll
リソース。 -
ServiceMeshMemberRoll
リソースを持つプロジェクトの名前。 - メッシュに/から追加または削除するプロジェクトの名前。
-
OpenShift CLI (
oc
) へのアクセスがある。
手順
- OpenShift Container Platform CLI にログインします。
ServiceMeshMemberRoll
リソースを編集します。$ oc edit smmr -n <controlplane-namespace>
YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは 単一 の
ServiceMeshMemberRoll
リソースしか属することができません。servicemeshmemberroll-default.yaml の例
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system #control plane project spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name
2.5.9. 手動更新
手動で更新することを選択する場合、Operator Lifecycle Manager (OLM) は、クラスター内の Operator のインストール、アップグレード、ロールベースのアクセス制御 (RBAC) を制御します。OLM はデフォルトで OpenShift Container Platform で実行されます。OLM は CatalogSource を使用します。これは Operator Registry API を使用して利用可能な Operator やインストールされた Operator のアップグレードについてクエリーします。
- OpenShift Container Platform のアップグレードの処理方法についての詳細は、Operator Lifecycle Manager のドキュメントを参照してください。
2.5.9.1. サイドカープロキシーの更新
サイドカープロキシーの設定を更新するには、アプリケーション管理者はアプリケーション Pod を再起動する必要があります。
デプロイメントで自動のサイドカーコンテナー挿入を使用する場合、アノテーションを追加または変更してデプロイメントの Pod テンプレートを更新することができます。以下のコマンドを実行して Pod を再デプロイします。
$ oc patch deployment/<deployment> -p '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt": "'`date -Iseconds`'"}}}}}'
デプロイメントで自動のサイドカーコンテナー挿入を使用しない場合、デプロイメントまたは Pod で指定されたサイドカーコンテナーイメージを変更して Pod を再起動し、サイドカーコンテナーを手動で更新する必要があります。
2.5.10. 次のステップ
- Red Hat OpenShift Service Mesh で アプリケーションをデプロイする準備 をします。