k8s的kube-prosy

kube-proxy 是 Kubernetes 节点上的网络组件,主要负责 Pod 网络和 Service 的流量转发

Service 本身只是 Kubernetes 的 API 对象,真正处理流量的是 各节点上的 kube-proxy

kube-proxy 职责流程

kube-proxy 是 Kubernetes 节点上的网络组件,负责 Service 流量转发和负载均衡。下面是其具体职责和流程。


1. 获取 Service 与 Pod 信息

  • 从 API Server 获取所有 Service 对象
  • 获取每个 Service 对应的后端 Pod(Endpoints)
  • 根据变化动态更新本地规则

2. 配置网络规则

  • 根据工作模式选择:
    • iptables:在 Node 内核配置规则,将 Service IP:Port 流量重定向到 Pod
    • IPVS:通过 IPVS 负载均衡将流量分发到后端 Pod
    • 用户态模式:kube-proxy 用户态进程转发流量
  • 保证流量能根据 Service → Pod 映射正确路由

3. 流量转发

  • 用户请求 Service ClusterIP / NodePort / LoadBalancer
  • 流量进入 请求所在 Node 的网络栈
  • kube-proxy 配置的规则触发,选择后端 Pod
  • 流量被转发到目标 Pod

4. 负载均衡

  • kube-proxy 根据算法(轮询、最少连接等)选择 Pod
  • 确保同一 Service 的请求均匀分布到多个 Pod

5. 动态更新与健康检查

  • 定期检查 Pod 状态
  • Pod 上线/下线时更新规则
  • 保证流量只转发到健康 Pod

总结

kube-proxy 通过维护 Service → Pod 映射规则,在节点上实现流量拦截、转发和负载均衡,确保访问 Service 的请求能够透明到达后端 Pod。

相关推荐
分布式存储与RustFS6 小时前
RustFS 该跟 stable 还是 nightly?两条版本线的分工、风险与回退,一张表说清
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
ggaofeng8 小时前
k8s中的dns
云原生·容器·kubernetes
我不会起名字32218 小时前
K8s Ingress 返回 502 但后端日志正常:4 类上游断连与排查链
kubernetes·k8s·ingress·502·keepalive
姜鱼问生21 小时前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
wangqiaowq21 小时前
PostgresSQL server Docker 安装部署
运维·docker·容器
程序员阿明21 小时前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
JavaPub-rodert1 天前
Docker 容器为什么 stop 半天停不下来?讲透 PID 1、SIGTERM、SIGKILL、僵尸进程与 tini
运维·docker·容器
我不会起名字3221 天前
Pod 一直 Pending:调度器 5 类失败原因与 kubectl describe 的正确读法
云原生·kubernetes·调度·排查
我不会起名字3221 天前
K8s 服务 DNS 解析偶发 5 秒超时:conntrack 与 ndots 的 3 个坑
kubernetes·k8s·dns·conntrack·coredns
risc1234561 天前
万变不离其宗
人工智能·低代码·云原生