[英]Unable to expose Kubernetes service on Bare Metal “Localhost”
我是Kubernetes的新手,有一个基本问题。 我在带有LXD的裸机Ubuntu“ Localhost”安装程序上安装了Kubernetes的Canonical Distribution。
我能够为NGINX集群运行一个简单的部署/服务。 但是,我对于如何使用服务器hostip在外部实际公开它感到困惑。
例如:
kubectl run my-nginx --image=nginx --replicas=3 --port=80
kubectl expose deployment my-nginx --type=NodePort
kubectl describe services my-nginx --> Shows NodePort as 31198
我可以成功地对任何工作节点运行CURL:
curl 10.112.134.139:31198
curl 10.112.134.41:31198
但是,我的hostip是192.168.XY我如何才能真正公开该地址,以便可以使用HOSTIP访问?
根据您的描述,它看起来像是在本地环境中配置了“包含容器的群集”。 因此,您可以访问NodePort来访问这些容器化工作节点,但是访问主机IP本身(因为该本地主机中没有配置任何内容,对吗?)。
因此,您需要做的是建立一种将流量从主机转发到“容器化群集”的方法,以便可以访问NodePort。
想到的一种方法是,在您尝试访问的计算机中,配置这样的路由
10.112.134.0/24-网关192.168.XY
sudo route add -net 10.112.134.0/24 gw 192.168.X.Y
可能需要检查sysctl规则net.ip4.forward是否已启用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.