Kubernetes服务将接触本地机器

时间:2017-02-27 14:16:00

标签: networking docker kubernetes vmware kubeadm

我正在使用kubeadm运行我的kubernetes集群(本地使用VMWare VM)。作为安装的一部分,我已经安装了Weave Network Adapter来建立主从之间的关系。

我能够成功创建pod和服务。甚至,能够使用kubeadm提供的私有IP来获取应用程序。

问题是,虽然网络与VM和本地计算机共享,但我无法使用我的系统访问同一个应用程序。这是预期的。私人网络的主要原因。

我想访问本地计算机中的应用程序,该计算机位于私有kubernates网络之外。

需要记住的一点:我使用VMWare VM托管本地计算机上的所有内容。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找this。当我在本地尝试一切时,我遇到了同样的问题。您需要使用--type=NodePort

例如,我创建了一个部署:

./cluster/kubectl.sh run my-jenkins --image=jenkins:1.651.1 --replicas=1 --port=8080 –-namespace=jenkins

我检查了吊舱

kubectl --namespace=jenkins get pods
NAME                          READY     STATUS    RESTARTS   AGE
my-jenkins-1908062973-7b44z   1/1       Running   0          24s

我的部署在deploymentconfig中为我创建了一个pod + replicaSet。 现在我想在我的pod上创建一个服务

./cluster/kubectl.sh expose rs my-jenkins-1908062973 --port=80 --target-port=8080 --type=NodePort --name=jenkins-service --namespace=jenkins

感谢--type=NodePort我能够在本地访问我的服务

如果将类型字段设置为“NodePort”,Kubernetes主站将从标志配置范围(默认值:30000-32767)分配端口,每个节点将代理该端口(每个节点上的端口号相同) )进入您的服务。该端口将在您的服务的spec.ports [*] .nodePort字段中报告。