Kubernetes kube-proxy 正在运行但找不到指定的 kubeconfig 文件

标签 kubernetes kube-proxy

我想设置 k8s kube-proxy 配置文件权限以进行加固。

我正在描述 kube-proxy 进程如何在 --config 标志设置为路径(var/lib/kube- proxy/config.conf) 找不到...

事实上检查 kube-proxy 过程给出了这个:

[centos@cpu-node0 ~]$ ps -ef | grep kube-proxy
root     20890 20872  0 Oct20 ?        00:19:23 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=cpu-node0
centos   55623 51112  0 14:44 pts/0    00:00:00 grep --color=auto kube-proxy

但是文件 /var/lib/kube-proxy/config.conf 不存在:

[centos@cpu-node0 ~]$ ll /var/lib/kube-proxy/config.conf
ls: cannot access /var/lib/kube-proxy/config.conf: No such file or directory

为什么?

最佳答案

我的设置也有问题 ( 1.19)

[root@project1kubemaster ~]# kubectl version --short
Client Version: v1.19.3
Server Version: v1.19.3

[root@project1kubemaster ~]# ps -ef | grep kube-proxy
root      2103  2046  0 11:30 ?        00:00:00 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=project1kubemaster

[root@project1kubemaster ~]# ll /var/lib/kube-proxy/config.conf
ls: cannot access /var/lib/kube-proxy/config.conf: No such file or directory

一件更有趣的事情是“kube-proxy”也没有找到:

[root@project1kubemaster ~]# ls /usr/local/bin/kube-proxy
ls: cannot access /usr/local/bin/kube-proxy: No such file or directory

上面让我意识到 kube-proxy 二进制文件正在该节点的 kubeproxy 容器中运行

[root@project1kubemaster ~]# kubectl get pods -n kube-system -o wide | grep proxy
kube-proxy-ffbqr                             1/1     Running   0          27m   <IP>   project1kubeworker2   <none>           <none>
kube-proxy-r9pz9                             1/1     Running   0          29m   <IP>  project1kubemaster    <none>           <none>
kube-proxy-zcrtw                             1/1     Running   0          27m   <IP>   project1kubeworker1   <none>           <none>

[root@project1kubemaster ~]# kubectl exec -it kube-proxy-r9pz9 -n kube-system -- /bin/sh
#
#
# find / -name config.conf
/var/lib/kube-proxy/..2020_11_02_16_30_32.787002112/config.conf
/var/lib/kube-proxy/config.conf

简而言之,kube-proxy 二进制文件和配置文件似乎在该节点的 kube-proxy pod 内,并且它们在该 pod 内运行。它可能显示主机的 ps -ef 输出的原因之一可能是该 pod 正在使用主机的 Pid namespace 。我们还可以看到 kube-proxy 进程的父 pid 只不过是相应容器的 containerd。

[root@project1kubemaster ~]# ps -ef | grep 2046
root      2046 16904  0 11:30 ?        00:00:00 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/c3e9bf6ecdcdd0f56d0c76711cea4cadd023cd6ef82bf8312311248a7b0501a4 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
root      2103  2046  0 11:30 ?        00:00:00 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf --hostname-override=project1kubemaster

关于Kubernetes kube-proxy 正在运行但找不到指定的 kubeconfig 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64648243/

相关文章:

kubernetes - 设计 K8 pod 和初始化流程

kubernetes - kube-proxy 无法到达 master 时如何表现?

docker - Mac k8s模式的docker的Linux版本是什么?

kubernetes - 禁用创建和使用API​​凭证

kubernetes - 如何在正在运行的集群中的 kube-proxy 上设置新的日志记录级别

docker - 为什么 k8s.gcr.io/kube-proxy Docker 镜像 'work' 在多个架构上?

docker - Kubernetes pod 内的 Internet 连接不起作用

kubernetes - 无需 kubectl 代理即可访问 Kubernetes Dashboard

kubernetes - 无法连接到服务器: dial tcp i/o time out

kubernetes - 如何在 Kubernetes cronjob 中执行脚本 shell