【发布时间】:2020-12-29 23:21:33
【问题描述】:
我有一个简单的应用程序,我正在学习一个基本教程:
https://medium.com/@bhargavshah2011/hello-world-on-kubernetes-cluster-6bec6f4b1bfd
- 我创建了一个集群hello-world2-cluster
-
我使用“连接”到集群:
gcloud 容器集群 get-credentials hello-world2-cluster --zone us-central1-c --project monster-vortex-286312
-
我执行“hellow world”项目的 git 克隆,这基本上是某种蛇游戏:
$ git clone https://github.com/skynet86/hello-world-k8s.git
$ cd hello-world-k8s/
接下来我在 YAML 上运行“create”:
kubectl create -f hello-world.yaml
部署和服务按预期创建:
很好!一切都好!
但是....现在呢???
我现在该怎么办?
我想从外界访问这个应用程序。我可以访问应用程序的 URL 在哪里?
如何让我在 Timbuktu 的朋友 Bob 调用某种 URL(不需要 DNS)来访问我的应用程序?
我知道答案与 LoadBalancer 节点和 Ingress 有关,但似乎没有适当的文档说明如何为简单的 hello world 应用程序执行此操作。
【问题讨论】:
-
如果您的服务是 NodePort 并使用您发送的图像作为参考,您的应用程序应该可以在
machine-ip:30081中访问。 NodePort 服务打开一个可从集群外部访问的端口。 -
我不知道 GKE 是如何工作的,但它应该取决于您的集群配置。如您所见,已经创建了一个名为“hello-world”的服务,它有一个内部 IP。这意味着它只能从集群内部访问。默认情况下,您必须创建一个“LoadBalancer”类型的服务,以便它具有外部 IP。但是当您在 GKE 上时,也许您的集群已经有一个外部 IP,您可以尝试通过“cluster-ip:30081”访问它,但我非常怀疑它是否会起作用。我习惯了 Azure Kubernetes Service,它带有一个默认的“全局”LoadBalancer。
-
那么我的网址是什么? machine-ip:30081,是 google.cloud.hello-world.com 吗?我非常困惑。我只需要从外部链接到我的应用程序。
标签: kubernetes google-cloud-platform google-kubernetes-engine gcloud