我有一个 AWS EKS 版本1.26集群,并托管了一个Java应用程序。我通过运行 ingress-nginx 控制器版本4.5.2来管理入口配置。通过 ingress-nginx,我使用以下配置 yaml 文件和 helm 命令配置了一个外部NLB:
外部控制器.yaml
defaultBackend:
nodeSelector:
kubernetes.io/os: "linux"
controller:
replicaCount: 2
nodeSelector:
kubernetes.io/os: "linux"
ingressClassResource:
name: nginx-ext
enabled: true
default: false
controllerValue: "example.com/ingress-nginx-ext"
ingressClass: nginx-ext
ingressClassByName: true
service:
# Enable the external LB
external:
enabled: true
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "false"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
service.beta.kubernetes.io/aws-load-balancer-type: nlb
字符串
Helm命令
helm install "ext-nginx-ingress-controller" ingress-nginx/ingress-nginx \
--namespace "ext-ingress" \
--version 4.5.2 \
-f "external-controller.yaml"
型
执行这个helm命令会创建一个面向互联网的NLB,这正是我想要的。也就是说,我不喜欢的是,在AWS控制台中,如果我检查我刚刚创建的这个NLB下的 Security 选项卡,我会看到以下消息:
没有关联的安全组
由于此负载平衡器是在没有安全组的情况下创建的,因此无法更改这些设置。若要使用安全组,请确保在创建负载平衡器时指定了安全组。
需要向external-controller.yaml添加什么内容才能在创建时获取与我的NLB关联的安全组?
任何帮助都很感激,谢谢。
1条答案
按热度按时间e4yzc0pl1#
这个注解呢?
字符串
引用AWS官方页面:
控制器允许您通过名为
service.beta.kubernetes.io/aws-load-balancer-security-groups
的Kubernetes注解指定现有的安全组。将此注解添加到Service时,控制器将附加注解引用的安全组。这有效地允许您的安全团队管理分配给负载均衡器的安全组...
-- Aws.amazon.com: Blogs: Containers: Network load balancer now support security groups
其他资源: