如何更改 kube-proxy 配置?

Ice*_*KER 10 kubernetes kube-proxy

我尝试更改 kube-proxy configMap 和 kube-proxy 命令来设置,metricsBindAddress但 kubernetes 在几秒钟后重置这些更改(没有任何警告)。

  1. kubectl edit cm kube-proxy-config -n kube-system=>添加metricsBindAddress=>等待几秒钟并打开配置-有空的metricsBindAddress
  2. kubectl edit ds kube-proxy -n kube-system=> 添加--metrics-bind-address到命令 => 等待几秒钟 => 该命令已重置为默认值

如何更改 kube-proxy 配置并保留这些更改?

库伯内特版本 1.17

更新(正如您所见,几秒钟后,metricsBindAddress 更改为空字符串): 在此输入图像描述

更新2(注意metricsBinAddress,大约40-50秒后更改): 在此输入图像描述

最终更新:云提供商(Yandex)的回答 -kube-proxy pod it is on the host's network, so to prevent security problems, it listens exclusively on the loopback address and therefore the parameter will be reset

ps https://github.com/helm/charts/tree/master/stable/prometheus-operator#kubeproxy - 我想让 prometheus 可以访问 kube-proxy

小智 5

第一次编辑:

kubectl edit cm/kube-proxy -n kube-system

.....
metricsBindAddress: 0.0.0.0:10249
.....
Run Code Online (Sandbox Code Playgroud)

然后,

kubectl rollout restart ds kube-proxy -n kube-system
Run Code Online (Sandbox Code Playgroud)

您必须重新启动 Pod,否则它们无法获取配置。您可以通过以下方式检查状态:

kubectl rollout status ds kube-proxy -n kube-system
Run Code Online (Sandbox Code Playgroud)


Pjo*_*erS 2

我发布此内容Community Wiki是因为问题的根本原因已经确定。

metricsBindAddress:通常可以通过编辑ConfigMapdelete kube-proxy pod/或使用rollout restarton来实现更改DaemonSet

此问题的根本原因是此更改被 OP 的环境 - Yandex Cloud阻止。

OP 收到反馈Yandex Support

kube-proxy pod 它位于主机的网络上,因此为了防止安全问题,它专门侦听环回地址,因此参数将被重置