3.2. Red Hat OpenShift Service Mesh のインストール

サービスメッシュのインストールには、Elasticsearch、Jaeger、Kiali、Service Mesh Operator のインストール、コントロールプレーンをデプロイするための ServiceMeshControlPlane リソースの作成および管理、サービスメッシュに関連する namespace を指定するための ServiceMeshMemberRoll リソースの作成が含まれます。

注記

Mixer のポリシーの適用はデフォルトで無効にされています。ポリシータスクを実行するには、これを有効にする必要があります。Mixer ポリシーの適用を有効にする方法については、Mixer ポリシーの適用の更新について参照してください。

注記

マルチテナントコントロールプレーンのインストールは、Red Hat OpenShift Service Mesh 1.0 以降のデフォルト設定です。

注記

サービスメッシュに関するドキュメントは istio-system をサンプルプロジェクトとして使用しますが、サービスメッシュを任意のプロジェクトにデプロイできます。

3.2.1. 前提条件

3.2.2. OperatorHub からの Operator のインストール

サービスメッシュのインストールプロセスでは、OperatorHub を使用して openshift-operators プロジェクト内に ServiceMeshControlPlane カスタムリソース定義をインストールします。Red Hat OpenShift Service Mesh は、コントロールプレーンのデプロイメント、更新、および削除に関連する ServiceMeshControlPlane を定義し、監視します。

Red Hat OpenShift Service Mesh 1.1.7 以降では、Red Hat OpenShift Service Mesh Operator がコントロールプレーンをインストールするには、Elasticsearch Operator、Jaeger Operator、および Kiali Operator をインストールをする必要があります。

3.2.2.1. Elasticsearch Operator のインストール

コントロールプレーンをインストールするには、Red Hat OpenShift Service Mesh Operator の Elasticsearch Operator をインストールする必要があります。

警告

Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。

前提条件

  • OpenShift Container Platform Web コンソールへのアクセス。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsOperatorHub に移動します。
  3. Elasticsearch とフィルターボックスに入力して、Elasticsearch Operator を検索します。
  4. Elasticsearch Operator をクリックし、Operator についての情報を表示します。
  5. Install をクリックします。
  6. Create Operator Subscription ページで、All namespaces on the cluster (default) を選択します。これにより、Operator がデフォルトの openshift-operators プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。
  7. Update Channel で最新のバージョンを選択します。
  8. Automatic Approval Strategy を選択します。

    注記

    手動の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。

  9. Subscribe をクリックします。
  10. Installed Operators ページには、Elasticsearch Operator のインストールの進捗状況が表示されます。

3.2.2.2. Jaeger Operator のインストール

コントロールプレーンをインストールするには、Red Hat OpenShift Service Mesh Operator の Jaeger Operator をインストールする必要があります。

警告

Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。

前提条件

  • OpenShift Container Platform Web コンソールへのアクセス。
  • Elasticsearch Operator がインストールされていること。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsOperatorHub に移動します。
  3. Jaeger とフィルターボックスに入力して、Jaeger Operator を検索します。
  4. Red Hat が提供する Jaeger Operator をクリックし、Operator についての情報を表示します。
  5. Install をクリックします。
  6. Create Operator Subscription ページで、All namespaces on the cluster (default) を選択します。これにより、Operator がデフォルトの openshift-operators プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。
  7. stable Update Channel を選択します。
  8. Automatic Approval Strategy を選択します。

    注記

    手動の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。

  9. Subscribe をクリックします。
  10. Subscription Overview ページには、Jaeger Operator のインストールの進捗状況が表示されます。

3.2.2.3. Kiali Operator のインストール

コントロールプレーンをインストールするには、Red Hat OpenShift Service Mesh Operator の Kiali Operator をインストールする必要があります。

警告

Operator のコミュニティーバージョンはインストールしないでください。コミュニティー Operator はサポートされていません。

前提条件

  • OpenShift Container Platform Web コンソールへのアクセス。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsOperatorHub に移動します。
  3. Kiali とフィルターボックスに入力して、Kiali Operator を検索します。
  4. Red Hat が提供する Kiali Operator をクリックし、Operator についての情報を表示します。
  5. Install をクリックします。
  6. Create Operator Subscription ページで、All namespaces on the cluster (default) を選択します。これにより、Operator がデフォルトの openshift-operators プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。
  7. stable Update Channel を選択します。
  8. Automatic Approval Strategy を選択します。

    注記

    手動の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。

  9. Subscribe をクリックします。
  10. Subscription Overview ページには、Kiali Operator のインストールの進捗状況が表示されます。

