0

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

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

问题是,尽管网络与虚拟机和我的本地计算机共享,但我无法使用我的系统访问相同的应用程序。这是预期的。主要原因是专用网络。

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

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

有人可以帮我吗?

4

1 回答 1

2

我想你正在寻找这个。当我在本地尝试所有内容时,我遇到了同样的问题。你需要使用--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

我的部署在部署配置中为我创建了一个 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我也可以在本地访问我的服务

如果您将 type 字段设置为“NodePort”,Kubernetes master 将从标志配置的范围(默认值:30000-32767)中分配一个端口,并且每个 Node 都会将该端口(每个 Node 上的相同端口号)代理到您的服务。该端口将在您的服务的 spec.ports[*].nodePort 字段中报告。

于 2017-02-27T14:45:01.233 回答