我是Kubernetes的新手并且有一个基本问题。我在LXD的裸机Ubuntu“Localhost”设置上安装了Canonical Distribution of Kubernetes。
我能够为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.X.Y.我怎样才能实际暴露这个,以便我可以使用HOSTIP进行访问?
答案 0 :(得分:0)
根据您的描述,在您的本地环境中,您可能会配置一个容器化群集"。因此,您可以访问NodePort访问这些容器化的工作节点,但访问主机IP本身(因为该本地主机中没有配置任何内容,对吧?)。
因此,您需要做的是建立一种方法将流量从主机转发到容器化群集",以便可以访问NodePort。
想到的一种方法是,在您尝试访问的机器中,配置这样的路线
10.112.134.0/24 - 网关192.168.X.Y
sudo route add -net 10.112.134.0/24 gw 192.168.X.Y
您可能需要检查是否已启用sysctl规则net.ip4.forward。