#kubernetes #ip-address #google-kubernetes-engine #hostname #nginx-ingress
#kubernetes #ip-адрес #google-kubernetes-engine #имя хоста #nginx-вход
Вопрос:
Я вижу руководства, подобные этому, где для настройки входа в Nginx (с ssl) требуется ввести хост, т. Е. echo1.example.com
. Я не понимаю, как вы могли бы использовать указанный хост, если бы у вас не было IP-адреса (в вашем DNS, как бы вы узнали, куда обращаться echo.example.com
?).
Когда я настраиваю вход, подобный этому, echo.example.com
будет отображаться как вход ADDRESS
, поэтому я не знаю IP. Если я не укажу это, ADDRESS
будет просто пустым. При этом, как я могу узнать, на какой IP я должен указать свое доменное имя?
Я работаю на GKE.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-ingress
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-staging
spec:
tls:
- hosts:
- echo1.example.com
- echo2.example.com
secretName: letsencrypt-staging
rules:
- host: echo1.example.com
http:
paths:
- backend:
serviceName: echo1
servicePort: 80
- host: echo2.example.com
http:
paths:
- backend:
serviceName: echo2
servicePort: 80
Ответ №1:
IP-адреса ваших узлов Kubernetes следует считать эфемерными. Не указывайте на них имена хостов для целей размещения веб-сайтов и служб.
- Зарезервируйте внешний статический IP-адрес
- Создайте балансировщик нагрузки на портах 80 и 443. Используйте HTTPS, если хотите, чтобы балансировщик нагрузки обрабатывал TLS. Используйте TCP, если хотите, чтобы nginx обрабатывал TLS
- Настройте целевые пулы на балансировщике нагрузки, чтобы они указывали на ваши пулы узлов K8s на правильном входном порту nginx
- Укажите все имена хостов, обслуживаемых кластером, на внешний статический IP-адрес
Ответ №2:
Вы не можете указать IP-адрес, который будет назначен GKE. IP присваивается автоматически из IP-блока Google.
Вы должны создать входной ресурс, дождаться, пока будет назначен IP, а затем добавить IP в свой DNS.
Если вы хотите автоматически создать правильную запись DNS, которая указывает на ваш IP-адрес входа, вам следует изучить:https://github.com/kubernetes-incubator/external-dns