Helmを使用したインストール
このガイドに従って、Helmを使用してIstioメッシュをインストールおよび設定します。
このガイドで使用されているbase
とistiod
のHelmチャートは、Istioctlを使用してIstioをインストールする場合と同じです。ただし、Istioctlによるインストールでは、このガイドで説明されているチャートとは異なるゲートウェイチャートを使用します。前提条件
必要なプラットフォーム固有の設定を実行します。
Podとサービスの要件を確認します。
バージョン3.6以上のHelmクライアントをインストールします。
Helmリポジトリを設定します。
$ helm repo add istio https://istio-release.storage.googleapis.com/charts
$ helm repo update
インストール手順
このセクションでは、Helmを使用してIstioをインストールする手順について説明します。Helmインストールの一般的な構文は次のとおりです。
$ helm install <release> <chart> --namespace <namespace> --create-namespace [--set <other_parameters>]
コマンドで指定された変数は次のとおりです。
<chart>
パッケージ化されたチャートへのパス、展開されていないチャートディレクトリへのパス、またはURL。<release>
インストール後にHelmチャートを識別および管理するための名前。<namespace>
チャートをインストールする名前空間。
デフォルトの構成値は、1つ以上の--set <parameter>=<value>
引数を使用して変更できます。または、--values <file>
引数を使用して、カスタム値ファイルに複数のパラメータを指定できます。
Istioコンポーネント用の名前空間
istio-system
を作成します。$ kubectl create namespace istio-system
Istioコントロールプレーンの展開前にインストールする必要がある、クラスタ全体のCustom Resource Definitions(CRD)を含むIstioベースチャートをインストールします。
$ helm install istio-base istio/base -n istio-system --set defaultRevision=default
helm ls
コマンドでCRDインストールを検証します。$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.0 1.24.0
出力で
istio-base
のエントリを探し、ステータスがdeployed
に設定されていることを確認します。Istio CNIチャートを使用する場合は、ここで実行する必要があります。詳細については、CNIプラグインを使用してIstioをインストールするを参照してください。
istiod
サービスを展開するIstioディスカバリチャートをインストールします。$ helm install istiod istio/istiod -n istio-system --wait
Istioディスカバリチャートのインストールを検証します。
$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.0 1.24.0 istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.24.0 1.24.0
インストールされたHelmチャートのステータスを取得して、展開されていることを確認します。
$ helm status istiod -n istio-system NAME: istiod LAST DEPLOYED: Fri Jan 20 22:00:44 2023 NAMESPACE: istio-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: "istiod" successfully installed! To learn more about the release, try: $ helm status istiod $ helm get all istiod Next steps: * Deploy a Gateway: https://istio.dokyumento.jp/latest/docs/setup/additional-setup/gateway/ * Try out our tasks to get started on common configurations: * https://istio.dokyumento.jp/latest/docs/tasks/traffic-management * https://istio.dokyumento.jp/latest/docs/tasks/security/ * https://istio.dokyumento.jp/latest/docs/tasks/policy-enforcement/ * https://istio.dokyumento.jp/latest/docs/tasks/policy-enforcement/ * Review the list of actively supported releases, CVE publications and our hardening guide: * https://istio.dokyumento.jp/latest/docs/releases/supported-releases/ * https://istio.dokyumento.jp/latest/news/security/ * https://istio.dokyumento.jp/latest/docs/ops/best-practices/security/ For further documentation see https://istio.dokyumento.jp website Tell us how your install/upgrade experience went at https://forms.gle/99uiMML96AmsXY5d6
istiod
サービスが正常にインストールされ、そのPodが実行されていることを確認します。$ kubectl get deployments -n istio-system --output wide NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR istiod 1/1 1 1 10m discovery docker.io/istio/pilot:1.24.0 istio=pilot
(オプション) イングレスゲートウェイをインストールします。
$ kubectl create namespace istio-ingress $ helm install istio-ingress istio/gateway -n istio-ingress --wait
ゲートウェイのインストールの詳細については、ゲートウェイのインストールを参照してください。
Istio設定の更新
上記で使用されているIstio Helmチャートに固有のオーバーライド設定を提供し、Helmアップグレードワークフローに従ってIstioメッシュインストールをカスタマイズできます。利用可能な構成オプションは、helm show values istio/<chart>
(例:helm show values istio/gateway
)を使用して確認できます。
Helm以外によるインストールからの移行
istioctl
(Istio 1.5以前)を使用してインストールされたIstioのバージョンからHelmに移行する場合は、現在のIstioコントロールプレーンリソースを削除し、上記のようにHelmを使用してIstioを再インストールする必要があります。現在のIstioインストールを削除する際に、Istioカスタムリソース定義(CRD)を削除しないでください。カスタムIstioリソースが失われる可能性があります。
Istioctlアンインストールガイドに記載されている手順に従うことができます。
アンインストール
上記でインストールされたチャートをアンインストールすることで、Istioとそのコンポーネントをアンインストールできます。
istio-system
名前空間にインストールされているすべてのIstioチャートをリストします。$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.0 1.24.0 istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.24.0 1.24.0
(オプション) Istioゲートウェイチャートのインストールを削除します。
$ helm delete istio-ingress -n istio-ingress $ kubectl delete namespace istio-ingress
Istioディスカバリチャートを削除します。
$ helm delete istiod -n istio-system
Istioベースチャートを削除します。
$ helm delete istio-base -n istio-system
istio-system
名前空間を削除します。$ kubectl delete namespace istio-system
安定版リビジョンラベルリソースのアンインストール
更新を完了する代わりに、古いコントロールプレーンを引き続き使用する場合、最初にhelm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags={prod-canary} --set revision=canary -n istio-system | kubectl delete -f -
を実行して、新しいリビジョンとそのタグをアンインストールできます。その後、上記の方法でアンインストール手順に従って、それが指していたIstioのリビジョンをアンインストールする必要があります。
このリビジョン用にインプレースアップグレードを使用してゲートウェイをインストールした場合は、以前のリビジョン用のゲートウェイを手動で再インストールする必要があります。以前のリビジョンとそのタグを削除しても、以前にアップグレードされたゲートウェイは自動的に元に戻りません。
(オプション)IstioによってインストールされたCRDの削除
CRDを削除すると、クラスタ内に作成したIstioリソースが完全に削除されます。クラスタにインストールされたIstio CRDを削除するには
$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete