Обратите внимание, что ваш входной контроллер nginx работает в пространстве имен ghost, поэтому он знает только о службе ghost. Вам нужно иметь другой входной контроллер для вашего пространства имен nextcloud, если вы хотите, чтобы вход был там. Если вам не нужен другой входной контроллер, вы можете разрешить службу nextcloud, нацелив ее на dns следующим образом servicename.namespacename.svc.cluster.local
С другой стороны, нет особого смысла так сильно делить ваши приложения. Kubernetes уже предоставляет вам достаточную конфиденциальность среди приложений в одном и том же пространстве имен.
ОБНОВЛЕНИЕ
Вход, который работает для вас, если у вас есть только 1 INGRESS CONTROLLER
. Поскольку есть две службы, я добавил правило пути, которое будет переписано в /
, чтобы каждая служба получала чистый URI. Используйте myhomeserver.io/ghost
для достижения ghost
и myhomeserver.io/nextcloud
для достижения следующего облака.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ghost
namespace: ghost
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myhomeserver.io
http:
paths:
- path: /ghost
backend:
serviceName: ghost-service
servicePort: 2368
- path: /nextcloud
backend:
serviceName: nextcloud-service.nextcloud.svc.cluster.local
servicePort: 8080
ОБНОВЛЕНИЕ 2 Таким образом, ваш ingress controller
работает в пространстве имен-призраков. Таким образом, ваш вход должен быть развернут в пространстве имен ghost. Обратите внимание на правила http для каждого хоста.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ghost
namespace: ghost
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myhomeserver.io
http:
paths:
- path: /
backend:
serviceName: ghost-service
servicePort: 2368
- host: nextcloud.myhomeserver.io
http:
- path: /
backend:
serviceName: nextcloud-service.nextcloud.svc.cluster.local
servicePort: 8080