#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 к службам во втором кластере. Если вы сделаете это, второй кластер не будет точной копией первого, но, похоже, вам действительно не нужна действительно точная копия.