如何配置kube-proxy绑定IP地址?

时间:2019-01-30 19:10:08

标签: proxy kubernetes

出于测试目的,我想将kubernetes主目录设置为只能从本地计算机访问,而不能从外部访问。最终,我将在向外打开的机器上运行代理服务器docker容器。全部都在minikube VM中。

我认为配置kube-proxy是必经之路。我做了以下

kubeadm config view > ~/cluster.yaml
# edit proxy bind address
vi ~/cluster.yaml
kubeadm reset
rm -rf /data/minikube
kubeadm init --config cluster.yaml

完成netstat -ln | grep 8443后,我看到tcp 0 0 :::8443 :::* LISTEN表示没有IP。

我也尝试过kubeadm init --apiserver-advertise-address 127.0.0.1,但这仅将kubeadm config view中的广告地址更改为10.x.x.x。我觉得这可能是错误的事情。我不希望需要访问它的其他Docker容器无法访问API服务器。

我还尝试过执行kubeadm config upload from-file --config ~/cluster.yaml,然后尝试手动重新启动运行kube-proxy的docker。 还尝试在更改kubeadm配置后重新启动计算机/集群,但无法解决。手动重新启动minikube VM时,kubeadm命令消失,甚至docker也没有运行。各种在线重启方法似乎也不起作用(可能只是做错了)。

还尝试编辑kube-proxy docker的配置文件(绑定到本地目录),但是当我重新启动docker时,该文件被覆盖。我不明白。

在kubernetes仪表板中没有任何东西可以让我编辑kube-proxy的配置文件(因为它是守护程序)。

最终,我希望使用位于k8s主服务器(特别是apiserver)前面的经过身份验证的代理服务器。无法从VM外部直接访问k8s主服务器。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以通过本地网络配置来限制它。 (防火墙,路线) 据我所知,至少需要通过其他节点所在的本地网络访问该API。除非您希望有一个节点“集群”。

因此,当您没有其他网络卡可以在其中发布或绑定地址时,则需要通过上述防火墙或路由规则对其进行限制。

对于您的第一个问题,您是否调查过此问题? https://github.com/kubernetes/kubernetes/issues/39586