У меня есть две службы: служба Nginx (и развертывание) в port 80
который является ссылкой на входящий контроллер Nginx и службу WordPress (развертывание), которая имеет сервер Nginx в port 5050
.
Итак, у меня есть две службы с двумя разными серверами Nginx, и мне нужно создать третью службу с phpmyadmin
в нем, и мне придется создать еще один сервер Nginx в другом порту, port 5000
.
Вот почему спрашиваю себя, могу ли я иметь одну службу Nginx, связанную со всеми моими приложениями (phpmyadmin, wordpress,…).
Я поискал в Интернете и нашел термины "фронтенд" и "бэкэнд", но не знаю, как их использовать, и есть ли другое решение. Если кто-то может объяснить мне это простым языком.
Все мои док-контейнеры построены самостоятельно.
Изменить: входящий yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
namespace: default
name: ingress-controller
spec:
backend:
serviceName: my-nginx
servicePort: 80
Как я уже упоминал ранее в комментариях, вы должны использовать Ingress для перенаправления запросов. Я предполагаю, что ваши службы и развертывания подключены правильно. В качестве дополнительной информации, если у вас возникнут проблемы с текущим входом, я советую использовать helm для развертывания Nginx.
Ingress
также хорошо задокументирован Документы Kubernetes.
Вам необходимо указать paths
как в примере ниже. Вся необходимая информация о rewrite
может быть найден Вот.
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: test.local
http:
paths:
- path: /wordpress
backend:
serviceName: wordpress-service
servicePort: <your service port>
- path: /myphpadmin
backend:
serviceName: myphpadmin-service
servicePort: <your service port>
- path: /anotherservice
backend:
serviceName: another-service
servicePort: <another service port>
Теперь, если вы, например, $ curl test.local/wordpress
вы получите ответ от wordpress
служба. Я объяснил то же самое относительно Ingress
в эта тема.
В качестве дополнительной информации имейте в виду, что есть еще Ingress
типы (Nginx Ingress, GKE Ingress (если вы используете облако GKE) и т. д.)