如何在创建NLB时为AWS EKS的ingress-nginx添加安全组?
解决AWS EKS ingress-nginx控制器创建NLB时关联安全组的配置方法
要让ingress-nginx控制器在创建外部NLB时自动关联指定安全组,需在external-controller.yaml的控制器Service配置中添加特定注解,具体操作如下:
定位到文件中定义ingress-nginx控制器Service的段落,在
metadata.annotations下添加service.beta.kubernetes.io/aws-load-balancer-security-groups注解,值为你需要关联的安全组ID(多个用逗号分隔)。示例配置如下:apiVersion: v1 kind: Service metadata: name: ingress-nginx-controller namespace: ingress-nginx annotations: # 保留已有的NLB相关注解 service.beta.kubernetes.io/aws-load-balancer-type: external service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip # 添加安全组关联注解 service.beta.kubernetes.io/aws-load-balancer-security-groups: "sg-123456789,sg-987654321" spec: type: LoadBalancer # 其他Service配置项...替换示例中的
sg-123456789和sg-987654321为你实际的安全组ID,确保这些安全组已提前创建并配置了合适的入站规则(比如允许80、443端口的公网访问)。修改完成后,重新应用配置文件:
kubectl apply -f external-controller.yaml
如果之前已创建无安全组的NLB,由于AWS NLB创建后无法修改安全组,需先删除现有控制器Service,再重新应用配置,让Kubernetes创建关联了指定安全组的新NLB:
kubectl delete service ingress-nginx-controller -n ingress-nginx kubectl apply -f external-controller.yaml
内容的提问来源于stack exchange,提问作者nabello
相关产品推荐
相关产品推荐

