Istio是由Google、IBM、Lyft联合开发的开源项目,它是一款微服务管理框架,也被称为第二代微服务Service Mesh代表。Istio的架构思想类似软件定义网络,近年来随着技术的不断发展,Istio因其轻量级、服务网格管理理念、兼容各大容器编排平台等优势在近两年脱颖而出。本期智汇华云将为大家详细描述 Istio 中证书签发和管理的整个流程以及涉及到的组件。
一、概述
本文会详细描述 Istio 中证书签发和管理的整个流程以及涉及到的组件,假设读者已经有一些技术储备,对于 Istio 中的基本概念和使用比较熟悉。
上图是 Istio 内部在签发证书时的流程和相关的组件。
- 在Istiod内部有一个名为CA Server服务的组件,用来提供证书签名的服务。
- 上图中Pod A是用户的负载,伴随着Pod A是Istio注入的sidecar,启动的主进程被称为Pilot Agent,它核心的功能是启动Envoy进程来劫持并管理Pod A的进出口流量,除此之外,在Pilot Agent还有一个名为SDS Server的组件,用来生成私钥和证书签名请求文件并向CA Server发起证书签名请求。
- CA Server和SDS Server通信时,需要验证对方的身份,这时双方都需要有一个公共的CA根证书,这个根证书最初由CA Server在启动时创建,并存储于Kubernetes一个名为istio-ca-root-cert的ConfigMap对象中。这个ConfigMap会在注入sidecar时,挂载到sidecar的/var/r