Istioに入門する
IstioとService Mesh
Istioは、開発されたサービスメッシュ・プラットフォームの一つです。
サービスメッシュは、マイクロサービスの間の通信を簡単に管理し、監視し、保証するためのレイヤーです。
Istioは、Envoyプロキシを使用したデータプレーンメシュとして、トラフィックのロードバランシングやポリシーの実装など、複雑な広い機能を提供します。
Envoyプロキシは、高性能なオープンソースのエッジおよびサービスプロキシで、サービス間通信の管理を効率化するために設計されています。HTTPやgRPCを含む多様なプロトコルをサポートし、ロードバランシング、トラフィックルーティング、観測性、セキュリティ機能を提供します。
今回は個人の興味として、istioの機能を検証しています。基本的にローカル環境でMinikube使って単一クラスタ・単一ノードで検証します、今後は必要であればKindを使って多数のノード環境で検証してみます。
Bookinfoを使ったIstioの実装
今回はローカルでクラスタを作ります、Minikubeを使います。ここでは、Minikubeを使用し、Bookinfoアプリを使ってIstioの実装手順を紹介します。
Istioのダウンロードとインストール
- Istioのダウンロード
curl -L https://istio.io/downloadIstio | sh --
- istioctl クライアントをパスに追加する
export PATH=$PWD/bin:$PATHH
- Istioのインストール
istioctl install -f samples/bookinfo/demo-profile-no-gateways.yaml -y
- deafultのnamespaceにIstioのラベルを設定、defaultのnamespaceにアプリケーションをデプロイする際に、Istioのsidecarを自動設定するようになります
kubectl label namespace default istio-injection=enabled
- Bookinfoのデプロイするために、Kubernetes Gatewayを設定します
kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.2.0" | kubectl apply -f -; }
- Bookinfoをデプロイします
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
7. クラスターの外からアクセスできるために、以下の設定を実施します
(1)Bookinfo アプリケーションの Kubernetes Gateway を作成します
kubectl apply -f samples/bookinfo/gateway-api/bookinfo-gateway.yaml
(2)アノテーションを使用してゲートウェイのサービスタイプを ClusterIP に変更します
kubectl annotate gateway bookinfo-gateway networking.istio.io/service-type=ClusterIP --namespace=default
(3)ゲートウェイの状態を確認します
kubectl get gateway
- kubectl port-forwardコマンドによりクラスターの外からBookinfoのページをアクセスします
kubectl port-forward svc/bookinfo-gateway-istio 8080:80
そして、http://localhost:8080/productpage
を確認すればBookinfoのページを見れます
Kialiを使ったサービス構造の視覚化
Kialiは、Istioサービスメッシュを視覚化するためのツールです。Kialiを使うと、サービス構造やトラフィックの状況をグラフで解りやすく表示できます。
Kialiをインストールします
kubectl apply -f samples/addons
kubectl rollout status deployment/kiali -n istio-system
Kialiのダッシュボードをアクセスします
istioctl dashboard kiali
以上です
イオングループで、一緒に働きませんか?
イオングループでは、エンジニアを積極採用中です。少しでもご興味もった方は、キャリア登録やカジュアル面談登録などもしていただけると嬉しいです。
皆さまとお話できるのを楽しみにしています!
Discussion