kube-proxy

概述

参考:

kube-proxy 是实现 Service(服务) 功能的组件,可以转发 Service 的流量到 POD

kube-proxy 有三种模式,userspace、iptables、ipvs。

  • service 在逻辑上代表了后端的多个 Pod,外界通过 service 访问 Pod。service 接收到的请求是如何转发到 Pod 的呢?这就是 kube-proxy 要完成的工作。接管系统的 iptables,所有到达 Service 的请求,都会根据 proxy 所定义的 iptables 的规则,进行 nat 转发
  • 每个 Node 都会运行 kube-proxy 服务,它负责将访问 service 的 TCP/UPD 数据流转发到后端的容器。如果有多个副本,kube-proxy 会实现负载均衡。
  • 每个 Service 的变动(创建,改动,摧毁)都会通知 proxy,在 proxy 所在的本节点创建响应的 iptables 规则,如果 Service 后端的 Pod 摧毁后重新建立了,那么就是靠 proxy 来把 pod 信息提供给 Service。

Note:

kube-proxy 监控指标

kube-proxy 在 10249 端口上暴露监控指标,通过 curl -s http://127.0.0.1:10249/metrics 命令即可获取 Metrics

kube-proxy 配置

参考:

kube-proxy 可以通过 命令行标志配置文件来控制运行时行为。与 [kubelet 配置](/docs/10.云原生/2.3.Kubernetes%20 容器编排系统/2.Kubelet%20 节点代理/Kubelet%20 配置详解.md 节点代理/Kubelet 配置详解.md)一样,很多 命令行标志 与 配置文件 具有一一对应的关系。

命令行标志详解

–config= # 加载配置文件的路径。

配置文件详解

kubectl get configmaps -n kube-system kube-proxy -o yaml # 在 kubeadm 安装的集群中,kube-proxy 的配置保存在 configmap 中,通过 kubectl 命令进行查看


最后修改 June 14, 2025: add oauth (df151ce2)