Блокировать разрешение внешнего IP-адреса в kubernetes

Я создал службу nginx pod и nginx clusterIP и назначил externalIP для этой службы, как показано ниже.

      NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                            AGE
test-nginx             ClusterIP   10.110.93.251    192.168.0.10        443/TCP,80/TCP,8000/TCP,5443/TCP   79m

В одном из модулей моего приложения я пытаюсь выполнить приведенную ниже команду и получить ее полное доменное имя.

      >>> import socket
>>> socket.getfqdn('192.168.0.10')
'test-nginx.test.svc.cluster.local'

Он возвращает мне fqdn службы nginx вместо fqdn моей хост-машины. Есть ли способ заблокировать разрешение DNS только для внешнего IP? или есть какое-то другое решение этой проблемы?

1 ответ

Вы присвоили внешний ip ClusterIPservice в Kubernetes, поэтому вы можете получить доступ к своему приложению из-за пределов кластера, но вы обеспокоены тем, что поды имеют доступ к этому внешнему IP-адресу, и хотите заблокировать разрешение DNS.

Это не лучший подход к вашей проблеме, у Kubernetes есть несколько способов предоставить сервисы без ущерба для безопасности; для того, что вы хотите, возможно, лучшим вариантом является реализация Ingress .

Как вы можете видеть на диаграмме, Ingress направляет входящий трафик к нужному сервису на основе настроенных правил, изолируя внешний мир от вашего сервиса и пропуская только определенный трафик. Вы также можете реализовать такие функции, как завершение TLS для вашего HTTPS. трафика, и он выполняет балансировку нагрузки по умолчанию.

Более того, если вас больше всего беспокоит безопасность вашего кластера, вы можете взглянуть на Istio Service mesh .

Другие вопросы по тегам