无法在Bare Metal“Localhost”

时间:2017-12-10 04:57:45

标签: kubernetes

我是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进行访问?

1 个答案:

答案 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。