Google Cloud Ingress 返回 externalName 的 404 错误

Google Cloud Ingress 返回 externalName 的 404 错误

尝试设置我的 GC Kubernetes。使用 Ingress 控制器进行负载平衡。虽然它对于连接到在我的 kubernetes 上运行的容器的服务非常有效,但我很难让它为我的外部 wordpress 工作。

我按照https://kubernetes.io/docs/concepts/services-networking/service/并创建了一个没有选择器的服务。

apiVersion: v1
kind: Service
metadata:
    name: external-wordpress-service
    annotations: 
        ingress.kubernetes.io/preserve-host: "false"
spec:
    type: ExternalName
    externalName: xyz.myraidbox.de

然后我编辑我的 ingress.yaml 以指向该服务

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: spx-ingress
spec:
  tls:
  - hosts:
    - domain.com
    - www.domain.com
    secretName: le-tls-cert-prod-04
  backend:
    serviceName: frontend-service
    servicePort: 80
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: frontend-service
          servicePort: 80
      - path: /test/
        backend:
          serviceName: external-wordpress-service
          servicePort: 80

因此计划是必须有 www.domain.com/test/ 才能在根级别访问我的外部 wordpress

www.domain.com/test/ -> xyz.myraidbox.de

经过近十亿次编辑后,我仍然得到 404,并且我的前端返回 404 页面而不是来自我的外部 WP 的内容。

有什么建议吗?提前谢谢

欢呼 Andy

答案1

我看到 Ingress 后端未配置为指向 kubernetes 资源,但它指向外部网站 (wordpress)。这是可能的,您可以在 中创建指向外部网站的后端Service,但是,您需要向 中添加更多规范Service

解决方案:尝试按照此示例此 GitHub 主题,并在 中指定 a port80、atargetport和 a 。protocolService

通过以下方式:

kind: Service
apiVersion: v1
metadata:
  name: external-wordpress-service
  annotations: 
        ingress.kubernetes.io/preserve-host: "false"
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: ExternalName
  externalName: xyz.myraidbox.de

相关内容