Service Mesh结合容器云平台的思考和实践
台开发和第 二代基于Kubernetes的DevOps云平台开发 来自于浙江大学SEL实验室目录 CONTENTS Kubernetes平台下的微服务演进 Pilot核心功能解读 Pilot-Agent核心流程解读Kubernetes平台下的微服务演进当我们在讨论微服务的时候我们在讨论什么? • 解决如何微服务的问题 • 解决微服务化后带来的问题 温饱问题 • 计算资源的快速分配 • 服务间认证和终端用户认证功能Istio的Pilot功能解析Pilot官方架构Istio – EnvoyPilot-Agent的核心流程解读Pilot工作流程Pilot-Agent的部署形式 pilot-agent在pilot/cmd包下面,是个单独 的二进制。 pilot-agent跟envoy打包在同一个docker镜 像里,镜像由Dockerfile.proxy定义, Makefile(include了tools/istio- sidecar。非Kubernetes情况下需要把 pilot-agent、envoy跟应用部署在一起,这 就有点“污染”应用的意思了。Pilot-Agent的功能介绍 在proxy镜像中,pilot-agent负责的工作包括: • 生成envoy的配置。 • 启动envoy。 • 监控并管理envoy的运行状况,比如envoy出错时pilot-agent负责重启envoy,或者envoy配置变更后0 码力 | 28 页 | 3.09 MB | 5 月前3Envoy原理介绍及线上问题踩坑
Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 6 Envoy原理及总体架构-启动 istiod Pilot-agent Pilot-agent apiServer iptables iptables Envoy client backend 8123 Virtual outbound -15001 Envoy 规则 • istio-proxy容器启动pilot-agent进程,使用UID=1337 GID=1337创建Envoy启动命令行与配置文件 • 可以通过自定义deployment内istio注解sidecar.istio.io/inject: “false”跳过自动注入过程,或修改部分启动参数。 • 2. 控制面通信 • Pilot-agent进程本身创建UDS接收Envoy连接,用于证 书更新下发。并且与istiod建立证书更新通道。 • Envoy 通过pilot-agent转发机制与istiod建立长连接,通过xDS协议接收系统下发的监听器、路由、集群节点等更新信息。 • 3. 数据面通信 • 客户端请求进入容器网络,并被iptables规则拦截,经过DNAT后进入Envoy virtualOutbound监听器 • virtualOutbound经过监听过滤器恢复用0 码力 | 30 页 | 2.67 MB | 1 年前3Istio控制平面组件原理解析
喜欢开源,个人开源项目”Jaeger PHP Client”。 • 喜欢研究源码,对NSQ,Jaeger,Istio(控制平面)等go语言开源项目进行 过研究。 • 除了代码还喜欢爬山和第二天睡醒后全身酸疼的感觉。目录Pilot-Agent——管理生命周期(PA) u启动envoy u热重启envoy u监控envoy u优雅关闭envoy启动envoy ü监听/etc/certs目录 ü生成envoy静态配置文件envoy-rev0 ü生成envoy静态配置文件envoy-rev0.json ü通过exec.Command启动 envoy并监听状态 • 文件配置文档 • 启动参数文档热重启envoy热重启涉及以下步骤 • Pilot-Agent只是负责启动S,其他步骤由envoy完成。 • 1. 启动另外一个S进程(Secondary process) • 2. S通知P(Primary process)关闭其管理的端口,由S接管 • 3. S加载配置,开始绑定listen ü在2(n-1) * 200毫秒后执行(为什么不立即执行) ü失败再次触发抢救机制 ü10个令牌用完,没有抢救成功,放弃退出优雅关闭envoy ü K8s发送SIGTERM信号让容器优雅关闭 ü Pilot-Agent接收信号通过context关闭子服务,发送SIGKILL关闭envoy ü Envoy不支持优雅关闭,需要通过金丝雀或蓝绿部署方式实现 Envoy优雅关闭实现方式讨论:#3307 #2920 码力 | 30 页 | 9.28 MB | 5 月前3开课吧基于混合云的Kubernetes平台落地实践-程亮
v5897 Gateway VirtualService DestinationRule Service Kubernetes层 POD-2 pilot-agent Container v5897 POD-1 pilot-agent Containermaster POD-n … jenkins Client Chrome • 无状态服务的扩缩容 Traffic serviceA0 码力 | 22 页 | 7.42 MB | 9 月前3
共 4 条
- 1