1.7. 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 をサンプルプロジェクトとして使用しますが、サービスメッシュを任意のプロジェクトにデプロイできます。

1.7.1. 前提条件

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

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

1.7.2. Elasticsearch Operator のインストール

デフォルトの Jaeger デプロイメントはインメモリーストレージを使用します。それは、Jaeger の評価、デモの提供、またはテスト環境での Jaeger の使用を目的としてすぐにインストールできるように設計されているためです。実稼働環境で Jaeger を使用する予定がある場合、永続ストレージのオプション (この場合は Elasticsearch) をインストールする必要があります。

前提条件

  • OpenShift Container Platform Web コンソールへのアクセスが可能です。
  • cluster-admin ロールを持つアカウントが必要です。
警告

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

注記

OpenShift クラスターロギングの一部として Elasticsearch Operator がすでにインストールされている場合、Elasticsearch Operator を再びインストールする必要はありません。Jaeger Operator はインストールされた Elasticsearch Operator を使用して Elasticsearch インスタンスを作成します。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. Operators OperatorHub に移動します。
  3. Elasticsearch とフィルターボックスに入力して、Elasticsearch Operator を検索します。
  4. Red Hat が提供する Elasticsearch Operator をクリックし、Operator についての情報を表示します。
  5. Install をクリックします。
  6. Create Operator Subscription ページで A specific namespace on the cluster オプションを選択し、メニューから openshift-operators-redhat を選択します。
  7. OpenShift Container Platform インストールに一致する Update Channel を選択します。たとえば、OpenShift Container Platform バージョン 4.5 にインストールしている場合は、4.5 更新チャネルを選択します。
  8. Automatic Approval Strategy を選択します。

    注記

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

  9. Subscribe をクリックします。
  10. Installed Operators ページで、openshift-operators-redhat プロジェクトを選択します。Elasticsearch Operator が「InstallSucceeded」のステータスを表示するまで待機してから続行します。

1.7.3. Jaeger Operator のインストール

Jaeger をインストールするには、OperatorHub を使用して Jaeger Operator をインストールします。

デフォルトで、Operator は openshift-operators プロジェクトにインストールされます。

前提条件

  • OpenShift Container Platform Web コンソールへのアクセスが可能です。
  • cluster-admin ロールを持つアカウントが必要です。
  • 永続ストレージが必要な場合、Jaeger Operator をインストールする前に Elasticsearch Operator もインストールする必要があります。
警告

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

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. Operators OperatorHub に移動します。
  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 を選択します。これにより、新しいバージョンがリリースされると Jaeger が自動的に更新されます。1.17-stable などのメンテナンスチャネルを選択すると、そのバージョンのサポートサイクルの期間、バグ修正およびセキュリティーパッチが送信されます。

    • Approval Strategy を選択します。Automatic または Manual の更新を選択できます。インストールされた Operator について自動更新を選択する場合、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator が新規バージョンに更新されるように更新要求を手動で承認する必要があります。

      注記

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

  8. Subscribe をクリックします。
  9. Subscription Overview ページで、openshift-operators プロジェクトを選択します。Jaeger Operator に「InstallSucceeded」のステータスが表示されるまで待機してから続行します。

1.7.4. Kiali Operator のインストール

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

警告

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

前提条件

  • OpenShift Container Platform Web コンソールへのアクセスが可能です。

手順

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

    注記

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

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

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

前提条件

  • OpenShift Container Platform Web コンソールへのアクセスが可能です。
  • Elasticsearch Operator がインストールされている必要があります。
  • Jaeger Operator がインストールされている必要があります。
  • Kiali Operator がインストールされている必要があります。

手順

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

    注記

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

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

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

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

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

1.7.6.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. Home Projects に移動します。
    2. Create Project をクリックします。
    3. Name フィールドに istio-system を入力します。
    4. Create をクリックします。
  3. Operators Installed 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 が作成し、設定したもの) を表示します。

1.7.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) へのアクセスが可能です。

手順

  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 テンプレートを使用すると、再利用可能な設定を作成することができます。詳細は、「コントロールプレーンのテンプレートの作成」を参照してください。

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

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

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

注記

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

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

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

前提条件

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

手順

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

    1. Home Projects に移動します。
    2. Name フィールドに名前を入力します。
    3. Create をクリックします。
  2. OpenShift Container Platform Web コンソールにログインします。
  3. Operators Installed 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 を保存します。

1.7.7.2. CLI からのメンバーロールの作成

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

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされ、検証されていること。
  • インストールされた ServiceMeshControlPlane の場所。
  • サービスメッシュに追加するプロジェクトの一覧。
  • OpenShift CLI (oc) へのアクセスが可能です。

手順

  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 リソースしか属することができません。

1.7.7.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

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

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

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

1.7.8.1. Web コンソールからのメンバーロールの変更

前提条件

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

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Operators Installed 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 をクリックします。

1.7.8.2. CLI からのメンバーロールの変更

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

前提条件

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

手順

  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

1.7.9. 手動更新

手動で更新することを選択する場合、Operator Lifecycle Manager (OLM) は、クラスター内の Operator のインストール、アップグレード、ロールベースのアクセス制御 (RBAC) を制御します。OLM はデフォルトで OpenShift Container Platform で実行されます。OLM は CatalogSource を使用します。これは Operator Registry API を使用して利用可能な Operator やインストールされた Operator のアップグレードについてクエリーします。

  • OpenShift Container Platform のアップグレードの処理方法についての詳細は、Operator Lifecycle Manager のドキュメントを参照してください。

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

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

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

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

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.