istio中文手册
  • 前言
    • 序言
  • 概念原理
    • 什么是服务网格?
    • 后 Kubernetes 时代的应用网络
    • 服务网格架构
      • 服务网格的实现模式
      • Istio 架构解析
    • Sidecar 模式
      • Istio 中的 Sidecar 注入与流量劫持详解
      • Sidecar 的自动注入过程详解
    • 流量管理
      • 流量管理基础概念
      • Istio 中的 Sidecar 的流量路由详解
    • 安全
      • mTLS
  • 数据平面
    • Envoy 中的基本术语
    • Istio sidecar proxy 配置
    • Envoy proxy 配置详解
    • Envoy API
    • xDS 协议解析
      • LDS(监听器发现服务)
      • RDS(路由发现服务)
      • CDS(集群发现服务)
      • EDS(端点发现服务)
      • SDS(秘钥发现服务)
      • ADS(聚合发现服务)
      • HDS(健康发现服务)
    • Envoy 高级 API
      • MS(Metric 服务)
      • RLS(速率限制服务)
  • 安装指南
    • 快速开始
    • Istio 安装
    • 可观察性工具 kiali
  • 配置
    • 流量管理
      • VirtualService
      • DestinationRule
      • Gateway
      • EnvoyFilter
      • Sidecar
      • ServiceEntry
      • WorkloadEntry
      • WorkloadGroup
    • 安全
      • AuthorizationPolicy
      • RequestAuthentication
      • PeerAuthentication
      • JWTRule
  • Istio 生态
    • Istio 生态概述
    • Slime——基于 Istio 的智能服务网格管理器
  • 开发指南
    • Istio 开发环境配置
  • 实践案例
    • Bookinfo 示例
由 GitBook 提供支持
在本页
  • SDS Server
  • SDS 配置
  • 参考

这有帮助吗?

  1. 数据平面
  2. xDS 协议解析

SDS(秘钥发现服务)

上一页EDS(端点发现服务)下一页ADS(聚合发现服务)

最后更新于3年前

这有帮助吗?

SDS(秘钥发现服务)是 Envoy 1.8.0 版本起开始引入的服务。可以在 bootstrap.static_resource 的 配置中为 Envoy 指定 TLS 证书()。也可以通过秘钥发现服务(SDS)远程获取。Istio 预计将在 1.1 版本中支持 SDS。

SDS 带来的最大的好处就是简化证书管理。要是没有该功能的话,我们就必须使用 Kubernetes 中的 创建证书,然后把证书挂载到代理容器中。如果证书过期,还需要更新 secret 和需要重新部署代理容器。使用 SDS,中央 SDS 服务器将证书推送到所有 Envoy 实例上。如果证书过期,服务器只需将新证书推送到 Envoy 实例,Envoy 可以立即使用新证书而无需重新部署。

如果 listener server 需要从远程获取证书,则 listener server 不会被标记为 active 状态,在获取证书之前不会打开其端口。如果 Envoy 由于连接失败或错误的响应数据而无法获取证书,则 listener server 将被标记为 active,并且打开端口,但是将重置与端口的连接。

上游集群的处理方式类似,如果需要通过 SDS 从远程获取集群客户端证书,则不会将其标记为 active 状态,在获得证书之前也它不会被使用。如果 Envoy 由于连接失败或错误的响应数据而无法获取证书,则集群将被标记为 active,可以处理请求,但路由到该集群的请求都将被拒绝。

使用 SDS 的静态集群需定义 SDS 集群(除非使用不需要集群的 Google gRPC),则必须在使用静态集群之前定义 SDS 集群。

Envoy 代理和 SDS 服务器之间的连接必须是安全的。可以在同一主机上运行 SDS 服务器,使用 Unix Domain Socket 进行连接。否则,需要代理和 SDS 服务器之间的 mTLS。在这种情况下,必须静态配置 SDS 连接的客户端证书。

SDS Server

SDS server 需要实现 这个 gRPC 服务。遵循与其他 相同的协议。

SDS 配置

SDS 支持静态配置也支持动态配置。

静态配置

可以在static_resources 的 secrets 中配置 TLS 证书。

动态配置

从远程 SDS server 获取 secret。

  • 通过 Unix Domain Socket 访问 gRPC SDS server。

  • 通过 UDS 访问 gRPC SDS server。

  • 通过 Envoy gRPC 访问 SDS server。

参考

配置详情请参考 。

secrets
secret
secret 资源
SecretDiscoveryService
xDS
Envoy 官方文档
Secret discovery service (SDS) - envoyproxy.io