通过Helm Chart安装Nginx Ingress Controller实现AWS ALB创建问题咨询
解决方案
方案1:修改现有Service直接切换为应用负载均衡器(ALB)
执行以下命令编辑当前Ingress Controller的服务配置:
kubectl edit svc sony-release-ingress-nginx-controller -n sony-ingress
在metadata.annotations配置段中添加以下注解:
metadata: annotations: # 声明负载均衡器类型为ALB service.beta.kubernetes.io/aws-load-balancer-type: "alb" # 公网可访问的ALB配置,如需内网ALB可将值改为internal service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing" service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp" # 指定443端口为SSL端口,可按需调整 service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
保存退出后,AWS云服务商侧会自动销毁原有经典负载均衡器,自动创建新的ALB。等待3-5分钟后执行kubectl get svc -n sony-ingress即可查看新的ALB访问地址。
方案2:重新安装Helm Release时直接指定ALB配置
如果需要干净部署,可先卸载当前已安装的release,再通过带ALB参数的命令重新安装:
- 卸载现有release
helm uninstall sony-release -n sony-ingress
- 执行带ALB配置的安装命令
helm install sony-release ingress-nginx/ingress-nginx \ --namespace sony-ingress \ --set controller.replicaCount=2 \ --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set controller.service.annotations."service\.beta\.kubernetes\.io/aws-load-balancer-type"="alb" \ --set controller.service.annotations."service\.beta\.kubernetes\.io/aws-load-balancer-scheme"="internet-facing"
验证配置
安装或修改完成后,执行kubectl get all -n sony-ingress查看Service的EXTERNAL-IP字段,即可获取ALB的访问地址,同时可登录AWS控制台的负载均衡器页面确认资源类型为应用负载均衡器。
内容的提问来源于stack exchange,提问作者Gowmi
相关产品推荐
相关产品推荐

