Helmによるインストール

本番環境でのアンビエントモードでのIstioインストールには、Helmの使用を推奨します。制御されたアップグレードを可能にするため、コントロールプレーンとデータプレーンコンポーネントは別々にパッケージ化され、インストールされます。(アンビエントデータプレーンは2つのコンポーネント、ztunnelとウェイポイントに分割されているため、アップグレードにはこれらのコンポーネントに対する個別のステップが必要です。)

前提条件

  1. プラットフォーム固有の前提条件を確認してください。

  2. バージョン3.6以上のHelmクライアントをインストールしてください。

  3. Helmリポジトリを設定してください。

    $ helm repo add istio https://istio-release.storage.googleapis.com/charts
    $ helm repo update
    

コントロールプレーンのインストール

デフォルトの構成値は、1つ以上の--set <パラメーター>=<値>引数を使用して変更できます。あるいは、--values <ファイル>引数を使用して、カスタム値ファイルに複数のパラメーターを指定することもできます。

Helmインストールの使用とカスタマイズ方法の詳細については、サイドカーインストールドキュメントを参照してください。

インストールまたは削除するコンポーネントをグループ化するistioctlプロファイルとは異なり、Helmプロファイルは単に構成値のグループを設定します。

基本コンポーネント

baseチャートには、Istioを設定するために必要な基本的なCRDとクラスタロールが含まれています。これは、他のIstioコンポーネントの前にインストールする必要があります。

$ helm install istio-base istio/base -n istio-system --create-namespace --wait

Kubernetes Gateway API CRDのインストールまたはアップグレード

ほとんどのKubernetesクラスタには、Kubernetes Gateway API CRDがデフォルトでインストールされていないため、Gateway APIを使用する前にインストールされていることを確認してください。

$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
  { kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml; }

istiodコントロールプレーン

istiodチャートは、Istiodのリビジョンをインストールします。Istiodは、メッシュ内のトラフィックをルーティングするためにプロキシを管理および構成するコントロールプレーンコンポーネントです。

$ helm install istiod istio/istiod --namespace istio-system --set profile=ambient --wait

CNIノードエージェント

cniチャートは、Istio CNIノードエージェントをインストールします。これは、アンビエントメッシュに属するポッドを検出し、ポッドとztunnelノードプロキシ(後でインストールされます)間のトラフィックリダイレクトを構成する役割を担います。

$ helm install istio-cni istio/cni -n istio-system --set profile=ambient --wait

データプレーンのインストール

ztunnel DaemonSet

ztunnelチャートは、Istioのアンビエントモードのノードプロキシコンポーネントであるztunnel DaemonSetをインストールします。

$ helm install ztunnel istio/ztunnel -n istio-system --wait

イングレスゲートウェイ(オプション)

イングレスゲートウェイをインストールするには、以下のコマンドを実行します。

$ helm install istio-ingress istio/gateway -n istio-ingress --create-namespace --wait

Kubernetesクラスタが適切な外部IPが割り当てられたLoadBalancerサービスタイプ(type: LoadBalancer)をサポートしていない場合、無限の待機を避けるために、--waitパラメーターなしで上記のコマンドを実行してください。ゲートウェイインストールの詳細については、ゲートウェイのインストールを参照してください。

構成

サポートされている構成オプションとドキュメントを表示するには、以下を実行します。

$ helm show values istio/istiod

インストールの検証

ワークロードステータスの検証

すべてのコンポーネントをインストールした後、以下のコマンドでHelmデプロイメントの状態を確認できます。

$ 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-cni       istio-system    1           2024-04-17 22:14:45.964722028 +0000 UTC deployed    cni-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
ztunnel         istio-system    1           2024-04-17 22:14:45.964722028 +0000 UTC deployed    ztunnel-1.24.0  1.24.0

デプロイされたポッドの状態は以下のコマンドで確認できます。

$ kubectl get pods -n istio-system
NAME                             READY   STATUS    RESTARTS   AGE
istio-cni-node-g97z5             1/1     Running   0          10m
istiod-5f4c75464f-gskxf          1/1     Running   0          10m
ztunnel-c2z4s                    1/1     Running   0          10m

サンプルアプリケーションによる検証

Helmを使用してアンビエントモードをインストールした後、サンプルアプリケーションのデプロイガイドに従ってサンプルアプリケーションとイングレスゲートウェイをデプロイし、その後アプリケーションをアンビエントメッシュに追加できます。

アンインストール

上記でインストールしたチャートをアンインストールすることで、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
    istio-cni       istio-system    1           2024-04-17 22:14:45.964722028 +0000 UTC deployed    cni-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
    ztunnel         istio-system    1           2024-04-17 22:14:45.964722028 +0000 UTC deployed    ztunnel-1.24.0  1.24.0
    
  2. (オプション) Istioゲートウェイチャートのインストールをすべて削除します。

    $ helm delete istio-ingress -n istio-ingress
    $ kubectl delete namespace istio-ingress
    
  3. ztunnelチャートを削除します。

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

    $ helm delete istio-cni -n istio-system
    
  5. istiodコントロールプレーンチャートを削除します。

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

    $ helm delete istio-base -n istio-system
    
  7. IstioによってインストールされたCRDを削除します(オプション)

    $ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete
    
  8. istio-system名前空間を削除します。

    $ kubectl delete namespace istio-system
    
この情報は役に立ちましたか?
改善点に関するご提案があればお聞かせください。

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