Назад | Перейти на главную страницу

Google Cloud Ingress возвращает ошибку 404 для externalName

пытаюсь настроить свой GC Kubernetes. Использование контроллера Ingress для балансировки нагрузки. Хотя он отлично работает для служб, подключенных к контейнерам, запущенным в моих кубернетах, мне сложно заставить его работать для моего внешнего 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.

Какие-либо предложения? Спасибо заранее

Ура Энди

Я вижу, что серверная часть Ingress не настроена так, чтобы указывать на ресурс kubernetes, но указывает на внешний веб-сайт (wordpress). Это возможно, вы можете создать серверную часть, которая указывает на внешний веб-сайт в Serviceоднако вам потребуется добавить дополнительные спецификации к Service.

Решение: попробуйте следовать этому примеру в этот поток GitHubи укажите port 80, а targetport и protocol в Service.

Таким образом:

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