Я пытаюсь выяснить, как создать несколько входных ресурсов, совместно использующих IP. Или, если это невозможно, я хотел бы знать, есть ли какая-либо переадресация правило, которое я могу использовать в сочетании с записью Cloud DNS, которая обеспечивает весь трафик на IP-адрес (который я могу сделать статическим) к одному кубернетовскому кластеру.Настройка нескольких входных данных, служб, ресурсов развертывания и облачного DNS
По существу, я хотел бы настроить вход с каждой службой, содержащей один или более поддоменов и все входящие, чтобы указывать на один и тот же кластер. Прямо сейчас Я получаю другой эфемерный IP-адрес с каждым входящим. Могу ли я создать правило переадресации , которое указывает весь трафик на статический IP-адрес в кластер, а затем, возможно, создать подстановочную запись DNS, которая указывает все поддомены на статический IP-адрес?
Вот пример конфиг похоже на то, что я использую:
apiVersion: v1
kind: Service
metadata:
name: api-service
labels:
name: api-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 3000
protocol: TCP
selector:
name: api-deployment
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: api-deployment
labels:
name: api-deployment
spec:
template:
metadata:
labels:
name: api
spec:
containers:
- image: us.gcr.io/[project]/hello-world:1.0.0
name: api
ports:
- containerPort: 3000
env:
- name: NAME
value: api
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api-ingress
spec:
backend:
serviceName: api-service
servicePort: 80
rules:
- host: api.example.com
http:
paths:
- backend:
serviceName: api-service
servicePort: 80
Я создаю эти ресурсы на Кубэ кластер так:
$ kubectl create -f api.yml
А потом увидеть попаданию, которая создается как так :
$ kubectl get ing
NAME RULE BACKEND ADDRESS AGE
api-ingress - api-service:80 130.211.32.223 1h
api.example.com
api-service:80
Теперь представьте, что вы копируете этот ямль выше и меняете службу, развертывание nd Введите имя api-2 и создайте их. Вы бы в конечном итоге с чем-то вроде этого:
$ kubectl get ing
NAME RULE BACKEND ADDRESS AGE
api-ingress - api-service:80 130.211.32.223 1h
api.example.com
api-service:80
api-2-ingress - api-2-service:80 130.211.22.214 1h
api-2.example.com
api-2-service:80
И это нормально ... Но мне нужно, чтобы обеспечить весь трафик * .example.com идет к кластера так втекает могут выполнять свою магию и маршрут запросы на право услуг.
Я знаю, что у меня может быть один ресурс, созданный и исправленный, вместо , создающего новый, но я стараюсь избегать этого и предпочитаю, если я могу создать его для каждой службы.
Возможно ли это как-то?
Похожие: https://github.com/kubernetes/kubernetes/issues/26935
Если статический IP решает вашу проблему, просто зарезервируйте адрес для своего проекта. https://cloud.google.com/sdk/gcloud/reference/compute/addresses/create –
@VikramTiwari вы имеете в виду взять один из тех эфемерных IP-адресов, которые используются при входе, верно? Если это так, проблема в том, что я буду продолжать добавлять входящие адреса, которые будут иметь разные IP-адреса, и они не будут связаны с DNS-записью * .example.com. Или я чего-то не хватает? – luisgo
После того, как у вас есть статический IP-адрес, вы можете использовать его на балансировщике нагрузки для своего кластера и, следовательно, продолжать размножать новые входящие и добавлять их к балансировщику нагрузки. http://stackoverflow.com/questions/32266053/how-to-specify-static-ip-address-for-kubernetes-load-balancer –