Вы хотите Вход .Доступно несколько вариантов (Istio, nginx, traefik и т. Д.).Мне нравится использовать nginx, и его очень легко устанавливать и использовать.Шаги установки можно найти по адресу kubernetes.github.io .
После установки Ingress Controller вы хотите убедиться, что вы предоставили его службе с типом = LoadBalancer.Затем, если вы используете Google Cloud DNS, установите для своего домена запись с подстановочными знаками с записью A, указывающей на внешний IP-адрес службы Ingress Controller.В вашем случае это будет * .app.mydomain.com.
Так что теперь весь ваш трафик на app.mydomain.com направляется на этот балансировщик нагрузки и обрабатывается вашим Ingress Controller, так что теперь вынеобходимо добавить объекты службы и входные данные для любой службы, которую вы хотите.
apiVersion: v1
kind: Service
metadata:
name: my-service1
spec:
selector:
app: my-app-1
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
apiVersion: v1
kind: Service
metadata:
name: my-service2
spec:
selector:
app: my-app2
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: sub1.app.mydomain.com
http:
paths:
- backend:
serviceName: my-service1
servicePort: 80
- host: sub2.app.mydomain.com
http:
paths:
- backend:
serviceName: my-service2
servicePort: 80
Показанная маршрутизация основана на хосте, но вы с такой же легкостью могли бы обрабатывать эти службы как пути, так что весь трафик на app.mydomain.com / service1 перейдет в одно из ваших развертываний.