0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kindで作成したKubernetesクラスタにIstioをインストールしてみる

0
Last updated at Posted at 2026-09-01

はじめに

Istioの勉強の一環で、kindで作成したKubernetesクラスタにIstioをインストールしてみます。

Istioとは

Istioは、既存の分散アプリケーションに透過的に組み込めるオープンソースのサービスメッシュです。
アプリケーションコードにほとんど変更を加えることなく、サービスの「保護 (セキュリティ)」「接続 (トラフィック制御)」「監視 (可観測性)」を統一的かつ効率的に実現します。

Istioが提供する主な機能は以下です。

  • セキュアなサービス間通信
    • 相互TLS (mTLS) 暗号化による通信の保護
    • 協力なIDベースの認証および認可
  • トラフィック管理と自動負荷分散
    • HTTP, gRPC, WebSOcket, TCPトラフィックの自動分散
    • 高度なルーティングルール、リトライ、フェイルオーバー、フォールとインジェクション (障害注入) などの詳細なトラフィック制御
  • ポリシー制御
    • アクセス制御、レートリミット、クォータなどをサポート
  • 可観測性 (オブザーバビリティ)の自動化
    • クラスタ内およびIngress / Egressの全トラフィックに関するメトリクス、アクセスログ、分散トレーシングの自動収集

環境情報

Component Version
PC M1 MacBook Pro
OS macOS 26.6.2
Rancher Desktop 1.24.0
kind 0.33.0
Kubernetes v1.37.0
Istio 1.30.4
Helm v4.2.3

手順

kindでKubernetesクラスタを作成する

kindコマンドでsandboxというKubernetesクラスタを立ち上げます。

kind-sandbox.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: sandbox
nodes:
- role: control-plane
- role: worker

上記のyamlファイルを元にKubernetesクラスタを作成します。

kind create cluster --config kind-sandbox.yaml

istioctlでインストール

istioctlというコマンドをインストールします。

curl -L https://istio.io/downloadIstio | sh -
cd istio-1.30.4
export PATH=$PWD/bin:$PATH

istioctl version を実行して、�正しくバージョンが表示されればOKです。

istioctl version

istioctlコマンド経由で、sandboxクラスタにIstioをインストールする

istioctl install --set profile=demo

以下のコマンドでIstio関連のPod、istiod, istio-{ingress,egress}gatewayが立ち上がっていることが確認できればOKです。

k -n istio-system get po

demoは検証用などに使う構成で構築できるプロファイルです。
https://istio.io/latest/docs/setup/additional-setup/config-profiles/

Helmでインストール

istioctlでインストールしたIstioを破棄して、新しくKubernetesクラスタを作成します。

kind delete clusters sandbox
kind create cluster --config kind-sandbox.yaml

今度はHelm経由でIstioをインストールします。
まずはHelmリポジトリを登録します。

helm repo add istio https://blob.istio.io/istio-release/charts
helm repo update

Helm経由で、Istioをインストールします。
コンポーネントごとにインストールしていきます。

helm install istio-base istio/base \
  -n istio-system \
  --create-namespace \
  --set profile=demo \
  --wait
helm install istiod istio/istiod \
  -n istio-system \
  --set profile=demo \
  --set meshConfig.accessLogFile=/dev/stdout \
  --set meshConfig.defaultConfig.tracing.sampling=100.0 \
  --wait
helm install istio-ingressgateway istio/gateway \
  -n istio-system \
  --set profile=demo \
  --wait
helm install istio-egressgateway istio/gateway \
  -n istio-system \
  --set name=istio-egressgateway \
  --set profile=demo \
  --set service.type=ClusterIP \
  --wait

以下のコマンドで、Istio関連のコンポーネントが表示されればOKです。

helm list -n istio-system
k -n istio-system get po

IstioOperatorでインストール (非推奨)

Istio has deprecated its In-Cluster Operatorの記事にあるように、2024年時点でIstioOperatorは非推奨になっています。
運用の複雑化、特権を持ち続けるリスク、エコシステムに合わせて標準化する流れがあるからのようです。
そういった背景から、本記事ではIstioOperatorでのインストール手順は示しません。

最後に

主にistioctlコマンドとHelm経由でのIstioのインストール方法を紹介しました。

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?