istioctl を使用したインストール

このガイドに従って、Istioメッシュをインストールおよび設定し、詳細な評価または本番環境で使用してください。Istioを初めて使用し、試用するだけの場合には、代わりにクイックスタート手順に従ってください。

このインストールガイドでは、istioctlコマンドラインツールを使用して、IstioコントロールプレーンとIstioデータプレーンのサイドカーを詳細にカスタマイズします。インストールエラーを防ぐためのユーザー入力検証と、設定のあらゆる側面をオーバーライドするためのカスタマイズオプションが用意されています。

これらの手順を使用すると、Istioの組み込み設定プロファイルのいずれかを選択し、特定のニーズに合わせて設定をさらにカスタマイズできます。

istioctlコマンドは、個々の設定用のコマンドラインオプション、またはIstioOperator カスタムリソース(CR)を含むYAMLファイルを渡すことによって、完全なIstioOperator APIをサポートしています。

前提条件

始める前に、次の前提条件を確認してください。

  1. Istio リリースのダウンロード.
  2. 必要なプラットフォーム固有の設定を実行します。
  3. Podとサービスの要件を確認してください。

デフォルトプロファイルを使用した Istio のインストール

最も簡単な方法は、次のコマンドを使用してdefault Istio 設定プロファイルをインストールすることです。

$ istioctl install

このコマンドは、Kubernetes設定によって定義されたクラスタにdefaultプロファイルをインストールします。defaultプロファイルは、幅広いIstio機能を評価することを目的としたより大規模なdemoプロファイルとは異なり、本番環境を構築するための良い出発点です。

インストールを変更するために、さまざまな設定を構成できます。たとえば、アクセスログを有効にするには、次のようになります。

$ istioctl install --set meshConfig.accessLogFile=/dev/stdout

外部チャートからのインストール

デフォルトでは、istioctlはコンパイル済みのチャートを使用してインストールマニフェストを生成します。これらのチャートは監査とカスタマイズのためにistioctlと共にリリースされ、リリースのtarファイルのmanifestsディレクトリにあります。istioctlは、コンパイル済みのチャートではなく、外部チャートを使用することもできます。外部チャートを選択するには、manifestsフラグをローカルファイルシステムパスに設定します。

$ istioctl install --manifests=manifests/

istioctl 1.24.0バイナリを使用する場合、このコマンドはistioctl installのみと同じインストール結果になります。これは、コンパイル済みものと同じチャートを指しているためです。新しい機能を試したりテストしたりする場合を除き、istioctlバイナリとチャートの互換性を確保するために、外部チャートではなくコンパイル済みチャートを使用することをお勧めします。

異なるプロファイルのインストール

コマンドラインにプロファイル名を渡すことで、他のIstio設定プロファイルをクラスタにインストールできます。たとえば、次のコマンドを使用してdemoプロファイルをインストールできます。

$ istioctl install --set profile=demo

使用可能なプロファイルのリストの表示

istioctlがアクセスできるIstio設定プロファイルの名前を表示するには、このコマンドを使用します。

$ istioctl profile list
Istio configuration profiles:
    default
    demo
    empty
    minimal
    openshift
    preview
    remote

プロファイルの構成の表示

プロファイルの設定を表示できます。たとえば、demoプロファイルの設定を表示するには、次のコマンドを実行します。

$ istioctl profile dump demo
components:
  egressGateways:
  - enabled: true
    k8s:
      resources:
        requests:
          cpu: 10m
          memory: 40Mi
    name: istio-egressgateway

...

設定全体のサブセットを表示するには、--config-pathフラグを使用できます。これは、指定されたパス下の設定の部分のみを選択します。

$ istioctl profile dump --config-path components.pilot demo
enabled: true
k8s:
  env:
  - name: PILOT_TRACE_SAMPLING
    value: "100"
  resources:
    requests:
      cpu: 10m
      memory: 100Mi

プロファイルの違いの表示

profile diffサブコマンドを使用して、プロファイル間の違いを表示できます。これは、クラスタに変更を適用する前にカスタマイズの効果を確認するのに役立ちます。

次のコマンドを使用して、デフォルトプロファイルとデモプロファイルの違いを表示できます。

$ istioctl profile diff default demo
 gateways:
   egressGateways:
-  - enabled: false
+  - enabled: true
...
     k8s:
        requests:
-          cpu: 100m
-          memory: 128Mi
+          cpu: 10m
+          memory: 40Mi
       strategy:
...

インストール前のマニフェストの生成

manifest generateサブコマンドを使用して、Istioをインストールする前にマニフェストを生成できます。たとえば、次のコマンドを使用してdefaultプロファイルのマニフェストを生成します。

$ istioctl manifest generate > $HOME/generated-manifest.yaml

生成されたマニフェストを使用して、正確に何がインストールされたかを確認し、マニフェストの変更を時間とともに追跡できます。IstioOperator CRは完全なユーザー設定を表し、それを追跡するには十分ですが、manifest generateからの出力は、基礎となるチャートの可能な変更もキャプチャするため、実際にインストールされたリソースを追跡するために使用できます。

manifest generateからの出力を使用して、kubectl applyまたは同等のものを使用してIstioをインストールすることもできます。ただし、これらの代替インストール方法は、istioctl installと同じ依存関係のシーケンスでリソースを適用するとは限らず、Istioリリースではテストされていません。

マニフェストの違いの表示

次のコマンドを使用して、デフォルトプロファイルとカスタマイズされたインストール間のYAMLスタイルの差分での生成されたマニフェストの違いを表示できます。

$ istioctl manifest generate > 1.yaml
$ istioctl manifest generate -f samples/operator/pilot-k8s.yaml > 2.yaml
$ istioctl manifest diff 1.yaml 2.yaml
Differences in manifests are:


Object Deployment:istio-system:istiod has diffs:

spec:
  template:
    spec:
      containers:
        '[#0]':
          resources:
            requests:
              cpu: 500m -> 1000m
              memory: 2048Mi -> 4096Mi


Object HorizontalPodAutoscaler:istio-system:istiod has diffs:

spec:
  maxReplicas: 5 -> 10
  minReplicas: 1 -> 2

インストールの成功を確認する

verify-installコマンドを使用して、Istioのインストールが成功したかどうかを確認できます。これは、クラスタ上のインストールを指定したマニフェストと比較します。

展開前にマニフェストを生成しなかった場合は、次のコマンドを実行して今すぐ生成してください。

$ istioctl manifest generate <your original installation options> > $HOME/generated-manifest.yaml

次に、次のverify-installコマンドを実行して、インストールが成功したかどうかを確認します。

$ istioctl verify-install -f $HOME/generated-manifest.yaml

インストールのカスタマイズに関する追加情報は、インストール設定のカスタマイズを参照してください。

Istio のアンインストール

クラスタからIstioを完全にアンインストールするには、次のコマンドを実行します。

$ istioctl uninstall --purge

または、特定のIstioコントロールプレーンのみを削除するには、次のコマンドを実行します。

$ istioctl uninstall <your original installation options>

または

$ istioctl manifest generate <your original installation options> | kubectl delete --ignore-not-found=true -f -

コントロールプレーン名前空間(例:istio-system)はデフォルトでは削除されません。不要になった場合は、次のコマンドを使用して削除します。

$ kubectl delete namespace istio-system
この情報は役に立ちましたか?
改善のための提案はありますか?

ご意見ありがとうございます!