機械翻訳について

このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。

第2章 サービス・メッシュの設定

この項では、サービス・メッシュを設定するためにIstioモジュールをインストールする方法と、そのときにデプロイするコンポーネントについて説明します。

次に、サービス・メッシュの設定についての要約を示します。

  • Oracle Cloud Native Environment: モジュールをデプロイする環境を設定します。

  • Kubernetesモジュール: サービス・メッシュは既存のKubernetesクラスタにインストールすることも、インストールと同時にクラスタをデプロイすることもできます。

  • Helmモジュール: Helmは、Kubernetesパッケージの管理ツールです。Kubernetesクラスタにアプリケーションとリソースをインストールするために使用します。 Helmは、Kubernetesリソースのインストール、アップグレード、問合せおよび削除のためにKubernetes APIサーバーと相互作用します。

  • Istioモジュール: Istioモジュールは、Istioイングレスおよびエグレス・ゲートウェイ、Prometheusおよびクラスタ視覚化ツールGrafanaなど、サービス・メッシュをデプロイするために必要なコンテナをデプロイします。 PrometheusおよびGrafanaは、サポート・モジュールとして自動的にインストールされます。個別にインストールする必要はありません。

サービス・メッシュの作成に必要なすべての情報は、いくつかの方法で入力できます。 この章の各例では、次の方法を示しますが、別の組合せも使用できます。

実際には、モジュールのデプロイに使用する方法は、目的の環境や優先事項によって異なります。また、既存のKubernetesクラスタにデプロイするか、サービス・メッシュのデプロイとKubernetesクラスタの作成を同時に実行するか、それとは別の方法で段階的に実行するかによっても異なります。 サービス・メッシュのデプロイメントの実行には、多種多様な方法を使用できます。これは、どのモジュールのデプロイメントについても当てはまることです。

ノート

Istioモジュールは、PrometheusモジュールとGrafanaモジュールの2つの他のモジュールをインストールします。 これらの2つのモジュールは、PrometheusおよびGrafanaをそれぞれインストールして、Kubernetesクラスタのモニタリングおよび可視化を有効にします。 Istioモジュールをインストールしてサービス・メッシュを作成するときは、これらのモジュールの情報を指定する必要はありません。

2.1 サービス・メッシュのデプロイ(簡易方式)

単一のolcnectl module createコマンドを使用して、サービス・メッシュとKubernetesクラスタの作成に必要なすべてのモジュールをデプロイできます。 この方法は、Kubernetesクラスタのデプロイと同時にサービス・メッシュをデプロイする場合に役立つことがあります。

既存のKubernetesモジュールのデプロイメントがある場合、そのインスタンスは、サービス・メッシュのデプロイ時に指定できます。

図2.1「デプロイメントの例」に、この例でデプロイされるモジュールを示します。 この例の各モジュール名は、枠線内に示されています。 例では、myenvironmentという名前のOracle Cloud Native Environmentを作成し、その中にmyclusterという名前のKubernetesモジュールをデプロイし、次にmyhelmという名前のHelmモジュールをデプロイし、最後にmyistioという名前のIstioモジュールを作成します。


モジュールの作成時に使用可能なオプションの完全なリストは、プラットフォーム・コマンドライン・インタフェースolcnectl module createコマンドを参照してください。

