如何更改 kube-proxy 配置?

时间:2021-01-20 09:18:50

标签: 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 配置并保留这些更改?

Kubernetes 1.17 版

UPDATE(如您所愿,几秒钟后,metricsBindAddress 更改为空字符串): enter image description here

更新 2(注意 metricsBinAddress,它在 ~40-50 秒后更改): enter image description here

最终更新: 来自云提供商 (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

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

2 个答案:

答案 0 :(得分:3)

第一次编辑:

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

.....
metricsBindAddress: 0.0.0.0:10249
.....

那么,

kubectl rollout restart ds kube-proxy -n kube-system

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

kubectl rollout status ds kube-proxy -n kube-system

答案 1 :(得分:1)

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

通常可以通过编辑 ConfigMapmetricsBindAddress: 或在 delete kube-proxy pod 上使用 rollout restart 来更改 DaemonSet

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

OP 收到来自 Yandex Support

的反馈 <块引用>

kube-proxy pod 是在宿主机的网络上,为了防止安全问题,它只监听环回地址,因此参数会被重置

相关问题