istioctl を使用したインストール
このガイドに従って、Istioメッシュをインストールおよび設定し、詳細な評価または本番環境で使用してください。Istioを初めて使用し、試用するだけの場合には、代わりにクイックスタート手順に従ってください。
このインストールガイドでは、istioctlコマンドラインツールを使用して、IstioコントロールプレーンとIstioデータプレーンのサイドカーを詳細にカスタマイズします。インストールエラーを防ぐためのユーザー入力検証と、設定のあらゆる側面をオーバーライドするためのカスタマイズオプションが用意されています。
これらの手順を使用すると、Istioの組み込み設定プロファイルのいずれかを選択し、特定のニーズに合わせて設定をさらにカスタマイズできます。
istioctl
コマンドは、個々の設定用のコマンドラインオプション、またはIstioOperator
カスタムリソース(CR)を含むYAMLファイルを渡すことによって、完全なIstioOperator
APIをサポートしています。
前提条件
始める前に、次の前提条件を確認してください。
- Istio リリースのダウンロード.
- 必要なプラットフォーム固有の設定を実行します。
- 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