使用Google的外部HTTP(S)负载均衡器将外部服务连接到GCP GKE Kubernetes集群 [英] Connecting External Service to GCP GKE Kubernetes Cluster with Google's External HTTP(S) Load Balancer

查看:21
本文介绍了使用Google的外部HTTP(S)负载均衡器将外部服务连接到GCP GKE Kubernetes集群的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将外部网页连接到我们在GCP GKE上的Kubernetes集群入口。具体地说,我希望www.domain.com处的所有内容都转到外部WebFlow服务,而www.domain.com/app处的所有内容都转到集群中的本地服务。

我看到了这个问题Ingress Nginx Proxy to Outside Website (Webflow hosted),并跟踪了它,但我无法让它正常工作。我一直收到一个错误 Translation failed: invalid ingress spec: service "default/external-service" is type "ExternalName", expected "NodePort" or "LoadBalancer"; service "default/external-service" is type "ExternalName", expected "NodePort" or "LoadBalancer"

这是我的设置

外部服务:

apiVersion: v1
kind: Service
metadata:
  name: external-service
  namespace: default
spec:
  externalName: participant-homepage-9f8712.webflow.io
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  sessionAffinity: None
  type: ExternalName
status:
  loadBalancer: {}

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: _,
    ingress.kubernetes.io/backends: _,
    ingress.kubernetes.io/forwarding-rule: _,
    ingress.kubernetes.io/https-forwarding-rule: _,
    ingress.kubernetes.io/https-target-proxy: _,
    ingress.kubernetes.io/preserve-host: "false"
    ingress.kubernetes.io/secure-backends: "true"
    ingress.kubernetes.io/ssl-cert: _,
    ingress.kubernetes.io/static-ip: _,
    ingress.kubernetes.io/target-proxy: _,
    ingress.kubernetes.io/url-map: _,
    networking.gke.io/managed-certificates: _,
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/server-snippet: |
      proxy_ssl_name participant-homepage-9f8712.webflow.io;
      proxy_ssl_server_name on;
    nginx.ingress.kubernetes.io/upstream-vhost: participant-homepage-9f8712.webflow.io
  name: my-ingress
  namespace: default
spec:
  backend:
    serviceName: external-service
    servicePort: 443
  rules:
  - host: www.honeybeehub.xyz
    http:
      paths:
      - backend:
          serviceName: app-service
          servicePort: 80
        path: /app/*
        pathType: ImplementationSpecific
      - backend:
          serviceName: external-service
          servicePort: 443
        path: /*
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - ip: _._._._

任何帮助都将不胜感激。谢谢!

推荐答案

您引用的问题Ingress Nginx Proxy to Outside Website (Webflow hosted)的步骤不起作用的原因是该问题集中在EKS(亚马逊弹性Kubernetes服务)上。在GCE Inress中不支持ExternalName服务,您可以在下面的question中看到。 我可以向您推荐的是将其作为功能请求发布在Google's Issue tracker

这篇关于使用Google的外部HTTP(S)负载均衡器将外部服务连接到GCP GKE Kubernetes集群的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