3.2.2.4. Red Hat OpenShift Service Mesh Operator のインストール

前提条件

  • OpenShift Container Platform Web コンソールへのアクセス。
  • Elasticsearch Operator がインストールされていること。
  • Jaeger Operator がインストールされていること。
  • Kiali Operator がインストールされていること。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsOperatorHub に移動します。
  3. Red Hat OpenShift Service Mesh とフィルターボックスに入力して、Red Hat OpenShift Service Mesh Operator を検索します。
  4. Red Hat OpenShift Service Mesh Operator をクリックし、Operator についての情報を表示します。
  5. Create Operator Subscription ページで、All namespaces on the cluster (default) を選択します。これにより、Operator がデフォルトの openshift-operators プロジェクトにインストールされ、Operator はクラスター内のすべてのプロジェクトで利用可能になります。
  6. Install をクリックします。
  7. stable Update Channel を選択します。
  8. Automatic Approval Strategy を選択します。

    注記

    手動の承認ストラテジーには、Operator のインストールおよびサブスクリプションプロセスを承認するための適切な認証情報を持つユーザーが必要です。

  9. Subscribe をクリックします。
  10. Subscription Overview ページには、Red Hat OpenShift Service Mesh Operator のインストールの進捗状況が表示されます。

3.2.2.5. Red Hat OpenShift Service Mesh コントロールプレーンのデプロイ

ServiceMeshControlPlane リソースは、インストール時に使用される設定を定義します。Red Hat が提供するデフォルト設定をデプロイするか、またはビジネスのニーズに合わせて ServiceMeshControlPlane ファイルをカスタマイズすることができます。

Web コンソールを使用するか、または oc クライアントツールを使用してコマンドラインからサービスメッシュコントロールプレーンをデプロイすることができます。

3.2.2.5.1. Web コンソールを使用したコントロールプレーンのデプロイ

以下の手順に従って、Web コンソールを使用して Red Hat OpenShift Service Mesh コントロールプレーンをデプロイします。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされていること。
  • Red Hat OpenShift Service Mesh のインストールのカスタマイズ方法についての手順を確認します。
  • cluster-admin ロールを持つアカウント。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. istio-system という名前のプロジェクトを作成します。

    1. HomeProjects に移動します。
    2. Create Project をクリックします。
    3. Name フィールドに istio-system を入力します。
    4. Create をクリックします。
  3. OperatorsInstalled Operators に移動します。
  4. 必要な場合は、Project メニューから istio-system を選択します。Operator が新規プロジェクトにコピーされるまでに数分待機する必要がある場合があります。
  5. Red Hat OpenShift Service Mesh Operator をクリックします。Provided APIs の下に、Operator は 2 つのリソースタイプを作成するためのリンクを提供します。

    • ServiceMeshControlPlane リソース
    • ServiceMeshMemberRoll リソース
  6. Istio Service Mesh Control PlaneCreate ServiceMeshControlPlane をクリックします。
  7. Create Service Mesh Control Plane ページで、必要に応じてデフォルト ServiceMeshControlPlane テンプレートの YAML を変更します。

    注記

    コントロールプレーンのカスタマイズについての詳細は、Red Hat OpenShift Service Mesh インストールのカスタマイズについて参照してください。実稼働環境の場合は、デフォルトの Jaeger テンプレートを変更する 必要 があります。

  8. Create をクリックしてコントロールプレーンを作成します。Operator は、設定パラメーターに基づいて Pod、サービス、サービスメッシュコントロールプレーンのコンポーネントを作成します。
  9. Istio Service Mesh Control Plane タブをクリックします。
  10. 新規コントロールプレーンの名前をクリックします。
  11. Resources タブをクリックして、Red Hat OpenShift Service Mesh コントロールプレーンリソース (Operator が作成し、設定したもの) を表示します。
3.2.2.5.2. CLI からのコントロールプレーンのデプロイ

以下の手順に従って、CLI を使用して Red Hat OpenShift Service Mesh コントロールプレーンをデプロイします。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされていること。
  • Red Hat OpenShift Service Mesh のインストールのカスタマイズ方法についての手順を確認します。
  • cluster-admin ロールを持つアカウント。
  • oc として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) にアクセスします。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。

    $ oc login https://{HOSTNAME}:6443
  2. istio-system という名前のプロジェクトを作成します。

    $ oc new-project istio-system
  3. 「Customize the Red Hat OpenShift Service Mesh installation」にある例を使用して、istio-installation.yaml という名前の ServiceMeshControlPlane ファイルを作成します。必要に応じて値をカスタマイズして、ユースケースに合わせて使用することができます。実稼働デプロイメントの場合は、デフォルトの Jaeger テンプレートを変更する 必要 があります。
  4. 以下のコマンドを実行してコントロールプレーンをデプロイします。

    $ oc create -n istio-system -f istio-installation.yaml
  5. 以下のコマンドを実行して、コントロールプレーンのインストールのステータスを確認します。

    $ oc get smcp -n istio-system

    READY 列が true の場合、インストールは正常に終了しています。

    NAME           READY
    basic-install   True
  6. 以下のコマンドを実行して、インストールプロセス時の 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 テンプレートを使用すると、再利用可能な設定を作成することができます。詳しい情報は、「コントロールプレーンのテンプレートの作成」を参照してください。

