Networking Kubernetes服务将暴露于本地计算机

Networking Kubernetes服务将暴露于本地计算机,networking,docker,kubernetes,vmware,kubeadm,Networking,Docker,Kubernetes,Vmware,Kubeadm,我正在使用kubeadm(本地使用VMWare虚拟机)运行kubernetes群集。作为安装的一部分,我安装了Weave网络适配器来建立主设备和从设备之间的关系 我能够成功地创建pod和服务。甚至可以使用kubeadm提供的私有IP获取应用程序 问题是,尽管网络与虚拟机和本地机器共享,但我无法使用我的系统访问相同的应用程序。这是人们所期望的。主要原因是私有网络 我想在我的本地机器上访问该应用程序,该机器位于专用kubernates网络之外 需要记住的一点:我使用VMWare虚拟机在本地机器上托管

我正在使用kubeadm(本地使用VMWare虚拟机)运行kubernetes群集。作为安装的一部分,我安装了Weave网络适配器来建立主设备和从设备之间的关系

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

问题是,尽管网络与虚拟机和本地机器共享,但我无法使用我的系统访问相同的应用程序。这是人们所期望的。主要原因是私有网络

我想在我的本地机器上访问该应用程序,该机器位于专用kubernates网络之外

需要记住的一点:我使用VMWare虚拟机在本地机器上托管所有内容


有人能帮我吗?

我想你在找我。当我在本地尝试所有东西时,我也遇到了同样的问题。您需要使用
--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。 现在我想在我的吊舱上创建一个服务

./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字段中报告。

我想您正在寻找。当我在本地尝试所有东西时,我也遇到了同样的问题。您需要使用
--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。 现在我想在我的吊舱上创建一个服务

./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字段中报告。

谢谢。这对我有用。由于节点端口将在30000-32767之间变化,我们是否有任何机制来平衡相同的负载,以便在任何时候都不查看动态端口?如果是,你能帮我找到解决方案吗?我没有尝试过,但我在回答中提供的文档告诉我:“如果你想要一个特定的端口号,你可以在nodePort字段中指定一个值,系统会给你分配该端口,否则API事务将失败(即,您需要自己注意可能的端口冲突)。您指定的值必须在节点端口的配置范围内。“谢谢。这对我来说很有效。由于节点端口将从30000-32767变化,我们是否有任何机制来平衡相同的负载,以便我们在任何时候都不应该查看动态端口?如果是,请您帮助我找到相同的解决方案…我没有尝试,但我在回答中提供的文档告诉我们是这样的:“如果您想要一个特定的端口号,您可以在nodePort字段中指定一个值,系统将为您分配该端口,否则API事务将失败(即,您需要自己注意可能的端口冲突)。您指定的值必须在节点端口的配置范围内。”