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

nix*_*ind 6 kubernetes kube-proxy

我想设置 k8skube-proxy配置文件权限以进行强化。

我正在描述如何在将标志设置为无法找到的路径 ( ) 的kube-proxy情况下运行进程......--configvar/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
Run Code Online (Sandbox Code Playgroud)

但该文件/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
Run Code Online (Sandbox Code Playgroud)

为什么?

Sai*_*nti 5

我的设置也面临问题(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

Run Code Online (Sandbox Code Playgroud)

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

[root@project1kubemaster ~]# ls /usr/local/bin/kube-proxy
ls: cannot access /usr/local/bin/kube-proxy: No such file or directory
Run Code Online (Sandbox Code Playgroud)

上面让我意识到 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

Run Code Online (Sandbox Code Playgroud)

简而言之,kube-proxy 二进制文件和配置文件似乎位于该节点的 kube-proxy pod 内,并且它们在该 pod 内运行。它可能显示主机的 ps -ef 输出的原因之一可能是由于该 pod 正在使用主机的 Pid 名称空间。我们还可以看到 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
Run Code Online (Sandbox Code Playgroud)