Почему рабочая нагрузка, использующая EKS Fargate, не может разрешить DNS-имена, в то время как та же рабочая нагрузка, запущенная на узле EC2, может разрешать имена? В Fargate рабочая нагрузка не может разрешить службу, работающую в кластере, DNS-имя в частной зоне размещения или общедоступное DNS-имя.
/ $ nslookup my-api.my-namespace.svc.cluster.loca
;; connection timed out; no servers could be reached
/ $ nslookup my-record.my-domain.com
;; connection timed out; no servers could be reached
/ $ nslookup www.google.co.uk
;; connection timed out; no servers could be reached
/ $
Я просмотрел Рекомендации по использованию AWS Fargate и не считаю, что какой-либо из них является проблемой.
Кто-нибудь может подсказать, почему EKS Fargate не может разрешить DNS-имена?
Если это актуально, вот пример манифеста, который я использую для развертывания задания, которое будет запланировано в Fargate.
apiVersion: batch/v1
kind: Job
metadata:
name: test-fargate
spec:
backoffLimit: 0
ttlSecondsAfterFinished: 600
template:
spec:
restartPolicy: Never
containers:
- name: test-import-aixm
image: my-container/image:latest
command: [ "/bin/sh", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]
Возможно, Фаргейт не сможет решить:
Проверьте, где работают ваши модули core-dns, и посмотрите, разрешен ли трафик между core-dns и модулем Fargate. Например, если core-dns работает на рабочем узле ec2, убедитесь, что связь разрешена между группой безопасности рабочего узла и группой безопасности модуля Fargate, то есть группой безопасности кластера (по умолчанию группа безопасности кластера будет прикреплена к модулям Fargate).
Проверьте, может ли модуль Fargate разрешить напрямую, используя IP-адрес кластера службы kube-dns (служба Core-DNS), а также индивидуально с помощью IP-адреса модуля Core-DNS.
nslookup my-record.my-domain.com <'ip-адрес кластера службы kube-dns'>
nslookup my-record.my-domain.com <'cored-dns pod ip'>
Это был номер 1. Мне нужно было разрешить UDP DNS (порт 53) из основной группы безопасности кластера (которая автоматически присоединяется к псевдоузлам Fargate) в группу безопасности узла. Мне также пришлось разрешить TCP 8080 для моего конкретного случая использования.