Вход в Kube с именем хоста (как узнать IP для пересылки доменного имени?)

#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 следует считать эфемерными. Не указывайте на них имена хостов для целей размещения веб-сайтов и служб.

  1. Зарезервируйте внешний статический IP-адрес
  2. Создайте балансировщик нагрузки на портах 80 и 443. Используйте HTTPS, если хотите, чтобы балансировщик нагрузки обрабатывал TLS. Используйте TCP, если хотите, чтобы nginx обрабатывал TLS
  3. Настройте целевые пулы на балансировщике нагрузки, чтобы они указывали на ваши пулы узлов K8s на правильном входном порту nginx
  4. Укажите все имена хостов, обслуживаемых кластером, на внешний статический IP-адрес

Ответ №2:

Вы не можете указать IP-адрес, который будет назначен GKE. IP присваивается автоматически из IP-блока Google.

Вы должны создать входной ресурс, дождаться, пока будет назначен IP, а затем добавить IP в свой DNS.

Если вы хотите автоматически создать правильную запись DNS, которая указывает на ваш IP-адрес входа, вам следует изучить:https://github.com/kubernetes-incubator/external-dns