前言:
近期在做K8S的技术积累,发现网络各个社区极少有经验化的介绍K8S架构,小弟才疏学浅,尝试跟大家分享
K8S各种Service
- LoadBalance: 请看下文,本质上跟NodePort完全一致,均是kube-proxy-bin进程在node上启动一个port如32080,请求到达32080后经kube-proxy如ipvs模块转发到后端的pod
- NodePort: 可对外提供服务, 通常关联Ingress、nginx-ingress、haproxy-ingress, 实测LB入口只能关联NodePort无法关联ClusterIP
- ClusterIP: 相信大家是非常熟悉的了,默认api-server就是用此方式访问
K8S网络架构大体如下(LB直通场景不在讨论范围)
- 图解: 红色为控制路径、 黑色为生产流量路径
- 业务平面: 此维度相信是绝大部分管理员所关心的, 也就是公网用户如何经过接入层LB-> K8S内部负载均衡 (kube-proxy) -> 业务Pod
- 控制平面: 执行kubectl 时会先调用master的apiServer, 然后调用各个worker node上的kubelet(常驻)进程实现集群管理(如pod增删改,service/ingress管理)