【问题标题】:Ingress is not getting address on GKE and GCEIngress 没有在 GKE 和 GCE 上获得地址
【发布时间】:2018-12-15 20:41:27
【问题描述】:

创建入口时,不会生成地址,从 GKE 仪表板查看时,它始终处于 Creating ingress 状态。 描述入口没有显示任何事件,我在 GKE 仪表板上看不到任何线索。

有没有人有类似的问题或关于如何调试的任何建议?

我的部署.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mobile-gateway-ingress    
spec:
  backend:
    serviceName: mobile-gateway-service
    servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: mobile-gateway-service
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
  selector:
    app: mobile-gateway
  type: NodePort
---
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: mobile-gateway-deployment
  labels:
    app: mobile-gateway
spec:
  selector:
    matchLabels:
      app: mobile-gateway
  replicas: 2
  template:
    metadata:
      labels:
        app: mobile-gateway
    spec:
      containers:
      - name: mobile-gateway
        image: eu.gcr.io/my-project/mobile-gateway:latest
        ports:
          - containerPort: 8080

描述入口显示没有事件:

mobile-gateway ➤ kubectl describe ingress mobile-gateway-ingress                                                                                                                         git:master*
Name:             mobile-gateway-ingress
Namespace:        default
Address:
Default backend:  mobile-gateway-service:80 (10.4.1.3:8080,10.4.2.3:8080)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     *     mobile-gateway-service:80 (10.4.1.3:8080,10.4.2.3:8080)
Annotations:
  kubectl.kubernetes.io/last-applied-configuration:  {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{},"name":"mobile-gateway-ingress","namespace":"default"},"spec":{"backend":{"serviceName":"mobile-gateway-service","servicePort":80}}}

Events:  <none>
hello ➤

使用简单的 LoadBalancer 服务,会给出一个 IP 地址。问题仅在于入口资源。

【问题讨论】:

  • 我已经按照示例 cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer 一行一行地进行操作,我再次遇到一个没有地址的入口并停留在状态 Creating ingress
  • 你能运行kubectl describe ingess NAME吗?此输出的事件部分可能会显示一个问题,例如您达到了后端或 IP 地址配额。
  • 很奇怪,入口描述没有给你任何事件。即使您在 5 分钟后描述它,也没有任何事件?
  • @AhmetAlpBalkan 添加了描述的输出,不幸的是没有事件。
  • @suren 这个入口整个周末都在“创造”,但仍然没有活动:(

标签: kubernetes google-cloud-platform google-kubernetes-engine


【解决方案1】:

在这种情况下的问题是我在创建集群时没有包含插件HttpLoadBalancing! 我的错,但如果有一个事件通知我入口资源中的这个错误,那就太糟糕了。

奇怪的是,当我使用包括 HttpLoadBalancing 在内的默认插件创建一个新集群以遵循教程 cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer 时,我发现了同样的问题。也许我没有等很久?无论如何,现在我已经包含了插件。

【讨论】:

  • HttpLoadBalancing 默认包含在集群中。如果您指定了 --enable-addons 标志,那么您可能还需要在其中列出此插件,但如果您按照教程而不修改步骤,您应该会获得此插件。
  • 我在集群上启用了HttpLoadBalancing 插件,但我的入口数天都停留在“正在创建入口”状态。任何想法
  • @AhmetB-Google,我在从 GCP 仪表板创建集群后按照教程操作,但遇到了同样的问题
  • 使用gcloud container clusters create gara-cluster --zone=europe-west1-b --addons=HttpLoadBalancing的命令
【解决方案2】:

要完成已接受的答案,值得注意的是,可以在已经存在的集群上激活插件(从 Google 控制台)。

但是,它将重新启动您的集群停机(在我的例子中,在几乎空的集群上需要几分钟)。确保这在您的情况下是可以接受的,并进行测试。

【讨论】:

  • (这可能是对已接受答案的评论。)在我的情况下,启用插件只会导致控制平面(主)重新启动 - 节点保持运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2022-06-11
  • 2020-05-17
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
相关资源
最近更新 更多