Если ваш кластер настроен так, что рабочие узлы доступны напрямую из-за пределов кластера, тогда все, что вы указали в качестве службы типа NodePort, будет также доступно. В частности, это означает, что http://any-node.k8s.example.com:32345/
может достигнуть вашей серверной службы, минуя все элементы управления, которые вы установили на входном уровне. Как правило, вы этого не хотите.
Разумный подход (и, вероятно, то, что поощряет ваш линтер) состоит в том, чтобы использовать службы типа NodePort или LoadBalancer только для входной службы. Все остальное должно регистрироваться в этой входной службе (используя собственный объект входа Kubernetes, или Istio VirtualService, или ...), но иметь службы типа ClusterIP для внутрикластерного доступа.
+------------+ NP +---------+ CIP +-------------+
---> | (any node) | ---> | ingress | ---> | application |
+------------+ +---------+ +-------------+
|__________________________^
a NodePort application service would allow this path
(bypassing the ingress)