3.2.2.6. Red Hat OpenShift Service Mesh メンバーロールの作成

ServiceMeshMemberRoll は、コントロールプレーンに属するプロジェクトを一覧表示します。ServiceMeshMemberRoll に一覧表示されているプロジェクトのみがコントロールプレーンの影響を受けます。プロジェクトは、特定のコントロールプレーンのデプロイメント用にメンバーロールに追加するまでサービスメッシュに属しません。

ServiceMeshControlPlane と同じプロジェクトに、 default という名前の ServiceMeshMemberRoll リソースを作成する必要があります。

注記

メンバープロジェクトは、サービスメッシュコントロールプレーンのインストールが成功した場合にのみ更新されます。

3.2.2.6.1. Web コンソールからのメンバーロールの作成

以下の手順に従って、Web コンソールを使用して 1 つ以上のプロジェクトを Service Mesh Member Roll に追加します。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
  • インストールされた ServiceMeshControlPlaneの場所。
  • サービスメッシュに追加する既存プロジェクトの一覧。

手順

  1. メッシュのプロジェクトがない場合や、ゼロから作業を開始する場合は、プロジェクトを作成します。これは istio-system とは異なるものである必要があります。

    1. HomeProjects に移動します。
    2. Name フィールドに名前を入力します。
    3. Create をクリックします。
  2. OpenShift Container Platform Web コンソールにログインします。
  3. OperatorsInstalled Operators に移動します。
  4. Project メニューをクリックし、一覧から ServiceMeshControlPlane がデプロイされているプロジェクト (例: istio-system) を選択します。
  5. Red Hat OpenShift Service Mesh Operator をクリックします。
  6. All Instances タブをクリックします。
  7. Create New をクリックしてから Create Istio Service Mesh Member Roll を選択します。

    注記

    Operator がリソースのコピーを終了するまでに少し時間がかかる場合があります。そのため、Create Istio Service Mesh Member Roll ボタンが表示されるように画面を更新する必要がある場合があります。

  8. Create Service Mesh Member Roll ページで、YAML を変更してプロジェクトをメンバーとして追加します。任意の数のプロジェクトを追加できますが、プロジェクトは単一ServiceMeshMemberRoll リソースしか属することができません。
  9. Create をクリックして、Service Mesh Member Roll を保存します。
3.2.2.6.2. CLI からのメンバーロールの作成

以下の手順に従って、コマンドラインからプロジェクトを ServiceMeshMemberRoll に追加します。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
  • インストールされた ServiceMeshControlPlaneの場所。
  • サービスメッシュに追加するプロジェクトの一覧。
  • oc として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) にアクセスします。

手順

  1. OpenShift Container Platform CLI にログインします。

    $ oc login
  2. istio-system の例では、ServiceMeshMemberRoll リソースを ServiceMeshControlPlane リソースと同じプロジェクトに作成します。リソースの名前は default にする必要があります。

    $ oc create -n istio-system -f 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
  3. デフォルトの YAML を変更して、プロジェクトを membersとして追加します。任意の数のプロジェクトを追加できますが、プロジェクトは単一ServiceMeshMemberRoll リソースしか属することができません。
3.2.2.6.3. Red Hat OpenShift Service Mesh メンバーの作成

ServiceMeshMember リソースは、ServiceMeshMemberRoll にメンバーを直接追加する特権を持たないサービスメッシュユーザーが作成できます。プロジェクト管理者にはプロジェクトで ServiceMeshMember リソースを作成するためのパーミッションが自動的に付与されますが、サービスメッシュ管理者がサービスメッシュへのアクセスを明示的に付与するまで、これらのプロジェクト管理者はこれを ServiceMeshControlPlane にポイントすることはできません。管理者は、以下のようにユーザーに mesh-user ユーザーロールを付与してメッシュにアクセスするパーミッションをユーザーに付与できます。

$ oc policy add-role-to-user -n <control-plane-namespace> --role-namespace <control-plane-namespace> mesh-user <user-name>.

管理者はコントロールプレーンプロジェクトで mesh user ロールバインディングを変更し、アクセスが付与されたユーザーおよびグループを指定できます。ServiceMeshMember は、プロジェクトをそれが参照するコントロールプレーンプロジェト内の ServiceMeshMemberRoll に追加します。

apiVersion: maistra.io/v1
kind: ServiceMeshMember
metadata:
  name: default
spec:
  controlPlaneRef:
    namespace: control-plane-namespace
    name: minimal-install

mesh-users ロールバインディングは、管理者が ServiceMeshControlPlane リソースを作成した後に自動的に作成されます。管理者は以下のコマンドを使用してロールをユーザーに追加できます。

$ oc policy add-role-to-user

管理者は、ServiceMeshControlPlane リソースを作成する前に、mesh-user ロールバインディングを作成することもできます。たとえば、管理者は ServiceMeshControlPlane リソースと同じ oc apply 操作でこれを作成できます。

この例では、alice のロールバインディングを追加します。

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: control-plane-namespace
  name: mesh-users
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: mesh-user
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: alice

3.2.2.7. サービスメッシュからのプロジェクトの追加または削除

以下の手順に従って、Web コンソールを使用して既存の Service Mesh ServiceMeshMemberRoll リソースを変更します。

  • 任意の数のプロジェクトを追加できますが、プロジェクトは単一ServiceMeshMemberRoll リソースしか属することができません。
  • ServiceMeshMemberRoll リソースは、対応する ServiceMeshControlPlane リソースが削除されると削除されます。
3.2.2.7.1. Web コンソールからのメンバーロールの変更

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
  • 既存の ServiceMeshMemberRoll リソース。
  • ServiceMeshMemberRoll リソースを持つプロジェクトの名前。
  • メッシュに/から追加または削除するプロジェクトの名前。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. OperatorsInstalled Operators に移動します。
  3. Project メニューをクリックし、一覧から ServiceMeshControlPlane がデプロイされているプロジェクト (例: istio-system) を選択します。
  4. Red Hat OpenShift Service Mesh Operator をクリックします。
  5. Istio Service Mesh Member Roll タブをクリックします。
  6. default リンクをクリックします。
  7. YAML タブをクリックします。
  8. YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは単一ServiceMeshMemberRoll リソースしか属することができません。
  9. Save をクリックします。
  10. Reload をクリックします。
3.2.2.7.2. CLI からのメンバーロールの変更

以下の手順に従って、コマンドラインを使用して既存の Service Mesh Member Roll を変更します。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
  • 既存の ServiceMeshMemberRoll リソース。
  • ServiceMeshMemberRoll リソースを持つプロジェクトの名前。
  • メッシュに/から追加または削除するプロジェクトの名前。
  • oc として知られる OpenShift Container Platform コマンドラインインターフェース (CLI) にアクセスします。

手順

  1. OpenShift Container Platform CLI にログインします。
  2. ServiceMeshMemberRoll リソースを編集します。

    $ oc edit smmr -n <controlplane-namespace>
  3. YAML を変更して、プロジェクトをメンバーとして追加または削除します。任意の数のプロジェクトを追加できますが、プロジェクトは単一ServiceMeshMemberRoll リソースしか属することができません。

    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

3.2.2.8. Red Hat OpenShift Service Mesh メンバーロールの削除

ServiceMeshMemberRoll リソースは、関連付けられた ServiceMeshControlPlane リソースを削除する際に自動的に削除されます。

3.2.3. アプリケーション Pod の更新

Operator をインストールする際に Automatic Approval Strategy を選択した場合には、Operator はコントロールプレーンを自動的に更新しますが、アプリケーションを更新しません。既存のアプリケーションは、引き続きメッシュの一部になり、それに応じて機能します。アプリケーション管理者は、サイドカーコンテナーをアップグレードするためにアプリケーションを再起動する必要があります。

デプロイメントで自動のサイドカーコンテナー挿入を使用する場合、アノテーションを追加または変更してデプロイメントの Pod テンプレートを更新することができます。以下のコマンドを実行して Pod を再デプロイします。

$ oc patch deployment/<deployment> -p '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt": "'`date -Iseconds`'"}}}}}'

デプロイメントで自動のサイドカーコンテナー挿入を使用しない場合、デプロイメントまたは Pod で指定されたサイドカーコンテナーイメージを変更してサイドカーコンテナーを手動で更新する必要があります。

3.2.4. 次のステップ


このページには機械翻訳が使用されている場合があります (詳細はこちら)。