| 功能 | 支持状态 | 需求 |
|---|---|---|
| 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 身份并允许为 Service Account 使用 IAM 角色,需要创建一个与集群 OIDC 发行者 URL 关联的 IAM OIDC Provider。
在 eksctl 中执行以下命令配置 OIDC Provider:
执行以下命令创建 IAM 策略,并创建名为 aws-load-balancer-controller 的 Service Account,将其与 IAM 角色关联:
将 AWS Load Balancer Controller 部署到集群
在 eksctl 中执行以下命令部署 AWS Load Balancer Controller:
添加 eks-charts 仓库:
更新本地仓库:
将 AWS Load Balancer Controller Helm Chart 部署到集群:
注意:aws-load-balancer-controller 是在配置 Service Account中创建的 Service Account。
您可以同时创建 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 类型,按需导入或填写 证书 和 私钥。
点击 创建。