最近更新时间:2026-05-12 14:52:20
金山云容器服务的独立部署集群、托管集群中默认安装了守护进程 ip-masq-agent,Pod 之间跨节点相互访问以及 Pod 访问同 VPC 内其他节点时将不对 Pod 的 IP 地址做 SNAT。而在默认情况下,Pod 访问其他服务的地址将经过 k8s 伪装,导致用户无法获取 Pod 真实地址。
本次实践旨在暴露 k8s 中 Pod 真实 IP,以便用户采集日志。为方便用户进行操作,本次实践采用控制台修改方式。
在 2022 年 8 月 30 日后创建的独立集群 | 2022 年 11 月 8 日后创建的托管集群才会默认安装
ip-masq-agent。
登录容器服务控制台,在集群列表中,点击目标集群名称/ID,进入实例页面。
在实例信息页面,在左侧导航栏,选择工作负载 > DaemonSet > ip-masq-agent。
进入相应详情页面,选择 YAML页签,定位 ip-masq-agent 使用的配置文件。
返回实例信息,选择配置管理 > ConfigMap > ip-masq-agent-config。
点击编辑YAML,修改相应配置文件,将 NonMasqueradeCIDRs 中地址改为 0.0.0.0/0,并点击 更新。
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: 2024-05-31T09:25:24Z
name: ip-masq-agent-config
namespace: kube-system
resourceVersion: "94030274"
uid: 2f420bc1-7cb0-4a4e-ae1c-35f96264b2ce
data:
config: '{"NonMasqueradeCIDRs":["0.0.0.0/0"],"MasqLinkLocal":true,"ResyncInterval":"1m0s"}'验证生成的 iptables 规则,并且在生效节点上查看具体条目。
iptables -t nat -L IP-MASQ-AGENT如下图,显示 anywhere 任意访问均不做地址伪装,即可实现 Pod 真实 IP 透传。
纯净模式
