Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SPIFFE Meetup Tokyo #2 LT: Envoy SDS

taiki45
October 02, 2019

SPIFFE Meetup Tokyo #2 LT: Envoy SDS

taiki45

October 02, 2019
Tweet

More Decks by taiki45

Other Decks in Technology

Transcript

  1. Envoy おさらい • LB/service discovery/retry, timeout/logging, metrics/TLS handling とか やってくれるいい感じプロキシー

    • App と同じ pod にデプロイ (side-car model) or app と同じホストにデプロ イして iptables とかで app からの/へのトラフィックを envoy にリダイレ クトする • 上の機能の設定を中央のマネージメントサーバーから配信することで全体に 散らばった envoy を統一的に管理する • このマネージメントサーバーと envoy 間の設定通信プロトコルを「xDS プロ トコル」と呼んでいる 2
  2. 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
  3. Static vs SDS • tls_certificates の情報をどう渡すかの違い • Static: Envoy が動く場所の

    FS に置いておいて file name で指定 • SDS: SDS サーバーに置いておいて inline bytes で配信 ◦ SDS サーバーに置いてある「どの ceritificate を使うか」を決めるのが “tls_certificate_sds_secret_configs.name” をキーにして決める 8