Назад | Перейти на главную страницу

Маршруты OpenShift против входа Kubernetes и создания новых локальных DNS-имен?

В Openshift я обычно показываю свой сервис за пределами кластера через маршрут. Это автоматически создаст новое «доменное имя», которое я могу использовать для доступа к моему приложению, например, мой локальный компьютер в локальной сети.

Это новое доменное имя не публикуется автоматически в Интернете, но оно автоматически работает в локальной сети, поэтому я предполагаю, что работает какой-то DNS-сервер - возможно, как часть платформы OpenShift - где эти маршруты / DNS-имена добавляются / удаляются автоматически. .

Сейчас я работаю над кубернетами и создал объект Ingress для своего сервиса / приложения:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: my-app
  namespace: my-ns
spec:
  rules:
  - host: ???
    http:
      paths:
      - backend:
          serviceName: my-app
          servicePort: 8080
        path: /hello

Но как мне заполнить хост?

Нужно ли мне вручную связываться с администратором DNS-сервера каждый раз, когда мне нужно это сделать, и заставлять его создавать новую запись DNS с уникальным именем в локальной сети?

Или есть какой-то стандартный / автоматический способ сделать это в Kubernetes - похожий на OpenShift?

По умолчанию, kubeadm init развертывает кластер, назначающий сервисам DNS-имена <service_name>.<namespace>.svc.cluster.local. Вы можете использовать --service-dns-domain для изменения суффикса имени DNS. Опять же, вам нужно будет обновить /etc/systemd/system/kubelet.service.d/10-kubeadm.conf файл соответственно, иначе DNS не будет работать правильно.

Вы можете найти Как изменить домен по умолчанию cluster.local в Kubernetes 1.9, развернутом с помощью kubeadm? полезно для себя.

В случае, если у вас есть (возможно, в будущем) внешние DNS-провайдеры - вы можете изучить ExternalDNS направление.

Конечно, вам следует обращаться к определенной документации, в зависимости от ваших требований. Пример конфигурации для GKE: Настройка ExternalDNS в Google Container Engine