пытаюсь настроить свой 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