AWS运维部署实践--给EKS集群安装Ingress-Controller

💡 原文中文,约3700字,阅读约需9分钟。
📝

内容提要

创建集群后,需要配置 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。

🏷️

标签

➡️

继续阅读