AWS运维部署实践--给EKS集群安装Ingress-Controller
内容提要
创建集群后,需要配置 ingress-controller 以实现外部访问。首先创建 OIDC 并关联 IAM 角色,然后用 eksctl 创建服务账户。注意可能会遇到 eksctl 的 bug,可以通过修改名称解决。接着添加 helm 源并安装 ingress-controller,确保角色一致。若遇到错误,可以通过指定区域和 VPC 解决。安装成功后即可部署应用并配置 ingress。
延伸解读
OIDC与IAM角色的关联
在配置 ingress-controller 时,OIDC 和 IAM 角色的关联至关重要。确保在创建 OIDC 时指定正确的集群名称,以避免后续的权限问题。错误的配置可能导致无法正常访问集群,影响应用的外部访问能力。
处理 eksctl 的潜在问题
使用 eksctl 创建服务账户时,可能会遇到无法找到服务账户的错误。这通常是由于 eksctl 的 bug 导致的。建议在创建时修改服务账户名称,以确保后续步骤能够顺利进行。
Helm 安装注意事项
在使用 Helm 安装 ingress-controller 时,确保服务账户名称与之前创建的一致。此外,默认副本数为 2,生产环境中可根据需求调整,以确保高可用性。
错误排查与解决
如果在部署后 ingress-controller 状态不正常,可以通过查看日志进行排查。常见错误包括无法获取 VPC ID,建议在安装时指定区域和 VPC,以避免此类问题。
Q&A
如何为EKS集群配置ingress-controller以实现外部访问?
首先创建OIDC并关联IAM角色,然后使用eksctl创建服务账户,接着添加helm源并安装ingress-controller,确保角色一致。
在创建OIDC时需要注意什么?
需要指定集群名字,以确保OIDC正确关联到相应的集群。
如果在使用eksctl创建服务账户时遇到bug,该如何解决?
可以通过修改服务账户的名称来解决,例如将名称改为aws-load-balancer-controller-new。
安装ingress-controller时需要确保哪些角色一致?
需要确保在创建服务账户时关联的IAM角色与安装ingress-controller时使用的角色一致。
如果ingress-controller安装后状态不正常,应该如何处理?
可以通过查看日志来分析问题,使用命令k logs -f -n kube-system aws-load-balancer-controller-<pod-name>。
在安装ingress-controller时如何指定区域和VPC?
在安装命令中添加参数--set region=<region>和--set vpcId=<vpc-id>来指定区域和VPC。