サービス・メッシュをデプロイするには:
  1. 環境をまだ設定していない場合は、モジュールをデプロイできる環境を作成します。 環境の設定方法の詳細は、スタート・ガイドを参照してください。 この例の環境名は、myenvironmentです。

  2. Kubernetesモジュールを設定またはデプロイしていない場合は、そのモジュールを設定します。 環境へのKubernetesモジュールの追加の詳細は、コンテナ・オーケストレーションを参照してください。 この例のKubernetesモジュール名は、myclusterです。

  3. olcnectl module createコマンドを使用して、環境内のKubernetesモジュールに必要なモジュールを追加することでサービス・メッシュを作成します。 この例では、myclusterというKubernetesモジュールを使用します。そのモジュールに、myhelmというHelmモジュールをデプロイして、最後に、myistioというIstioモジュールを作成します。

    olcnectl module create \
    --environment-name myenvironment \
    --module istio \
    --name myistio \
    --helm-kubernetes-module mycluster \
    --istio-helm-module myhelm

    --moduleオプションでは、作成するモジュールのタイプ(istio)を設定します。 Istioモジュールの名前(この例ではmyistio)は、--nameオプションを使用して定義します。

    IstioモジュールにはKubernetesとHelmが必要になるため、それらのモジュールについてのオプションも指定する必要があります。

    --helm-kubernetes-moduleオプションでは、使用するKubernetesモジュールの名前を設定します。 Kubernetesモジュールは、設定またはデプロイされている必要があります。 デプロイされている既存のKubernetesモジュールがある場合は、このオプションを使用してモジュールの名前を指定できます。 指定した名前のKubernetesモジュールがデプロイされていない場合は、サービス・メッシュと同時にKubernetesをデプロイできる新しいモジュールがデプロイされます。

    --istio-helm-moduleオプションでは、デプロイするHelmモジュールの名前を設定します。

    モジュールの追加時に必要なオプションが一部でも含まれていないと、そのオプションを指定するように求められます。

  4. 新しいKubernetesモジュールをデプロイする場合は、olcnectl module validateコマンドを使用して、そのモジュールをノードにデプロイできるかどうかを検証します。 このステップは、ノードにデプロイされている既存のKubernetesモジュールがある場合は実行する必要がありません。 たとえば:

    olcnectl module validate \
    --environment-name myenvironment \
    --name mycluster
  5. 新しいKubernetesモジュールをデプロイする場合は、olcnectl module installコマンドを使用して、ノードにモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name mycluster 
  6. olcnectl module validateコマンドを使用して、Helmモジュールがノードにデプロイできることを検証します。 たとえば:

    olcnectl module validate \
    --environment-name myenvironment \
    --name myhelm
  7. olcnectl module installコマンドを使用して、Helmモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name myhelm 

    Helmソフトウェア・パッケージはコントロール・プレーン・ノードにインストールされ、HelmモジュールはKubernetesクラスタにデプロイされます。

  8. olcnectl module validateコマンドを使用して、Istioモジュールがノードにデプロイできることを検証します。 たとえば:

    olcnectl module validate \
    --environment-name myenvironment \
    --name myistio
  9. olcnectl module installコマンドを使用して、Istioモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name myistio

    Istioソフトウェア・パッケージはコントロール・プレーン・ノードにインストールされ、IstioモジュールはKubernetesクラスタにデプロイされます。

2.2 サービス・メッシュのデプロイ(詳細方式)

サービス・メッシュの作成に必要な各モジュールは、個別にKubernetesクラスタにデプロイできます。 この方式ではステップ数が増えますが、各モジュールの作成方法とクラスタへのデプロイ方法を明示的にコントロールできるようになります。 この例では、myclusterというKubernetesモジュールがmyenvironmentという環境にすでにデプロイされていることを前提としています。

サービス・メッシュをデプロイするには:
  1. olcnectl module createコマンドを使用して、Helmモジュールを作成して、そのモジュールをKubernetesモジュールに追加します。 たとえば、myhelmというHelmモジュールを作成して、そのモジュールをmyclusterというKubernetesモジュールに追加するには、次のようにします。

    olcnectl module create \
    --environment-name myenvironment \
    --module helm \
    --name myhelm \
    --helm-kubernetes-module mycluster

    --moduleオプションでは、作成するモジュールのタイプ(helm)を設定します。 Helmモジュールの名前(この例ではmyhelm)は、--nameオプションを使用して定義します。

    --helm-kubernetes-moduleオプションでは、Helmのインストール先にするKubernetesモジュールの名前を設定します。

  2. olcnectl module validateコマンドを使用して、Helmモジュールがノードにデプロイできることを検証します。 たとえば、myenvironmentという環境内のmyhelmというHelmモジュールを検証するには、次のようにします。

    olcnectl module validate \
    --environment-name myenvironment \
    --name myhelm
  3. olcnectl module installコマンドを使用して、Helmモジュールをデプロイします。 たとえば、myenvironmentという環境にmyhelmというHelmモジュールをデプロイするには、次のようにします。

    olcnectl module install \
    --environment-name myenvironment \
    --name myhelm
  4. olcnectl module createコマンドを使用して、Istioモジュールをインストールし、そのモジュールをHelmモジュールに関連付けます。 たとえば、myistioというIstioモジュールを作成して、そのモジュールをmyhelmというHelmモジュールに関連付けるには、次のようにします。

    olcnectl module create \
    --environment-name myenvironment \
    --module istio \
    --name myistio \
    --istio-helm-module myhelm

    --moduleオプションでは、作成するモジュールのタイプ(istio)を設定します。 Istioモジュールの名前(この例ではmyistio)は、--nameオプションを使用して定義します。

    --istio-helm-moduleオプションでは、Istioモジュールのデプロイに使用するHelmモジュールの名前を設定します。 この例では、これはデプロイ済のmyhelmというHelmモジュールです。

  5. olcnectl module validateコマンドを使用して、Istioモジュールがノードにデプロイできることを検証します。 たとえば、myenvironmentという環境内のmyistioというIstioモジュールを検証するには、次のようにします。

    olcnectl module validate \
    --environment-name myenvironment \
    --name myistio
  6. olcnectl module installコマンドを使用して、Istioモジュールをデプロイします。 たとえば、myenvironmentという環境にmyistioというIstioモジュールをデプロイするには、次のようにします。

    olcnectl module install \
    --environment-name myenvironment \
    --name myistio

    Istioソフトウェア・パッケージはコントロール・プレーン・ノードにインストールされ、IstioモジュールはKubernetesクラスタにデプロイされます。

