名词和概念定义
Sidecar:边车。微服务中数据平面的进程,负责转发应用、服务请求,并支持限流、熔断、负载均衡等特性。
Control-plane: 控制平面。微服务的配置中心,负责配置下发、数据搜集、服务发现等功能。
应用: 应用是指服务的使用方。 注:有些服务可能既有服务使用方又有服务提供方的角色。
服务: 服务是指服务的提供方。
流程
应用将所有服务调用请求发送给本地Sidecar
本地Sidecar和Control-plane通讯发现所有服务、配置并将请求发送给对应的服务或服务端Sidecar
如果服务端部署了Sidecar再将请求发送给服务
其中Sidecar和应用通过虚拟机的环境变量为媒介,保存服务的本地监听端口
边车注销
,k8s-node流程图共有3个流程
Sidecar初始化
在Node启动后需要初始化Sidecar并启动,Sidecar向控制面注册
新增应用Pod
新增应用pod时init-container向pod所在Node的Sidecar注册应用
Node的Sidecar根据应用所依赖的服务生成监听端口并返回给init-container
init-container将服务端口写入环境变量,并写host
应用pod注销
应用pod结束生命周期时向所在Node Sidecar发送注销请求
Sidecar检查是否应用所依赖的所有服务没有其他应用依赖了,如果没有则删除本地监听端口
边车启动
,pod服务方共有2个流程
Pod初始化
Pod初始化时根据端口占用情况生成随机服务端口,并写入pod环境变量
Pod启动
Sidecar容器启动时读取环境变量,监听指定端口,同时注册Sidecar和服务