使用Google的外部HTTP(S)负载均衡器将外部服务连接到GCP GKE Kubernetes集群 [英] Connecting External Service to GCP GKE Kubernetes Cluster with Google's External HTTP(S) Load Balancer
问题描述
我正在尝试将外部网页连接到我们在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屋!