linode/kube-proxy-amd64kube-proxy-amd64 镜像是上游 kube-proxy 组件的 AMD64 架构镜像,用于在 Kubernetes 集群节点上实现网络代理功能。kube-proxy 是 Kubernetes 网络模型的核心组件之一,负责维护节点网络规则、转发 Service 流量至后端 Pod,并实现 Kubernetes Service 资源的网络抽象。
| 功能 | 说明 |
|---|---|
| Service 全类型代理 | 支持 ClusterIP(集群内访问)、NodePort(节点端口暴露)、Load***(外部负载均衡)等 Service 类型的流量转发 |
| 多协议支持 | 处理 TCP、UDP 协议流量,满足不同服务通信需求 |
| 流量转发与负载均衡 | 基于 Endpoint 信息,将流量分发至后端健康 Pod,支持简单轮询、会话亲和性(Session Affinity)等策略 |
| 网络规则动态更新 | 通过监听 Kubernetes API Server,实时同步 Service 和 Endpoint 变化,动态调整节点 iptables/ipvs 规则 |
| 健康检查集成 | 配合 kubelet 或外部健康检查工具,确保仅转发流量至健康 Pod |
iptables(默认,轻量级)和 ipvs(高性能,支持更多负载均衡算法)两种代理模式sessionAffinity: ClientIP 配置)通过容器镜像仓库拉取指定版本的镜像(版本需与集群 Kubernetes 版本匹配):
bashdocker pull k8s.gcr.io/kube-proxy-amd64:v1.28.0 # 示例版本,需替换为实际集群版本 # 国内仓库可使用镜像代理,如 registry.aliyuncs.com/google_containers/kube-proxy-amd64:v1.28.0
kube-proxy 通常以 DaemonSet 形式在 Kubernetes 集群所有节点(或指定节点)上运行,由 kubelet 管理。以下为典型 DaemonSet 配置示例:
yamlapiVersion: apps/v1 kind: DaemonSet metadata: name: kube-proxy namespace: kube-system spec: selector: matchLabels: k8s-app: kube-proxy template: metadata: labels: k8s-app: kube-proxy spec: hostNetwork: true # 使用主机网络,确保网络规则对主机可见 containers: - name: kube-proxy image: k8s.gcr.io/kube-proxy-amd64:v1.28.0 # 替换为实际镜像版本 command: - /usr/local/bin/kube-proxy - --config=/var/lib/kube-proxy/config.conf # 配置文件路径 - --hostname-override=$(NODE_NAME) # 使用节点名称覆盖主机名 env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName volumeMounts: - name: kubeconfig mountPath: /var/lib/kube-proxy readOnly: true - name: lib-modules mountPath: /lib/modules readOnly: true - name: xtables-lock mountPath: /run/xtables.lock readOnly: false volumes: - name: kubeconfig configMap: name: kube-proxy - name: lib-modules hostPath: path: /lib/modules - name: xtables-lock hostPath: path: /run/xtables.lock type: FileOrCreate
kube-proxy 支持通过命令行参数或配置文件(config.conf)进行配置,常用核心参数如下:
| 参数 | 说明 | 默认值 |
|---|---|---|
--proxy-mode | 代理模式,可选 iptables 或 ipvs | iptables |
--cluster-cidr | 集群 Pod CIDR 范围,用于识别集群内部流量 | 需手动指定(如 10.244.0.0/16) |
--healthz-port | 健康检查端口 | *** |
--metrics-bind-address | 指标暴露地址(Prometheus 监控) | 0.0.0.0:*** |
--conntrack-max-per-core | 每核心最大连接跟踪数(影响并发连接能力) | 32768 |
--session-affinity-timeout | 会话亲和性超时时间(ClientIP 模式下,同一客户端请求绑定至同一 Pod 的时长) | 180s |
若通过配置文件(config.conf)定义参数,典型格式如下(需挂载至容器 /var/lib/kube-proxy/config.conf):
json{ "kind": "KubeProxyConfiguration", "apiVersion": "kubeproxy.config.k8s.io/v1alpha1", "proxyMode": "ipvs", "clusterCIDR": "10.244.0.0/16", "ipvs": { "scheduler": "rr", # 负载均衡算法:rr(轮询)、lc(最少连接)、dh(目标哈希)等 "syncPeriod": "30s" # 规则同步周期 }, "healthzBindAddress": "0.0.0.0:***", "metricsBindAddress": "0.0.0.0:***" }
hostNetwork: true)及 CAP_NET_ADMIN 等系统能力,以修改主机 iptables/ipvs 规则。iptables 模式适用于小规模集群(节点数 < 100),ipvs 模式支持更高并发和更多负载均衡策略,推荐中大规模集群使用。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务