Разрешение имени хоста конечных точек kubernetes для данного кластера изнутри

#amazon-web-services #kubernetes #nginx-ingress

#amazon-web-services #kubernetes #nginx-вход

Вопрос:

У меня есть кластер Kubernetes на AWS (без EKS), где каждая служба имеет URL-адреса конечных точек, с которыми они связываются «жестко» в своем образе docker.

Теперь я хочу создать в той же учетной записи aws клон этого кластера, сохранив первый нетронутым. Проблема в том, что когда я создаю службу, ее входная запись перезаписывает в route53 ту, которая использовалась для исходного кластера.

Чего я хотел бы достичь?

  • Для каждого имени хоста, определенного в кластере, я хочу, чтобы оно разрешалось внутренне, чтобы указывать на этот объект кластера, пока он там существует.
  • Я хочу, чтобы имена хостов были зарегистрированы в route53 только для исходного кластера, а второй никак не влиял на эти записи. Так сказать, я хочу иметь явную возможность зарегистрировать его или нет в route53.

Я использую внешний -dns и входной контроллер nginx.

Комментарии:

1. Для вашего первого требования DNS Kubernetes сделает это за вас: kubernetes.io/docs/concepts/services-networking/dns-pod-service . Вы должны быть в состоянии красиво и идиоматично заставить модули обращаться к другим службам исключительно по именам служб, а не по полному доменному имени, эти имена служб должны быть вашими хардкорными адресами (если таковые имеются).

2. (Нажмите отправить слишком рано …) Для второго требования просто не выполняйте развертывание external-dns во втором кластере. И для соблюдения правил гигиены не включайте внешние аннотации DNS к службам во втором кластере. Если вы сделаете это, второй кластер не будет точной копией первого, но, похоже, вам действительно не нужна действительно точная копия.