本篇文章主要来介绍,Istio里面常用的API与K8S里面的CR(Custom Resource)的对应关系,并描述它们是干什么的。
下面会从流量的整个流动过程来进行介绍:
流程介绍:
代码语言:javascript复制1.流量会先经过ingress到达网格内部
2.ingress的流量将流量导流给对应的业务service
3.业务service会根据对应的路由规则导流给它的上游sercvice
4.网格内的业务会通过egress导流给网格外部的服务
概念:
1. istio-ingressgateway:
指的是istio里面的ingress插件,负责网格流量的入口流量。
2. istio-egressgateway:
指的是istio里面的egress插件,负责网格流量的出口流量。
3.Gateway:
一个运行在网格边缘的负载均衡器,接收外部请求转发给网格内的服务,配置网关的监听规则,包括ingress和egress两种场景,涉及到端口、协议、host、SSL 等。
4. VirtualService:
配置路由规则,描述满足条件的请求去哪里,包括匹配条件、流量行为、路由目的服务/版本等,可以针对ingress、egress和Service。
5.DestinationRule:
定义子集和策略,描述到达目标的请求怎么处理,配置服务版本、负载均衡、连接池、健康检查策略等。
6. ServiceEntry:
添加外部服务到网格内,管理外部服务的请求,也可用来扩充网格,与Service类似。
7. Service:
Service 是一个抽象的概念,它定义了Pod的逻辑分组和一种可以访问它们的策略,这组Pod能被Service访问,使用YAML 或JSON 来定义Service,Service所针对的一组Pod通常由LabelSelector实现。