Из вашего описания видно, что вы используете KubeDNS. Мой первый совет для вас будет: мигрировать в CoreDNS, поскольку KubeDNS находится на пути устаревания .
Во-вторых, две вещи выпрыгивают из меня.
Вы говорите о звонках между модулями вместо services . В то время как Kubernetes обеспечивает обнаружение служб между вашими приложениями, он делает это через DNS, как вы знаете. Тем не менее, только то, что модули могут разрешать друг друга , не означает, что контейнер будет иметь свои порты открытыми вне его модуля. Чтобы сделать это, даже для приложения в кластере, которое может его разрешить, вы должны объявить ресурс службы для каждого модуля или контроллера.
Когда вы говорите о выполнении вызова, который ссылается на полное доменное имя вашего B-модуля / службы, вы не указываете схему полного доменного имени по умолчанию и не упоминаете, что настроили ее.
Сначала, пожалуйста, kubectl get svc -n NAMESPACE
для обоих пространств имен, в которых запущены ваши A и B, и подтвердите, что была создана служба типа ClusterIP и IP-адрес был связан со службой?
Во-вторых, можете ли вы попытаться выполнить попытку подключения из приложения A к службе приложения B с помощью , указав вместо этого следующий формат FQDN ?
some-service.b.svc.cluster.local
Обратите внимание на часть sv c. Вы упомянули some-service.b.cluster.local
в своем OP.
Наконец, если все вернется в норму, мы можем начать устранение неполадок kube-dns
. кажется, что все три модуля работают. Однако пытались ли вы описать их и / или захватить их журналы ? Не могли бы вы попробовать следующее и поделиться сводкой, если что-то выглядит интересно?
kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-jnntn
kubectl describe pod -n kube-system kube-dns-6cd7bbdf65-txmlj
kubectl describe pod -n kube-system kube-dns-autoscaler-8687c64fc-29jgq
kubectl logs -n kube-system kube-dns-6cd7bbdf65-jnntn
kubectl logs -n kube-system kube-dns-6cd7bbdf65-txmlj
kubectl logs -n kube-system kube-dns-autoscaler-8687c64fc-29jgq
Я думаю, что команды logs
дадут вам ответ, который вы ищете. Дайте мне знать, если вам нужны какие-либо дополнительные разъяснения или помощь по этому вопросу. Я рад помочь.