AWS创建EKS集群(下篇)
创建集群服务角色
03创建密钥对
在AMI控制面板的左侧菜单栏中找到“密钥对”,在密钥对控制面板中,点击“创建密钥对”按钮。创建密钥对所需配置信息如下表所示:
名称 | 密钥对类型 | 私钥文件格式 |
AWS_LIVE_SecretKey | RSA | .pem |
在密钥对配置中填写“名称”、“密钥对类型”、“私钥文件格式”,具体信息请见上表。填写完成后点击“创建密钥对”,完成密钥对的创建。
导出该密钥对,用于远程连接。
04创建集群
点击https://cn-northwest-1.console.amazonaws.cn/eks/home 链接进入EKS控制面板创建集群,创建集群所需配置信息如下表所示:
集群名称 | Kubernetes 版本 | 集群服务角色 |
live_k8s | 1.23 | EKSClusterRole |
填写“集群名称”后,点击“下一步”按钮。
在配置集群界面,填写“名称”、“Kubernetes 版本”、“集群服务角色”,具体信息如上表所示。根据下表信息填写“标签”,填写完成后点击“下一步”按钮。
标签 | |
键 | 值 |
Createdby | JIN |
Env | prod |
Name | live-k8s |
Project | live |
在联网配置中,填写“VPC”、“子网”、“安全组”等信息,具体信息及配置如下图、下表所示。
VPC名称 | 子网 | 集群安全组 | 服务的 IPv4 地址范围 | 集群端点访问 |
VPC-SG-R&I | subnet-R&i-private-EKS cluster-A | eks-cluster-sg-live-k8s | 10.100.0.0/16 | 公有和私有 |
subnet-R&i-private-EKS cluster-C | ||||
subnet-R&i-private-EKS cluster-B |
在配置日志记录中,按需求进行配置,我这里暂时不配置日志,直接点击“下一个”按钮。
在选择插件中,选中如下三个插件,点击“下一步”按钮。
在配置选定的插件设置中,直接点击“下一个”按钮。
检查所有配置,都没有问题后,点击“创建”按钮,完成集群创建。
05创建身份供应商
在创建完成后的集群详情界面中,找到“概述”,复制“OpenID Connect 提供商 URL”,用于下面的操作。
在IAM控制台界面的左侧菜单栏中,找到“身份提供商”,点击“添加提供商”按钮。
具体配置信息请见下图和下表所示。要注意“提供商 URL”,即为刚复制的“OpenID Connect 提供商 URL”。
提供商类型 | 提供商 URL | 受众 | 标签 | |
键 | 值 | |||
OpenID Connect | EKS中的OpenID Connect 提供商 URL | sts.amazonaws.com | Createdby | JIN |
Env | prod | |||
Name | live-k8s | |||
Project | live |
06创建计算节点组
在刚创建的EKS详情页中,找到“计算”,点击“创建节点组”按钮。创建节点组所需配置信息如下表所示:
节点组名称 | 节点 IAM 角色 | SSH 密钥对 | 标签 | |
键 | 值 | |||
live-k8s-nodegroup | AWS-EKS-LIVE-NODEGROUP-ROLE | AWS_LIVE_SecretKey | Project | live |
Createdby | JIN | |||
Env | prod | |||
Name | live-k8s |
在配置节点组中,填写“名称”、“节点组IAM角色”、“标签”,具体信息请见上表。填写完成后,点击“下一个”按钮。
在设置计算和扩展配置中,根据下图和下表所示填写信息。填写完成后,点击“下一个”按钮。
AMI 类型 | 容量类型 | 实例类型 | 磁盘大小 |
Amazon Linux 2 (AL2_x86_64) | On-Demand | c5.xlarge | 300GiB |
在指定联网中,选择“配置对节点的SSH访问权限”。
会弹出一个警告,点击“启用”按钮。
根据下图及下表进行配置,配置完成后点击“下一个”按钮。
子网 | SSH 密钥对 |
subnet-R&i-private-EKS cluster-A | AWS_LIVE_SecretKey |
subnet-R&i-private-EKS cluster-C | |
subnet-R&i-private-EKS cluster-B |
检查所有配置,完成后点击“创建”按钮,完成节点组的创建。
大约等待30分钟后,可以看到“计算”页面已经创建了4台节点,并且状态为“已就绪”。
插件的状态也都为活动,则说明节点创建成功。
07创建跳板机
- 创建角色
创建跳板机EC2的角色,具体配置如下图下表所示。
角色名称 | 权限策略 |
EC2_Full_access | AWSCloud9SSMInstanceProfile |
AWSResourceAccessManagerFullAccess | |
AmazonEC2FullAccess | |
AmazonEKSClusterPolicy | |
AmazonSSMManagedInstanceCore | |
AmazonSSMPatchAssociation | |
CloudWatchFullAccess |
- 创建安全组
根据下表信息,创建安全组。
安全组名称 | 出站规则 | ||||
live_vpn | 类型 | 协议 | 端口范围 | 源 | 描述 |
SSH | TCP | 22 | x.x.x.x/x | 特定ip | |
所有流量 | 全部 | 全部 | 10.100.0.0/16 | EKS SERVICE | |
所有流量 | 全部 | 全部 | eks-cluster-sg-live-k8s | – | |
入站规则 | |||||
类型 | 协议 | 端口范围 | 目标 | 描述 | |
所有流量IPv4 | 全部 | 全部 | 0.0.0.0/0 | – |
- 创建弹性IP地址
- 创建网络接口
创建网络接口,子网为“subnet-R&i-public-ECS-A”,具体操作如下图所示。
为刚创建的网络接口绑定弹性IP地址,具体操作如下图所示。
- 创建EC2
在EC2控制面板的左侧菜单栏中找到“实例”,在实例控制面板中,点击“启动新实例”按钮。创建新实例所需配置信息如下表所示:
名称 | AMI名称 | 实例类型 | 密钥对名称 | vpc名称 |
LIVE_VPN | amzn2-ami-kernel-5.10-hvm-2.0.20221004.0-x86_64-gp2 | c5.xlarge | AWS_LIVE_SecretKey | VPC-SG-R&I |
子网名称 | 安全组 | IAM | 存储大小 | 存储类型 |
subnet-R&i-public-ECS-A | live_vpn | EC2_Full_access | 100 GiB | gp3 |
填写名称,点击“浏览其他AMI”按钮,选择我们需要的AMI。
在输入框中,填写我们需要的AMI,点击“社区AMI(1)”,选中该AMI。
选择我们需要的“实例类型”和“密钥对”。
如下图所示,进行网络配置。
点开“高级网络配置”,在“网络接口”处选择我们刚创建的网络接口。
根据需求配置存储。
选中刚创建的角色,完成配置后,点击“启动实例”按钮,完成EC2的创建。
创建完成后,如下图所示。
- 安装必要软件
在跳板机EC2中运行下面的命令,安装必要的软件。
## Installing pip
if ! hash python pip unzip jq yq &> /dev/null; then
if [ -f /usr/bin/yum ]; then sudo yum -y -q install python-pip unzip jq && sudo pip install yq; fi
if [ -f /usr/bin/apt ]; then sudo apt update && sudo apt install --yes python-pip unzip jq && sudo pip install yq; fi
fi
## Installing awscli
if ! command -v aws &> /dev/null; then
curl --silent --location "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -q awscliv2.zip
sudo ./aws/install --update
rm -fr awscliv2* aws*/
fi
## Installing eksctl
if ! command -v eksctl &> /dev/null; then
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
source <(eksctl completion bash) 2>/dev/null
fi
## Installing aws-iam-authenticator
if ! command -v aws-iam-authenticator &> /dev/null; then
curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.23.7/2022-06-29/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
mkdir -p $HOME/.bin && mv ./aws-iam-authenticator $HOME/.bin/aws-iam-authenticator && export PATH=$HOME/.bin:$PATH
echo 'export PATH=$HOME/.bin:$PATH' >> ~/.bashrc
fi
## Installaing kubectl
if ! command -v kubectl &> /dev/null; then
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.23.7/2022-06-29/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
- 生成kubeconfig
为当前管理用户,创建访问密钥。
在跳板机EC2中配置aws-cli ~/.aws/config。
aws configure
AWS Access Key ID [None]: #这里填写AK
AWS Secret Access Key [None]: #这里填写SK
Default region name [None]: cn-northwest-1 #填写地域
Default output format [None]: json
执行下面命令查看配置。
aws sts get-caller-identity
执行下面命令,生成kubeconf。
aws eks --region cn-northwest-1 update-kubeconfig --name live_k8s
小结
至此,AWS创建EKS集群完成,且可以远程登录跳板机,并使用跳板机连接EKS集群。
文章转载自公众号:新钛云服