Slide 1

Slide 1 text

GCPUG Tokyo Istio 1.5 Day Anthos Service Mesh Junya Kuwayama

Slide 2

Slide 2 text

アジェンダ. 2  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 3

Slide 3 text

本発表の趣旨 3  NTT Communications / NTT 国際通信では、現時点では、Anthos Service Mesh および、Istio の商用での利用はございません。 あくまで初心者の一人として、一緒に公式ドキュメントからわかることを読み解 いていければとは思います。 また、現時点では Istio のバージョンは 1.5 ではございません。 最後に、日々プロダクトは進化しているように見えます。本資料が最新版である 保証はございませんので、基本的には最新情報を常に取得するようお願いいたし ます。

Slide 4

Slide 4 text

アジェンダ. 4  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 5

Slide 5 text

Anthos の全体像 5  Technical Overview から抜粋. Anthos のコンポーネントの紹介があります。 緑枠: Anthos プロダクト 赤枠: Anthos Service Mesh 黄枠: 関連コンポーネント

Slide 6

Slide 6 text

改めて... Istio の全体像 6  Istio は、大きく以下に分かれます。 ● データプレーン ● コントロールプレーン このうち、GCP / Anthos では何がどう提供されるの でしょうか?

Slide 7

Slide 7 text

GCP の Istio に関するサービスの一覧 7  GCP 全体で見ると Istio に関連しそうなサービスが多く見うけられます。  わかりにくい(と私は感じた)ので、以下に列挙してみます。 ASM Certificate Authority ASM (Distribution) ASM Dashboard Traffic Director Istio on GKE Cloud Run for Anthos Anthos Service Mesh

Slide 8

Slide 8 text

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 コントロール プレーン データ プレーン 現時点では提供なし

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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 として提供 メトリクス. すでに定義あり. 現時点で定義なし.

Slide 11

Slide 11 text

補足: Istio on GKE のインストール方法 11  Istio on GKE は現時点で、GKE のクラスタ作成の1つのオプションとして統合 されています。※一方で、ASMのインストールは統合されていないので注意が必 要です。

Slide 12

Slide 12 text

ここまでのまとめ. 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 の一部になる可能性   が高いと言って良いはずです。

Slide 13

Slide 13 text

アジェンダ. 13  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 14

Slide 14 text

インストール方法. 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 でインストール.

Slide 15

Slide 15 text

インストール要件. 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.

Slide 16

Slide 16 text

補足: インストール時のキャプチャ. 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 ======

Slide 17

Slide 17 text

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 は見えない

Slide 18

Slide 18 text

参考: 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 8060/TCP,15014/TCP 36d istio-galley ClusterIP 172.16.66.4 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 15010/TCP.. 36d istio-sidecar-injector ClusterIP 172.16.65.182 443/TCP 36d promsd ClusterIP 172.16.65.115 9090/TCP 36d Istio の コンポーネント prometheus ingress gateway は、LoadBalancer からアクセス可能 Citadel が存在!

Slide 19

Slide 19 text

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 になります。

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

補足. Promsd とは?? 21  Istio on GKE のリリースを参考にすると、内部通信のメトリクスの収集のため に、 promsd という名前で混同を防ぐ目的で利用されているようです。 ( Prometheus + Stackdriver ?? と思われるが真相は不明. ) (筆者拙訳.) Istio on GKE の 内部の prometheus (内部のメトリクス用途)は、混乱を 避けるため、promsd に改名されます。

Slide 22

Slide 22 text

参考: 利用可能なリソース一覧 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

Slide 23

Slide 23 text

アジェンダ. 23  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 24

Slide 24 text

Supported Feature 24  Anthos Servie Mesh の オフィシャルドキュメント のサポート対象の機能から 丁寧に機能を読み取っていきます.

Slide 25

Slide 25 text

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.

Slide 26

Slide 26 text

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 への設定項目について

Slide 27

Slide 27 text

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.

Slide 28

Slide 28 text

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 でのロードバランシングポリシーについて

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

アジェンダ. 30  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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 のサポートについて

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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: {}

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

アジェンダ. 36  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Google Cloud Monitoring (旧: Stackdriver) 41  Google Cloud Monitoring (旧: Stackdriver Monitoring) のメトリクスリスト では、現在 ASM 経由での Istio のメトリクスは存在しないように見えているの で、今後のアップデートに期待. (現状は、Istio on GKE のものみ.)

Slide 42

Slide 42 text

クラスター Promsd を少し見てみる. 42  Promsd の pod を少し見てみると、2 Containers が動いているのがわかりま す。stackdriver-prometheus-sidecar と prometheus が動いています。 手元の環境では、pilot のみをスクレイピングの対象としているように見えます。 sidecar (stackdriver-prometheus-sidecar) promsd stackdriver.googleapis.com インターネット 現状はpilot のみ 各リソース

Slide 43

Slide 43 text

アジェンダ. 43  今日お話するアジェンダは以下の通りです。 1. 全体的なお話. a. サービス全体像. b. ASM のインストール / 構成. 2. 使える機能 / 使えない機能のお話. a. Traffic Management b. Security c. Policy d. Observability 3. まとめ.

Slide 44

Slide 44 text

まとめ 44  本日お話した中身を少しだけまとめます。 ● Anthos Service Mesh の位置付けを理解することは重要 ○ Istio on GKE とは別物で、コンセプトも異なる模様. ○ Managed Components の情報を適宜追いながら、クラウド側の構成を見て、マネージドの 範囲を見極めることが重要. ● Anthos Service Mesh はまだまだ進化中 ○ インストール方法含めてまだまだ動いているので、今後のアップデートによるアップグレー ド方法などプラクティスの積み重ねが重要. ○ トラフィック / セキュリティ管理機能は既に使えるので、検証はこちらからがオススメ. ● Anthos GKE (GKE On-Prem) ではサポートされていない機能が多い. ○ Managed Components 結合ができるまでは参考程度で情報を見ておいた方がいいかも.

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

参考: 進化の早さ. 46  ここ 2-3 週間でインストール方法に追加が2回発生し、 その他の機能も整理が進捗しています。 ※ Next 前の恒例行事ですが... 今後の最低限の機能アップデート + 追加機能の提供を待ちましょう! 左: 約2週間前のドキュメント 右: 2日前のドキュメント

Slide 47

Slide 47 text

さいごに. 47 ご清聴ありがとうございました!