Istio-based Service Mesh add-on for AKS を試す
ずーっと横目で見つつ放置していた Istio-based Service Mesh add-on for AKS ですが、試してみましたので備忘録です。
試してみる
環境
- Windows 10
- Azure CLI
構築
まずは Istio-based Service Mesh add-on for AKS (以下、本アドオン) のインストールからですね。
今回は、新しく本アドオンが有効なクラスターを作成しました。
基本的にはドキュメントの手順に沿って実施すれば OK。おおまかな流れは下記のとおりです。
- 環境変数の設定
- AKS プレビュー拡張機能のインストール
- AzureServiceMeshPreview 機能フラグの登録
- 本アドオンが有効なクラスターを新規作成する
- サンプルアプリケーションをデプロイする
動作確認
ここから先は、下記のドキュメントを参照していきます。
外部からのアクセス (Ingress Gateway)
手順の中で実行する「az aks mesh」コマンドの詳細は、こちらのドキュメントを参照。
外部からのアクセスのために apply が必要な yaml ファイルは下記の通りです。
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway-external
spec:
selector:
istio: aks-istio-ingressgateway-external
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo-vs-external
spec:
hosts:
- "*"
gateways:
- bookinfo-gateway-external
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
項目の詳細は、それぞれ下記の Istio のドキュメントが参考になります。
kind: Gateway
でゲートウェイを定義し、それを kind: VirtualService
側の gateways:
で指定していますね。 spec.http.match
の exact:
や prefix:
はドキュメントによると、前者は「その文字列への完全一致」というもの、後者は「プレフィックスつまり前方一致」とのことです。他にも regex:
という正規表現が使える指定もできるとのこと。
サンプルアプリケーション (http://<IP>:<PORT>/productpage) にアクセスし、下記のような応答が得られれば OK です。
内部からのアクセス (Internal Ingress Gateway)
こちらも基本的には公式ドキュメントの手順に沿って実施すれば OK でした。内容は大きく変わらないので割愛です。
その他
Istio コンポーネントのアップデートもドキュメント化されています。
ただ、現時点では 1.17 が最新とのこと。なお、自動的にパッチが適用されて Pod を再起動することでバージョンアップが完了する形になります。
まとめ
ということで、Istio Service Mesh add-on on AKS を試してみました。
まだプレビューが外れていないですが、サクッと試せるのは嬉しいですね!
Discussion