| 功能 | 支持状态 | 需求 |
|---|---|---|
| LoadBalancer Service | 支持 | 可选地部署 AWS Load Balancer Controller。未部署该控制器时,LoadBalancer 功能受限。 |
| Ingress | 支持 | 可选地部署 AWS Load Balancer Controller。可选启用 Ingress Class 功能(启用后,创建 ingress 时可通过表单界面手动选择 ingress class)。 |
准备两个带有 kubernetes.io/role/elb 标签的子网。对于共享子网,添加 kubernetes.io/cluster/<cluster-name>: shared 标签。详见为子网添加标签。
如果已创建 EKS 集群,请导入 Amazon EKS 集群。
在部署 AWS Load Balancer Controller 之前,确保已安装 kubectl、Helm、AWS CLI 和 eksctl 工具。
注意:安装工具后,使用创建集群的用户通过 AWS CLI 配置登录信息,并测试 AWS CLI 和 eksctl 工具是否正确安装。
预先获取 ACCOUNT_ID、REGION 和 CLUSTER_NAME,并在文档中将 <ACCOUNT_ID>、<REGION> 和 <CLUSTER_NAME> 替换为实际值。
注意:ACCOUNT_ID 是创建集群用户的账户 ID,REGION 是集群所在地域,CLUSTER_NAME 是集群名称。
更新并验证 Kubeconfig 配置文件。
注意:有关部署 AWS Load Balancer Controller 的详细信息,请参见官方文档。
配置 OIDC Provider
Kubernetes 集群使用 OpenID Connect (OIDC) 进行身份管理,并关联一个 OIDC 发行者 URL。为启用集群中的 AWS 身份并允许为服务账户配置 IAM 角色,需要创建一个与集群 OIDC 发行者 URL 关联的 IAM OIDC Provider。
在 eksctl 中执行以下命令配置 OIDC Provider:
执行以下命令创建 IAM 策略,并创建名为 aws-load-balancer-controller 的服务账户,将其与 IAM 角色关联:
将 AWS Load Balancer Controller 部署到集群
在 eksctl 中执行以下命令部署 AWS Load Balancer Controller:
添加 eks-charts 仓库:
更新本地仓库:
将 AWS Load Balancer Controller Helm Chart 部署到集群:
注意:aws-load-balancer-controller 是在配置服务账户中创建的服务账户。
您可以同时创建 ingress 和 LoadBalancer 服务,也可以根据需求选择其中之一。
创建 Ingress
在 容器平台,点击左侧导航的 网络 > Ingress。
点击 创建 Ingress,并为 Ingress Class 选择 EKS Ingress Class。
选择 协议。默认是 HTTP。若选择 HTTPS,请先创建证书并选择该证书。
切换到 YAML,添加以下注解。详情见注解文档:
点击 创建。
创建 LoadBalancer 服务
在 容器平台,点击左侧导航的 网络 > 服务。
点击 创建服务,并为 外部访问 选择 LoadBalancer。
展开 annotations,根据需要填写LoadBalancer 服务注解。
点击 创建。
执行以下命令,若返回集群列表,说明 AWS CLI 安装正确:
执行以下命令,若返回集群列表,说明 eksctl 安装正确:
执行 aws sts get-caller-identity 获取 ACCOUNT_ID。响应中的 651168850570 即为 ACCOUNT_ID:
执行以下命令更新指定地域的 Kubeconfig 文件:
执行以下命令验证 Kubeconfig 文件,若正常返回信息,说明配置正确:
执行以下命令获取集群子网:
执行以下命令获取子网详情:
执行以下命令为子网添加标签。将 <subnet-id> 替换为实际值。详见子网自动发现:
为子网添加 kubernetes.io/role/elb 标签:
为共享子网添加 kubernetes.io/cluster/<CLUSTER_NAME>: shared 标签:
使用 HTTPS 协议时,请提前将 HTTPS 证书凭据保存为 Secret(TLS 类型)。
在 容器平台,点击左侧导航的 配置 > Secrets。
点击 创建 Secret。
选择 TLS 类型,按需导入或填写 证书 和 私钥。
点击 创建。