当前位置: 首页 > 知识库问答 >
问题:

无法解析GKE内部lb注册的主机(入口)

陆才俊
2023-03-14

在GKE clsuter中,我不能在内部http loadbalancer配置中使用主机名调用。这是生成的入口yaml文件。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/backends: '{"k8s1-d21262da-default-hellorest-backend-service-80-698951b3":"HEALTHY","k8s1-d21262da-kube-system-default-http-backend-80-43d0837a":"HEALTHY"}'
    ingress.kubernetes.io/forwarding-rule: k8s2-fr-h23zc63d-default-hellorest-ingress-i-jxaunyik
    ingress.kubernetes.io/target-proxy: k8s2-tp-h23zc63d-default-hellorest-ingress-i-jxaunyik
    ingress.kubernetes.io/url-map: k8s2-um-h23zc63d-default-hellorest-ingress-i-jxaunyik
    kubernetes.io/ingress.class: gce-internal
  creationTimestamp: "2021-04-08T09:29:50Z"
  finalizers:
  - networking.gke.io/ingress-finalizer-V2
  generation: 1
  managedFields:
  - apiVersion: extensions/v1beta1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:kubernetes.io/ingress.class: {}
      f:spec:
        f:rules: {}
    manager: GoogleCloudConsole
    operation: Update
    time: "2021-04-08T09:29:50Z"
  - apiVersion: networking.k8s.io/v1beta1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:ingress.kubernetes.io/backends: {}
          f:ingress.kubernetes.io/forwarding-rule: {}
          f:ingress.kubernetes.io/target-proxy: {}
          f:ingress.kubernetes.io/url-map: {}
        f:finalizers:
          .: {}
          v:"networking.gke.io/ingress-finalizer-V2": {}
      f:status:
        f:loadBalancer:
          f:ingress: {}
    manager: glbc
    operation: Update
    time: "2021-04-08T09:30:44Z"
  name: hellorest-ingress-i
  namespace: default
  resourceVersion: "39841"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/hellorest-ingress-i
  uid: 728a4e1b-8435-4b1e-a378-82665e7a8a6c
spec:
  rules:
  - host: hello
    http:
      paths:
      - backend:
          serviceName: hellorest-backend-service
          servicePort: 80
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - ip: 10.178.100.7
# success with ip
$ curl http://10.224.13.150/hello
I am hellorest-backend-67fddc48f9-5hnmg(10.220.0.7)

# cannot resolve host
$ curl http://hello/hello
curl: (6) Couldn't resolve host 'hello'
  • GKE集群:区域/私有集群/1.18.16-gke.302/2节点/控制平面172.16.0.0/28,禁用全局访问/启用http负载平衡
  • 部署的服务:hellorest-backend-service/3 pods/80到8080 tcp转发/默认命名空间/nodeport
  • 入口服务:hellorest-ingress-i/internal http(s)lb/默认名称空间/10.178.100.7/运行状况检查没有问题

共有1个答案

闻人望
2023-03-14

正如在注释中已经提到的,为了使其工作,您需要有一个带有记录a:hello的DNS私有区域。这可以通过使用云控制台来完成。谷歌云私有DNS专区更详细地解释了这一点:

谷歌云DNS现在可以提供:

>

  • 创建专用DNS区域,为您的专用网络资源(VM、负载均衡器等)提供DNS名称解析。

  •  类似资料:
    • 使用变量重写时 当使用标准Kubernetes时,我可以使用作为冲突解决程序: 但Openshift并没有提供这一点。我已经尝试使用容器的,它只是我集群中运行DNS服务器的节点之一,但它仍然无法解析。 最奇怪的部分是从容器终端内部使用中的名称服务器,它工作正常。 有没有一个等效于我可以使用的开放移位中的库伯内特斯DNS主机名,或者其他解决方案来解决这个问题?

    • 问题内容: 我在Ubuntu操作系统上使用了2个容器:Gitlab-ce和gitlab-runner 容器名称是:和 我通过访问我的gitlab应用 我使用以下命令成功注册了跑步者: 然后,当我开始工作时,出现以下错误消息: 在这两个容器中,我都可以访问主机名。我认为问题来自无法解决主机的高山图像。 我该如何解决? 谢谢 编辑1 docker-compose.yml 编辑2 docker-comp

    • 问题内容: 我正在尝试在我的机器(Ubuntu)上的docker上做一个詹金斯。 我必须访问我公司中的git repo。但是在詹金斯,我得到这个错误: 无法解析主机:gogs.mycompany.com 我认为这是DNS错误,因此我尝试像这样启动docker(使用–dns和–dns-search) sudo docker run -p 8080:8080 -p 50000:50000 -v / h

    • 我的android应用程序中的Amazon analytics正在尝试连接到此主机“mobileanalytics.eu-west-1.amazonaws.com”,但无法解决此问题,导致以下错误: I/AmazonHttpClient:无法执行HTTP请求:无法解析主机“mobileanalytics.eu-west-1.amazonaws.com”:没有与主机名10-12 14:05:34.8

    • 我已经检查了关于同一问题的大多数主题,但我找不到解决方案。 我的应用程序使用连接到一个服务,当我使用托管该服务的机器的IP地址时,它工作正常。但是,当我用主机名替换它时,它无法连接。我使用的连接方法非常标准: 例外情况是: JAVA网。UnknownHostException:无法解析主机“myHostname”:没有与主机名关联的地址 myHostname是我的实际主机名。 当我在我的电脑上使用

    • 问题内容: 我正在尝试使用CURL来获取页面的内容。正在执行获取的页面是https,并且正在尝试获取的页面也是https。我尝试的所有设置都出现错误“无法解析主机”。 有任何想法吗? 问题答案: 也许是DNS问题? 根据以下代码尝试您的网址: