Slide 1

Slide 1 text

Taiki Ono SPIFFE Meetup Tokyo #2 Envoy SDS

Slide 2

Slide 2 text

Envoy おさらい ● LB/service discovery/retry, timeout/logging, metrics/TLS handling とか やってくれるいい感じプロキシー ● App と同じ pod にデプロイ (side-car model) or app と同じホストにデプロ イして iptables とかで app からの/へのトラフィックを envoy にリダイレ クトする ● 上の機能の設定を中央のマネージメントサーバーから配信することで全体に 散らばった envoy を統一的に管理する ● このマネージメントサーバーと envoy 間の設定通信プロトコルを「xDS プロ トコル」と呼んでいる 2

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Envoy Architecture 5

Slide 6

Slide 6 text

Envoy と TLS config ● Per-cluster: outgoing requests ○ tls_context: auth.UpstreamTlsContext ■ Common_tls_context: auth.CommonTlsContext ● Per-listener-filter-chain: incoming requests ○ tls_context: auth.DownstreamTlsContext ■ Common_tls_context: auth.CommonTlsContext ■ Require_client_certificate: Bool ● auth.CommonTlsContext ○ tls_certificates or tls_certificate_sds_secret_config ○ validation_context or validation_context_sds_secret_config ■ 証明書を検証する時の設定 (e.g. trusted_ca) 6

Slide 7

Slide 7 text

tls_ceritificates ● Body: private_key, certificate_chain, password ● データの指定: filename, inline_bytes, inline_string 7

Slide 8

Slide 8 text

Static vs SDS ● tls_certificates の情報をどう渡すかの違い ● Static: Envoy が動く場所の FS に置いておいて file name で指定 ● SDS: SDS サーバーに置いておいて inline bytes で配信 ○ SDS サーバーに置いてある「どの ceritificate を使うか」を決めるのが “tls_certificate_sds_secret_configs.name” をキーにして決める 8

Slide 9

Slide 9 text

Envoy Architecture 9 SDS server Certificates Trusted CA

Slide 10

Slide 10 text

Go tetrate.io/about-us/careers/ !