AWS EKS 集群网络初始化配置
目录
支持概览前提条件配置步骤部署 AWS Load Balancer Controller创建 Ingress 和 LoadBalancer 服务相关操作测试 AWS CLI 和 eksctl 安装获取 ACCOUNT_IDKubeconfig 配置文件为子网添加标签创建证书支持概览
前提条件
-
准备两个带有 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 是创建集群的用户的 Account ID,REGION 是集群地域,CLUSTER_NAME 是集群名称。
-
更新并验证 Kubeconfig 配置文件。
配置步骤
部署 AWS Load Balancer Controller
注意:有关部署 AWS Load Balancer Controller 的详细信息,请参见 provider guide。
配置 OIDC Provider
Kubernetes 集群使用 OpenID Connect (OIDC) 进行身份管理,并关联一个 OIDC issuer URL。要在集群中启用 AWS Identity 并允许 Service Accounts 使用 IAM 角色,请创建一个与集群 OIDC issuer URL 关联的 IAM OIDC Provider。
在 eksctl 中执行以下命令以配置 OIDC Provider:
配置 Service Account执行以下命令以创建一个 IAM policy,并创建一个名为 aws-load-balancer-controller 的 Service Account,将其与一个 IAM role 关联:
将 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 和 LoadBalancer 服务,也可以根据需要选择其中一种。
创建 Ingress
-
在 Container Platform 中,点击左侧导航栏的 Network > Ingress。
-
点击 Create Ingress,并在 Ingress Class 中选择 EKS Ingress Class。
-
选择 Protocol。默认值为 HTTP。对于 HTTPS,请先 创建证书 并选择它。
-
切换到 YAML,并添加以下 annotations。有关详细信息,请参见 annotation reference:
-
点击 Create。
创建 LoadBalancer Service
-
在 Container Platform 中,点击左侧导航栏的 Network > Services。
-
点击 Create Service,并在 External Access 中选择 LoadBalancer。
-
展开 annotations,并根据需要填写 LoadBalancer service annotations。
-
点击 Create。
相关操作
测试 AWS CLI 和 eksctl 安装
-
执行以下命令。如果返回集群列表,则说明 AWS CLI 安装正确:
-
执行以下命令。如果返回集群列表,则说明 eksctl 安装正确:
获取 ACCOUNT_ID
执行 aws sts get-caller-identity 以获取 ACCOUNT_ID。返回结果中的 651168850570 即为 ACCOUNT_ID:
Kubeconfig 配置文件
-
执行以下命令,更新指定地域的 Kubeconfig 文件:
-
执行以下命令验证 Kubeconfig 文件。如果正常返回信息,则表示配置正确:
为子网添加标签
-
执行以下命令获取集群子网:
-
执行以下命令获取子网详情:
-
执行以下命令为子网添加标签。请将
<subnet-id>替换为实际值。参见 Subnet auto-discovery:-
为子网添加
kubernetes.io/role/elb标签: -
为共享子网添加
kubernetes.io/cluster/<CLUSTER_NAME>: shared标签:
-
创建证书
使用 HTTPS 协议时,请提前将 HTTPS 证书凭证保存为 Secret(TLS 类型)。
-
在 Container Platform 中,点击左侧导航栏的 Configuration > Secrets。
-
点击 Create Secret。
-
选择 TLS 类型,并根据需要导入或填写 Certificate 和 Private Key。
-
点击 Create。