kube-proxy 拦截的是进出 Kubernetes 节点的流量,而 sidecar proxy 拦截的是进出该 Pod 的流
istio使用k8s CRD api配置
Init容器(启动后很快终止) : 修改iptables 来截获流量转发给 proxy (流出pod,流入pod)
Proxy容器:pilot-agent进程生成静态配置,启动并监控proxy进程,上报指标,proxy进程执行转发

VirtualOutboundListener(15001) 按实际端口转发对应 Outbound listener(核心filter,绑定route) - 按host路由到具体OutBoundCluster-eds获取具体endpoint
VirtualInboundListener(15006) - 核心filter - inboundCluster(静态配置了endpoint为127.0.0.1:port)
核心filter:filterChains/filterChain/filter(http_connection_manager,内置多http_filters,大部分安全限流功能在此实现)

xDS : listener - route - cluster - endpoint :数据流动/处理的顺序,监听到数据,路由到集群,选择端点发送
xDS由envoy提出,成为了ServiceMesh的通用数据面api,实现了xDS的代理才能成为sidecar
xDS其动态性: 监控文件/轮询rest接口/gRpc

pushGateway:数据推送pushGatewy,p8s异步从pG获取
exporters: 暴露http接口供p8s定时抓取
tsdb/httpServer/promQL alertManager
服务发现:发现需要监控的数据源/target,如kubernetes_sd_configs

EFK:fluentd

childOf followsFrom(parent不依赖child的结果,类似mq)
inject/extract

Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统
PetSet是用来控制有状态服务,PetSet中的每个Pod的名字都是事先确定的,不能更改,对于PetSet中的Pod,每个Pod挂载自己独立的存储
Docker的存储卷作用范围为一个容器,而K8s的存储卷的生命周期和作用范围是一个Pod
namespace:名字空间为K8s集群提供虚拟的隔离作用,K8s集群初始有两个名字空间,分别是默认名字空间default和系统名字空间kube-syste,常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是default)
node exporter 物理机/cAdvisor 容器

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