#amazon-eks #aws-load-balancer #kubernetes-service #internal-load-balancer
Вопрос:
У меня есть кластер EKS, работающий в одном VPC, и некоторые экземпляры ec2 на устаревшем VPC, между ними есть 2 VPC.
У меня есть приложение в кластере EKS, которое должно быть доступно изнутри кластера, а также экземплярам ec2 на устаревшем VPC.
Нужно ли мне создавать 2 службы для приложения — один вид: ClusterIP для связи в кластере и один тип: балансировщик нагрузки для внешней связи VPC:
annotations: service.beta.kubernetes.io/aws-load-balancer-type: external service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
ИЛИ — я могу создать только один вид службы: nodeport/ClusterIP/LB внутренний как для внутрикластерной, так и для внешней связи VPC?
Каков предпочтительный способ. Спасибо,
Ответ №1:
Do I need to create 2 services for the app...create only one service kind: nodeport/clusterIP/LB internal for both in-cluster and external VPC communication?
В этом случае вам нужна только одна услуга. Либо типизированный порт узла, где вы получаете IP-адрес кластера (для подключения в сети кластера k8s); плюс порт, доступный на рабочем узле EC2. Типизированный балансировщик нагрузки также предоставляет вам IP-адрес кластера; плюс конечная точка LB. По мере того как рабочие узлы приходят и уходят, LB дает вам больше гибкости, поскольку вы будете иметь дело только с известной конечной точкой.