2.3 サービス・メッシュのデプロイ(対話方式)

サービス・メッシュの作成に必要な各モジュールは、Kubernetesクラスタに対話方式でデプロイすることもできます。この場合、必須の値ごとに入力が求められます。 他のデプロイメント・メソッドと同様に、最初に、サービス・メッシュ・モジュールをデプロイできるOracle Cloud Native Environmentを設定する必要があります。

この例では、サービス・メッシュに必要なモジュールを作成する際に、olcnectl module createコマンドを対話的に使用したときの出力を示します。 この例では、この章の別の例と同じモジュール名を使用して、既存のKubernetesクラスタにデプロイします。

サービス・メッシュをデプロイするには:
  1. olcnectl module createコマンドを使用して、Istioモジュールを作成し、すべての必須の値について入力が求められるようにするには、次のようにします。

    olcnectl module create
    ? Please enter a value for environment-name: myenvironment ? Enter the module name: istio ? Enter the name of the instance of the istio module myistio ? Please select an option for istio-helm-module: New Entry ? Please enter a value for istio-helm-module: myhelm ? Please select an option for helm-kubernetes-module: mycluster Modules created successfully. Modules created successfully.
  2. olcnectl module validateコマンドを使用して、Helmモジュールがノードにデプロイできることを検証します。 たとえば、myenvironmentという環境内のmyhelmというHelmモジュールを検証するには、次のようにします。

    olcnectl module validate \
    --environment-name myenvironment \
    --name myhelm
  3. olcnectl module installコマンドを使用して、Helmモジュールをデプロイします。 たとえば、myenvironmentという環境にmyhelmというHelmモジュールをデプロイするには、次のようにします。

    olcnectl module install \
    --environment-name myenvironment \
    --name myhelm 
  4. olcnectl module validateコマンドを使用して、Istioモジュールがノードにデプロイできることを検証します。 たとえば、myenvironmentという環境内のmyistioというIstioモジュールを検証するには、次のようにします。

    olcnectl module validate \
    --environment-name myenvironment \
    --name myistio
  5. olcnectl module installコマンドを使用して、Istioモジュールをデプロイします。 たとえば、myenvironmentという環境にmyistioというIstioモジュールをデプロイするには、次のようにします。

    olcnectl module install \
    --environment-name myenvironment \
    --name myistio

2.4 Istioモジュールのデプロイメントの検証

Istioモジュールがデプロイされていることと、必要なコンテナがistio-systemネームスペースで実行されていることを確認できます。 コンテナがデプロイされていることを確認するには、kubectlコマンドを使用する必要があります。 kubectlコマンドの設定方法の詳細は、コンテナ・オーケストレーションを参照してください。

必要なコンテナが実行中であることを確認するには、制御計画ノードで、istio-systemネームスペースで実行されているコンテナをリストします。 次に示すような結果が表示されます。

kubectl get deployment -n istio-system
NAME READY UP-TO-DATE AVAILABLE AGE grafana 2/2 2 2 2m44s istio-egressgateway 2/2 2 2 2m48s istio-ingressgateway 2/2 2 2 2m48s istiod 2/2 2 2 3m2s prometheus-server 2/2 2 2 2m44s

Istioモジュールとそのプロパティに関する情報を確認することもできます。

オペレータ・ノードで、olcnectl module reportコマンドを使用してモジュールに関する情報を確認します。 たとえば、次のコマンドを使用して、myenvironmentmyistioという名前のIstioモジュールを確認します:

olcnectl module report \
--environment-name myenvironment \
--name myistio \
--children

olcnectl module reportコマンドの構文の詳細は、プラットフォーム・コマンドライン・インタフェースを参照してください。

2.5 サービス・メッシュの削除

Kubernetesクラスタは残したままにして、サービス・メッシュのデプロイメントを削除できます。 そうするには、環境からIstioモジュールを削除します。

olcnectl module uninstallコマンドを使用して、Istioモジュールを削除します。 たとえば、myenvironmentという環境内のmyistioというIstioモジュールを削除するには、次のようにします。

olcnectl module uninstall \
--environment-name myenvironment \
--name myistio

IstioモジュールとそのサポートするPrometheusおよびGrafanaモジュールは、環境から削除されます。

Istio、PrometheusおよびGrafanaモジュールがolcnectl module instancesコマンドを使用して削除されていることを確認できます。 これらの3つのモジュールは、環境内のモジュールとしてリストされなくなりました。

また、コントロール・プレーン・ノードでkubectlコマンドを使用してIstioコンポーネントが削除されたことを確認し、istio-systemネームスペースで実行されているすべてのデプロイメントを問い合せることができます。 戻されるデプロイメントが存在しないことを確認します。

kubectl get deployment -n istio-system
No resources found in istio-system namespace.