文章目录
- Istio流量管理分享会
-
- 【1】什么是istio?
- 【2】istio 可以干什么?
- 【3】业务中的痛点?
- 【4】istio 高级流量管理
-
- 5.1 istio 组件介绍与原理
- 5.2 sidercar何时注入?如何控制是否注入?
- 5.3 查看sidecar 容器插入的容器中的iptables
- Destination Rule
- Virtual Service
- Gateway
- service entry
- 【5】istio案例
-
- 5.0 istio部署与安装
- 5.1 业务背景介绍
- 5.2 部署服务
- 【6】集成kiali 和jaeger
- 【7】集成prometheus 和grafana
- 【8】金丝雀发布
-
- 8.1 精细化流量管理
- 8.2 自动化灰度发布
- 【9】流量治理
- 【10】双刃剑
- 【11】参考
Istio流量管理分享会
Start Date: October 31, 2023
End Date: October 27, 2023
Tags: Life, Work
Status: Not started
技术分享会
【1】什么是istio?
- Istio是一个用于服务治理的开放平台。
- Istio是一个Service Mesh形态的用于服务治理的开放平台。
- Istio是一个与Kubernetes紧密结合的适用于云原生场景的Service Mesh形态的用于服务治理的开放平台。
只要服务间有访问,如果需要对服务间的访问进行管理,就可以使用Istio。
CNCF 社区2023 年6月毕业的一个项目。
- 流行度
- 稳定性
什么是南北流量 ?东西流量?
南北: ingress → svc → ep → po
东西: svc → svc
流量被集群的coreDNS解析之后,istio 就接管流量了。istio 会动态发现svc 、 pod 和ep。
【2】istio 可以干什么?
- 自动通过服务发现获取服务实例列表,并根据负载均衡策略选择一个服务实例
- 对服务双方启用双向认证和通道加密 mtls
- 如果某个服务实例连续访问出错,则可以将该实例隔离一段时间,以提高访问质量
- 设置最大连接数、最大请求数、访问超时等对服务进行保护
- 限流
- 对请求进行重试
- 修改请求中的内容
- 将一定特征的服务重定向
- 灰度发布
- 自动记录服务访问信息
- 记录调用链,进行分布式追踪
- 根据访问数据形成完整的应用访问拓扑
- ……
所有这些功能,都不需要用户修改代码,用户只需在Istio
的控制面配置即可,并且动态生效
对业务代码完全没有侵入性
【3】业务中的痛点?
- 微服务调用链路内部是一个黑盒,排查问题主要靠猜? kiali workload graph
- 如何让网格内的服务调用链路清晰呈现? 不同版本服务之间调用成功率、时间、请求内容大小? kiali version graph
- 线上服务cpu 100% 如何快速定位是哪个服务?jaeger 链路追踪分析
- 发布版本提心吊胆( 研发 + 运维 + 产品) ?金丝雀
【4】istio 高级流量管理
5.1 istio 组件介绍与原理
istio安装后,有三个组件. 其中istio-ingress 是入口网关,和ingress 功能类似。
istiod 是istio的控制面.
envory作为sidercar 容器跑在业务pod中,是数据面。在pod的镜像中叫istio-proxy
[root@k8s-worker-node1 istio-1.19.3]# kubectl -n istio-system get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
istio-egressgateway 1/1 1 1 23h
istio-ingressgateway 1/1 1 1 23h
istiod 1/1 1 1 23h
k get po
NAME READY STATUS RESTARTS AGE
advertisement-v1-6b65cd7c78-wtt4n 2/2 Running 0 4h11m
forecast-v1-58ffc96649-bsxxr 2/2 Running 0 4h11m
frontend-v1-58896bbfdd-x66jv 2/2 Running 0 4h11m