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

このガイドに従って、Helmを使用してIstioメッシュをインストールおよび設定します。

このガイドで使用されているbaseistiodのHelmチャートは、Istioctlを使用してIstioをインストールする場合と同じです。ただし、Istioctlによるインストールでは、このガイドで説明されているチャートとは異なるゲートウェイチャートを使用します。

前提条件

  1. 必要なプラットフォーム固有の設定を実行します。

  2. Podとサービスの要件を確認します。

  3. バージョン3.6以上のHelmクライアントをインストールします。

  4. 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>引数を使用して、カスタム値ファイルに複数のパラメータを指定できます。

  1. Istioコンポーネント用の名前空間istio-systemを作成します。

    $ kubectl create namespace istio-system
    
  2. Istioコントロールプレーンの展開前にインストールする必要がある、クラスタ全体のCustom Resource Definitions(CRD)を含むIstioベースチャートをインストールします。

    $ helm install istio-base istio/base -n istio-system --set defaultRevision=default
    
  3. 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に設定されていることを確認します。

  4. Istio CNIチャートを使用する場合は、ここで実行する必要があります。詳細については、CNIプラグインを使用してIstioをインストールするを参照してください。

  5. istiodサービスを展開するIstioディスカバリチャートをインストールします。

    $ helm install istiod istio/istiod -n istio-system --wait
    
  6. 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
    
  7. インストールされた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
    
  8. 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
    
  9. (オプション) イングレスゲートウェイをインストールします。

    $ 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とそのコンポーネントをアンインストールできます。

  1. 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
    
  2. (オプション) Istioゲートウェイチャートのインストールを削除します。

    $ helm delete istio-ingress -n istio-ingress
    $ kubectl delete namespace istio-ingress
    
  3. Istioディスカバリチャートを削除します。

    $ helm delete istiod -n istio-system
    
  4. Istioベースチャートを削除します。

    $ helm delete istio-base -n istio-system
    
  5. 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
この情報は役に立ちましたか?
改善のための提案はありますか?

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