GCPUG Tokyo Istio 1.5 Day Anthos Service Mesh

Fcf5cede3650e2d63b1ecf9931125a86?s=47 jukuwa
March 12, 2020

GCPUG Tokyo Istio 1.5 Day Anthos Service Mesh

2020/03/12 に開催された GCPUG Tokyo Istio 1.5 Day の 「Anthos Service Mesh」というタイトルで発表したプレゼンテーション資料(一部修正済み.)

Fcf5cede3650e2d63b1ecf9931125a86?s=128

jukuwa

March 12, 2020
Tweet

Transcript

  1. GCPUG Tokyo Istio 1.5 Day Anthos Service Mesh Junya Kuwayama

  2. アジェンダ. 2  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  3. 本発表の趣旨 3  NTT Communications / NTT 国際通信では、現時点では、Anthos Service Mesh および、Istio

    の商用での利用はございません。 あくまで初心者の一人として、一緒に公式ドキュメントからわかることを読み解 いていければとは思います。 また、現時点では Istio のバージョンは 1.5 ではございません。 最後に、日々プロダクトは進化しているように見えます。本資料が最新版である 保証はございませんので、基本的には最新情報を常に取得するようお願いいたし ます。
  4. アジェンダ. 4  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  5. Anthos の全体像 5  Technical Overview から抜粋. Anthos のコンポーネントの紹介があります。 緑枠: Anthos

    プロダクト 赤枠: Anthos Service Mesh 黄枠: 関連コンポーネント
  6. 改めて... Istio の全体像 6  Istio は、大きく以下に分かれます。 • データプレーン • コントロールプレーン

    このうち、GCP / Anthos では何がどう提供されるの でしょうか?
  7. GCP の Istio に関するサービスの一覧 7  GCP 全体で見ると Istio に関連しそうなサービスが多く見うけられます。  わかりにくい(と私は感じた)ので、以下に列挙してみます。

    ASM Certificate Authority ASM (Distribution) ASM Dashboard Traffic Director Istio on GKE Cloud Run for Anthos Anthos Service Mesh
  8. Traffic Director ASM の中での "managed components" 8 Anthos Service Mesh

    has a suite of additional features and tools that help you observe and manage secure, reliable services in a unified way. と、Managed components に記載があり、いくつかの Istio でも提供される機能 が、ASM のプロダクトとして提供されることが示唆されています。 ASM Dashboard Mesh CA Cloud Monitoring ASM Distibution コントロール プレーン データ プレーン 現時点では提供なし
  9. Pod Side car proxy Traffic Director 9  Traffic Director は、Pilot

    相当のトラフィックコントロール機能を提供し、 現時点では、Istio 互換のAPIは提供されておらず、GCP のAPI のみをサポートし ています。 Traffic Director GCP APIs VM grpc/ 443 Side car proxy xDS API 互換な sidecar proxy trafficdirector.googleapis.com Data Plane Control Plane LoadBalancer etc. Configuration via Cloud SDK etc.
  10. Istio on GKE vs Anthos Service Mesh 10  Istio on

    GCP と Anthos Service Mesh の概要を下記にまとめます。 ポイント Istio on GKE Anthos Service Mesh ライセンス. Anthos ライセンスは不要. Anthos ライセンスが必要 マネージド. インストール以外 は提供されない. インストールは自身で行うが、 マネージドで提供. インストール. クラスター作成時に指定可能. istioctl manifest apply で導入可能 -> anthoscli ワークロード. Worker Node に存在 Worker Node に存在 + 一部コントロールプレーンが Managed Components として提供 メトリクス. すでに定義あり. 現時点で定義なし.
  11. 補足: Istio on GKE のインストール方法 11  Istio on GKE は現時点で、GKE

    のクラスタ作成の1つのオプションとして統合 されています。※一方で、ASMのインストールは統合されていないので注意が必 要です。
  12. ここまでのまとめ. 12  ここまで、見てきてわかるように、GCP で サービスメッシュを利用するには、 1. 分類としては、 a. マネージドサービス &

    ターンキーソリューション( Istio on GCP ) i. マネージドサービスの中で、 1. Managed Components として API 経由などで提供される -> Mesh CA, Service Mesh Dashboard Traffic Director は ASM とは現時点で中間なプロダクト[1] 2. Istio の インターフェースをいい感じに提供 してくれる ASM -> Anthos Service Mesh Distributionとして、Istio のメイン機 能を GKE / Anthos GKE 上のリソースとして提供. [1] 一部 ASM 側の情報として見えるので、恐らく今後 ASM の一部になる可能性   が高いと言って良いはずです。
  13. アジェンダ. 13  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  14. インストール方法. 14  インストール方法は、ここ数週間で変化が進んでいます. On-Prem: clusterrolebindings を作成 -> ファイルをダウンロード & 展開

    -> istio-system namespace を作成 -> Citadel 向けの root 証明書を作成 -> istioctl apply でファ イルを指定して作成. ASM on GKE with istioctl: 上記と同じ. ASM on GKE with anthoscli: kpt install & config -> anthoscli apply でインストール.
  15. インストール要件. 15  インストール要件は以下の通りです. • 少なくとも 4 つのノード • n1-standard-4 より大きな

    machine-type (4 vCPU 以上) • バージョンは: GKE: 1.13.11-gke.14+ 1.14.8-gke.18+ 1.15.4-gke.15+ GKE on-prem: GKE on-prem version 1.2.0-gke.6 and later, which is included in Anthos 1.2.
  16. 補足: インストール時のキャプチャ. 16  インストールに要した時間は、約 13 分でした. $ anthoscli apply -f

    asm I0307 23:46:37.971228 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService stackdriver I0307 23:46:41.056439 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService compute I0307 23:46:42.902143 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService gke I0307 23:46:44.542699 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService iamcredentials I0307 23:46:46.267551 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService meshca I0307 23:46:48.001720 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService meshtelemetry I0307 23:46:50.033436 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService meshconfig I0307 23:46:51.778324 610 main.go:155] reconcile cnrm.cloud.google.com/CloudService anthos I0307 23:46:53.421859 610 main.go:155] reconcile container.cnrm.cloud.google.com/ContainerCluster asm-test-cluster W0307 23:46:54.964328 610 cluster.go:506] cluster master version is not set for cluster projects/digicom-low-1045-23567090/locations/us-central1-c/clusters/asm-test-cluster I0307 23:46:54.964394 610 cluster.go:531] UpdateCluster { projects/digicom-low-1045-23567090/locations/us-central1-c/clusters/asm-test-cluster 0xc000c22120 [] []} I0307 23:46:54.964903 610 operation.go:48] running operation: ====== snip ======
  17. ASMでの component in GKE 17  ASM のインストールが完了すると以下のような service / pod

    が作成されます。 $ k get -n istio-system pods NAME READY STATUS RESTARTS AGE istio-galley-7cbb96dccf-5xghv 2/2 Running 0 10m istio-ingressgateway-54bc8455d-qfnzv 2/2 Running 0 10m istio-nodeagent-6f5k9 1/1 Running 0 10m istio-nodeagent-6pvwp 1/1 Running 0 10m istio-nodeagent-bvzwh 1/1 Running 0 10m istio-pilot-7787678df8-t8jbs 2/2 Running 0 10m istio-sidecar-injector-54987cbc5-6vt9w 0/1 ContainerCreating 0 10m promsd-54c7f896fc-d8t6d 2/2 Running 1 10m DaemonSet として 各ノードに配置 $ istioctl version client version: 1.5.0 galley version: 1.4.6-asm.0 ingressgateway version: 1.4.6-asm.0 nodeagent version: nodeagent version: nodeagent version: nodeagent version: nodeagent version: pilot version: 1.4.6-asm.0 data plane version: 1.4.6-asm.0 (1 proxies) prometheus カスタマイズされている 可能性が高く version は見えない
  18. 参考: Anthos GKE(On-Prem) の構成. 18  見てきたように、現時点で、 Cloud 側で動作する Managed Components

    と 連携できるアーキテクチャが採用されていないようです。 $ kubectl get -n istio-system po NAME READY STATUS RESTARTS AGE istio-citadel-6f78467b84-dj5g8 1/1 Running 0 9d istio-galley-65748bdd96-xwltp 2/2 Running 0 9d istio-ingressgateway-c7fb67fbb-s97ml 2/2 Running 0 9d istio-pilot-5dc7bc579b-n9m27 2/2 Running 0 9d istio-sidecar-injector-84948b45cb-6ksd8 1/1 Running 0 9d promsd-645776cfbf-6rz7h 2/2 Running 1 9d $ kubectl get svc -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-citadel ClusterIP 172.16.65.106 <none> 8060/TCP,15014/TCP 36d istio-galley ClusterIP 172.16.66.4 <none> 443/TCP,15014/TCP.. 36d istio-ingressgateway LoadBalancer 172.16.67.53 192.168.30.60 15020:31422/TCP.. 36d istio-pilot ClusterIP 172.16.67.149 <none> 15010/TCP.. 36d istio-sidecar-injector ClusterIP 172.16.65.182 <none> 443/TCP 36d promsd ClusterIP 172.16.65.115 <none> 9090/TCP 36d Istio の コンポーネント prometheus ingress gateway は、LoadBalancer からアクセス可能 Citadel が存在!
  19. usernamespace usernamespace 参考: Architecture: Ingress & ASM 19 Namespace: istio-system

    Deployment Service F5 Big-IP(Load Balancer) ingress gateway pilot citadel Galley sidecar injector promsd Namespace: gke-system Deployment Service ingress gateway pilot ingress Type: LB VIP VIP ingress Type: LB Client App App App Service App Service  Anthos GKE では、デフォルトの Ingress Controller とは独立して、ASM の Istio 各コンポーネントが存在するようになります。(Namespace も別) 設定する リソースとしては、Ingress or Gateway + Virtual Service になります。
  20. ASMでの component 20  ASM のインストールが完了すると以下のような service / pod が作成されます。 表にまとめると以下のようになります。

    Name Access Type Port istio-citadel ClusterIP 8060/TCP,15014/TCP istio-galley ClusterIP 443/TCP,15014/TCP,9901/TCP, 15019/TCP istio-ingressgateway LoadBalancer 15020:31422/TCP, 80:31441/TCP,443:32106/TCP, 15029:30753/TCP, 15030:32676/TCP, 15031:31599/TCP, 15032:31939/TCP, 15443:30310/TCP istio-pilot ClusterIP 15010/TCP,15011/TCP, 8080/TCP, 15014/TCP istio-sidecar-injector ClusterIP 443/TCP promsd ClusterIP 9090/TCP
  21. 補足. Promsd とは?? 21  Istio on GKE のリリースを参考にすると、内部通信のメトリクスの収集のため に、 promsd

    という名前で混同を防ぐ目的で利用されているようです。 ( Prometheus + Stackdriver ?? と思われるが真相は不明. ) (筆者拙訳.) Istio on GKE の 内部の prometheus (内部のメトリクス用途)は、混乱を 避けるため、promsd に改名されます。
  22. 参考: 利用可能なリソース一覧 22  利用可能な Istio のリソース一覧は以下の通りになっています。 $ kubectl api-resources |

    grep istio NAME    APIGROUP NAMESPACED KIND ← この行は筆者挿入. meshpolicies authentication.istio.io false MeshPolicy policies authentication.istio.io true Policy adapters config.istio.io true adapter attributemanifests config.istio.io true attributemanifest handlers config.istio.io true handler httpapispecbindings config.istio.io true HTTPAPISpecBinding httpapispecs config.istio.io true HTTPAPISpec instances config.istio.io true instance quotaspecbindings config.istio.io true QuotaSpecBinding quotaspecs config.istio.io true QuotaSpec rules config.istio.io true rule templates config.istio.io true template destinationrules networking.istio.io true DestinationRule envoyfilters networking.istio.io true EnvoyFilter gateways networking.istio.io true Gateway serviceentries networking.istio.io true ServiceEntry sidecars networking.istio.io true Sidecar virtualservices networking.istio.io true VirtualService clusterrbacconfigs rbac.istio.io false ClusterRbacConfig rbacconfigs rbac.istio.io true RbacConfig servicerolebindings rbac.istio.io true ServiceRoleBinding serviceroles rbac.istio.io true ServiceRole authorizationpolicies security.istio.io true AuthorizationPolicy
  23. アジェンダ. 23  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  24. Supported Feature 24  Anthos Servie Mesh の オフィシャルドキュメント のサポート対象の機能から 丁寧に機能を読み取っていきます.

  25. Traffic Routing: Supported 25  Networking として紹介されています。 • Traffic interception/redirection mechanism

    ◦ Default+Supported: traditional use of iptables via init containers with CAP_NET_ADMIN • Protocol support: ◦ Supported: IPv4 ◦ Supported: HTTP/1.1 ◦ Supported: HTTP/2 ◦ Supported: TCP byte streams ◦ Supported: gRPC • Envoy deployments: ◦ Default+Supported: Sidecars ◦ Default+Supported: Ingress gateway ◦ Default+Supported: Egress directly out from sidecars ◦ Optional+Supported: Egress via egress gateways • CRD support: ◦ Supported: the sidecar resource ◦ Supported: the service entry resource ◦ Supported: percentage, fault injection, path matching, redirects, retries, rewriting, timeout, retry, mirroring, header manipulation, and CORS routing rules. • Load balancing policies: ◦ Supported: round robin, least connections, random, and passthrough only.
  26. Traffic Routing: Supported 26  Networking として紹介されています。 • Traffic interception/redirection mechanism

    ◦ Default+Supported: traditional use of iptables via init containers with CAP_NET_ADMIN • Protocol support: ◦ Supported: IPv4 ◦ Supported: HTTP/1.1 ◦ Supported: HTTP/2 ◦ Supported: TCP byte streams ◦ Supported: gRPC • Envoy deployments: ◦ Default+Supported: Sidecars ◦ Default+Supported: Ingress gateway ◦ Default+Supported: Egress directly out from sidecars ◦ Optional+Supported: Egress via egress gateways • CRD support: ◦ Supported: the sidecar resource ◦ Supported: the service entry resource ◦ Supported: percentage, fault injection, path matching, redirects, retries, rewriting, timeout, retry, mirroring, header manipulation, and CORS routing rules. • Load balancing policies: ◦ Supported: round robin, least connections, random, and passthrough only. プロトコルサポートについて Destination Rule でのロードバランシングポリシーについて Envoy Proxy について Mesh への設定項目について
  27. Traffic Routing: Not Supported 27  Networking として紹介されています。 • Traffic interception/redirection

    mechanism ◦ Not Supported: Istio CNI ◦ Not Supported: whitebox sidecar • Protocol support: ◦ Not Supported: IPv6 ◦ Not Supported: L7 support for other protocols like WebSocket, MongoDB, Redis, Kafka, though you may be able to make them work using TCP byte stream support. If TCP byte stream cannot support the protocol (for example, Kafka sends a redirect address in a protocol-specific reply and this redirect is incompatible with Istio's routing logic) then we do not support the protocol. • CRD support: ◦ Not Supported: custom Envoy filters. • Load balancing policies: ◦ Not Supported: consistent hash and locality weighted load balancing.
  28. Traffic Routing: Not Supported 28  Networking として紹介されています。 • Traffic interception/redirection

    mechanism ◦ Not Supported: Istio CNI ◦ Not Supported: whitebox sidecar • Protocol support: ◦ Not Supported: IPv6 ◦ Not Supported: L7 support for other protocols like WebSocket, MongoDB, Redis, Kafka, though you may be able to make them work using TCP byte stream support. If TCP byte stream cannot support the protocol (for example, Kafka sends a redirect address in a protocol-specific reply and this redirect is incompatible with Istio's routing logic) then we do not support the protocol. • CRD support: ◦ Not Supported: custom Envoy filters. • Load balancing policies: ◦ Not Supported: consistent hash and locality weighted load balancing. CNI について サポートするプロトコルについて custom Envoy Filter はサポートしない旨 Destination Rule でのロードバランシングポリシーについて
  29. Pod Traffic Management のコンポーネントの動き 29  通常の Istio の構成と同じく、データプレーンとして、Ingress Gateway が存

    在するのに加えて、 sidecar injector による pod への sidecar の injection が 行なわれます。(namespace の labels:istio-injection: enabled を指定 or 手動) Istio Ingress Gateway istio-proxy Service Type: LoadBalancer Service Service istio-sidecar-injector Pod istio-proxy
  30. アジェンダ. 30  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  31. Security: Supported 31  Security として紹介されています。 • Certificate distribution/rotation mechanisms: ◦

    Default+Supported: For GKE, certificate provisioning via Envoy SDS; for GKE-on-prem, certificate provisioning via secret volume mount. • Certificate Authority (CA) support: ◦ Default+Supported: Anthos Service Mesh certificate authority (Mesh CA) ◦ Optional+Supported: The ability to add additional root CA certs to the CA bundle • Authentication Policy: ◦ Supported: mesh-level and namespace-level policy. ◦ Transport Security: ▪ Default+Supported: PERMISSIVE mTLS mode is enabled at mesh-level by default ▪ Optional+Supported: mTLS STRICT mode. ◦ Request Authentication (JWT) ▪ Default+Supported: Policy with JWT must have origin_is_optional set to true and principal_binding to USE_ORIGIN • Authorization Policy: ◦ Default+Supported: Authorization v1beta1 policy
  32. Security: Supported 32  Security として紹介されています。 • Certificate distribution/rotation mechanisms: ◦

    Default+Supported: For GKE, certificate provisioning via Envoy SDS; for GKE-on-prem, certificate provisioning via secret volume mount. • Certificate Authority (CA) support: ◦ Default+Supported: Anthos Service Mesh certificate authority (Mesh CA) ◦ Optional+Supported: The ability to add additional root CA certs to the CA bundle • Authentication Policy: ◦ Supported: mesh-level and namespace-level policy. ◦ Transport Security: ▪ Default+Supported: PERMISSIVE mTLS mode is enabled at mesh-level by default ▪ Optional+Supported: mTLS STRICT mode. ◦ Request Authentication (JWT) ▪ Default+Supported: Policy with JWT must have origin_is_optional set to true and principal_binding to USE_ORIGIN • Authorization Policy: ◦ Default+Supported: Authorization v1beta1 policy 証明書のサポートについて Mesh CA による証明書管理 Meshpolicy or Policy のサポート 認証のサポート(デフォルトはPERMISSIVEモード) Authorization Policy のサポートについて
  33. Security: Not Supported 33  Security として紹介されています。 • Certificate Authority (CA)

    support: ◦ Not Supported: Integration with custom CAs • Authentication Policy: ◦ Not Supported: service level policy. ◦ Transport Security: ▪ Not Supported: Auto-mTLS • Authorization Policy: ◦ Not Supported: RBAC v1alpha1 policy. • Not Supported: Istio CNI
  34. kind: Meshpolicy / Policy 34  Mesh 全体へのポリシーの適用を行うことができる Meshpolicy と namespace

    単位で設定が可能な Policy で、双方とも ASM では利用が可能です. 後者が namespaced なリソースになります. apiVersion: "authentication.istio.io/v1alpha1" kind: "MeshPolicy" metadata: name: "default" # namespaced: false spec: # ルールを指定する. peers: - mtls: {} apiVersion: "authentication.istio.io/v1alpha1" kind: "Policy" metadata: name: "default" namespace: "istio-test"<-namespace spec: # ルールを指定する. peers: - mtls: {}
  35. Security のコンポーネントの動き 35  デフォルトでは、Citadel がいなくなっています。代わりに、DaemonSet と して、node_agent_k8s が起動しており、meshca の認証情報を中継する役割を 果たしています。

    DaemonSet: istio-nodeagent /node_agent_k8s DaemonSet: istio-nodeagent /node_agent_k8s meshca.googleapis.com:443 DaemonSet: istio-nodeagent /node_agent_k8s Node Node Node sidecar sidecar sidecar
  36. アジェンダ. 36  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  37. Observability: Supported 37  Telemetry と UI として紹介されています。 Currently, Stackdriver metrics,

    Stackdriver logging, and Stackdriver tracing aren't available on GKE on-prem. Currently, only the Prometheus/Grafana dashboards are available on GKE on-prem. • Metrics: ◦ Default+Supported: HTTP in-proxy metrics to Stackdriver ◦ Optional+Supported: Prometheus as an alternative to Stackdriver • Access Logging: ◦ Default+Supported: Stackdriver Logging ◦ Optional+Supported: Direct Envoy to stdout • Tracing: ◦ Optional+Supported: Stackdriver tracing ◦ Optional+Supported: Jaeger tracing ◦ • UI ◦ Optional+Supported: Anthos Service Mesh observability features in the Cloud Console with Telemetry V2 ◦ Default+Supported: StackDriver UI ◦ Optional+Supported: Prometheus/Grafana dashboards
  38. Observability: Not Supported 38  Telemetry と UI として紹介されています。   •

    Telemetry: ◦ Not Supported: Telemetry V2 using WebAssembly Sandbox. ◦ Not Supported: Custom adapters/backends, in or out of process. ◦ Not Supported: Arbitrary Telemetry and Logging backends. ◦ Not Supported: Telemetry V1 for any metrics. ◦ Not Supported: Telemetry Lite for any metrics. • Tracing: ◦ Not Supported: Zipkin tracing • UI ◦ Not Supported: Kiali
  39. Sidecar の起動オプションを見てみる. 39  インジェクトされる sidecar の 起動を見ると、pilot agent と envoy

    proxy の起動が見れます。 /usr/local/bin/pilot-agent proxy sidecar --domain gcpug-istio-day.svc.cluster.local --configPath /etc/istio/proxy --binaryPath /usr/local/bin/envoy --serviceCluster hello-app-v1.gcpug-istio-day --drainDuration 45s --parentShutdownDuration 1m0s --discoveryAddress istio-pilot.istio-system:15011 --zipkinAddress zipkin.istio-system:9411 --proxyLogLevel=warning --proxyComponentLogLevel=misc:error --connectTimeout 10s --proxyAdmin Port 15000 --concurrency 2 --controlPlaneAuthPolicy MUTUAL_TLS --dnsRefreshRate 300s --statusPort 15020 --applicationPorts 8080 --stsPort=15463 --trust-domain=digico m-low-1045-23567090.svc.id.goog zipkin アドレスの指定 Admin Port を15000で聞いている ので PortForward で /usr/local/bin/envoy -c /etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --par ent-shutdown-time-s 60 --service-cluster hello-app-v1.gcpug-istio-day --service-node sidecar~192.168.6.20~deploy-test-app-v1-8689754 7df-bns97.gcpug-istio-day~gcpug-i stio-day.svc.cluster.local --max-obj-name-len 189 --local-address-ip-version v4 --log-format [Envoy (Epoch 0)] [%Y-%m-%d %T.%e][%t][%l][%n] %v -l warning --component -log-level misc:error --concurrency 2
  40. HTTP in-proxy metrics とは? 40  Istio のメトリクスを Mixer を経由せず収集する機構で、Istio 1.4

    では Alpha 機能扱いです。Port:15000 でポートフォワードするとアドミンUIから設定情報 などを確認できます。 { "address": { "socket_address": { "address": "0.0.0.0", "port_value": 15090 } }, "filter_chains": [ { "filters": [ { "name": "envoy.http_connection_manager", "config": { "route_config": { "virtual_hosts": [ { "routes": [ { "match": { "prefix": "/stats/prometheus" }, "route": { "cluster": "prometheus_stats" } } ], "domains": [ "*" ], "name": "backend".....__ snip ___ サイドカーコンテナ上で、 /stats/prometheus port 15090 で Listen
  41. Google Cloud Monitoring (旧: Stackdriver) 41  Google Cloud Monitoring (旧:

    Stackdriver Monitoring) のメトリクスリスト では、現在 ASM 経由での Istio のメトリクスは存在しないように見えているの で、今後のアップデートに期待. (現状は、Istio on GKE のものみ.)
  42. クラスター Promsd を少し見てみる. 42  Promsd の pod を少し見てみると、2 Containers が動いているのがわかりま

    す。stackdriver-prometheus-sidecar と prometheus が動いています。 手元の環境では、pilot のみをスクレイピングの対象としているように見えます。 sidecar (stackdriver-prometheus-sidecar) promsd stackdriver.googleapis.com インターネット 現状はpilot のみ 各リソース
  43. アジェンダ. 43  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール

    / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.
  44. まとめ 44  本日お話した中身を少しだけまとめます。 • Anthos Service Mesh の位置付けを理解することは重要 ◦ Istio

    on GKE とは別物で、コンセプトも異なる模様. ◦ Managed Components の情報を適宜追いながら、クラウド側の構成を見て、マネージドの 範囲を見極めることが重要. • Anthos Service Mesh はまだまだ進化中 ◦ インストール方法含めてまだまだ動いているので、今後のアップデートによるアップグレー ド方法などプラクティスの積み重ねが重要. ◦ トラフィック / セキュリティ管理機能は既に使えるので、検証はこちらからがオススメ. • Anthos GKE (GKE On-Prem) ではサポートされていない機能が多い. ◦ Managed Components 結合ができるまでは参考程度で情報を見ておいた方がいいかも.
  45. ASMでのコンポーネントを改めて. 45  通常の Istio 運用で手間となる部分を Managed Components として提供しつ つ、kubernetes から

    Istio 互換の API と Managed Components を繋ぐ役割をお こなう Contorol Plane とデータ通信が Data Plane で稼働しています。 Anthos Service Mesh Distribution Managed Components Istio Data Plane Istio Control Plane Ingress Gateway Sidecar Proxy Galley Node Agent Pilot Promsd Sidecar injector ASM Dashboard Mesh CA Cloud Monitoring
  46. 参考: 進化の早さ. 46  ここ 2-3 週間でインストール方法に追加が2回発生し、 その他の機能も整理が進捗しています。 ※ Next 前の恒例行事ですが...

    今後の最低限の機能アップデート + 追加機能の提供を待ちましょう! 左: 約2週間前のドキュメント 右: 2日前のドキュメント
  47. さいごに. 47 ご清聴ありがとうございました!