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. Taiki Ono
    SPIFFE Meetup Tokyo #2
    Envoy SDS

    View Slide

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

    View Slide

  3. View Slide

  4. View Slide

  5. Envoy Architecture
    5

    View Slide

  6. 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

    View Slide

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

    View Slide

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

    View Slide

  9. Envoy Architecture
    9
    SDS server
    Certificates
    Trusted CA

    View Slide

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

    View Slide