Как я могу сгенерировать Внешний IP при создании входа, который использует контроллер nginx в kubernetes

apiVersion: extensions/v1beta1
kind: Ingress 
metadata:
  name: helloworld-rules
spec:
  rules:
  - host: helloworld-v1.example.com
http:
  paths:
  - path: /
    backend:
      serviceName: helloworld-v1
      servicePort: 80
  - host: helloworld-v2.example.com
http:
  paths:
  - path: /
    backend:
           serviceName: helloworld-v2
           servicePort: 80

Я делаю кластер kubernetes, и я буду применять это изолированное cloudPlatform (не AWS или Google). При создании входа для службы я могу выбрать адрес хоста, но он нигде не существует (этот адрес не зарегистрирован как DNS-сервер), поэтому я не могу получить доступ к этому URL. Посещение этого IP просто дает 404. Как я могу получить или настроить URL, который может получить доступ к внешнему браузеру:(...

1 ответ

Решение

Это зависит от того, как вы настраиваете свой контроллер nginx.

У вас должна быть настроена служба, которая является точкой входа при доступе извне, см. Документы https://kubernetes.io/docs/concepts/services-networking/ingress/.

Таким образом, в основном у вас есть служба, которая указывает на входной контроллер, и она будет перенаправлять трафик на ваши модули на основе входных объектов.

Вход -> Услуги -> Стручки

Так как вы не работаете в aws или google, вам придется использовать externalIp или NodePort и соответственно настроить сервис

kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app: ingress-nginx
spec:
  selector:
    app: ingress-nginx
  ports:
  - name: http
    port: 80
    targetPort: http
  - name: https
    port: 443
    targetPort: http
  externalIPs:
  - 80.11.12.10

И DNS должен управляться с тем, что у вас есть для ваших доменов, чтобы разрешить или для локального тестирования вы можете просто отредактировать ваши /etc/hostnames

В основном в AWS или Google вы просто создаете сервис с типом: LoadBalancer и указываете свои записи DNS на адрес балансировщика (CNAME для aws и IP для google)

Другие вопросы по тегам