主要需要参考:
https://eksctl.io/
https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/getting-started-eksctl.html
需要安装
- AWS CLI 用于处理 服务的命令行工具,包括 AWSAmazon EKS
- eksctl 一种命令行工具,用于处理 EKS 集群,可自动执行许多单独的任务。
- kubectl 用于处理 Kubernetes 集群的命令行工具。
安装适用于 Linux 的AWS CLI
如果您当前已安装 AWS CLI,请确定您已安装的版本。
aws --version
如果您没有安装版本 1.18.163 或更高版本或版本 2.0.59 或更高版本,请安装 AWS CLI 版本 2。有关其他安装选项或要升级当前安装的版本 2,请参阅在 Linux 上升级 AWS CLI 版本 2。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
如果无法使用 AWS CLI 版本 2,请确保使用以下命令安装了 AWS CLI 版本 1 的最新版本。
pip3 install --upgrade --user awscli
配置 AWS CLI 凭证
eksctl 和 AWS CLI 均要求您在环境中配置 AWS 凭证。 aws configure 命令是设置 安装以供一般使用的最快方法。
$ aws configure
AWS Access Key ID [None]: <AKIAIOSFODNN7EXAMPLE>
AWS Secret Access Key [None]: <wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY>
Default region name [None]: <region-code>
Default output format [None]: <json>
安装 eksctl 使用 eksctl 在 Linux 上安装或升级curl
使用以下命令下载并提取最新版本的 eksctl。
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
将提取的二进制文件移至 /usr/local/bin。
sudo mv /tmp/eksctl /usr/local/bin
使用以下命令测试您的安装是否成功。
eksctl version
安装和配置 kubectl
[在 Linux 上安装 kubectl]
下载与集群所在的区域对应的 Amazon EKS 提供的 kubectl 二进制文件。
区域之外的所有区域。中国
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.8/2020-09-18/bin/linux/amd64/kubectl
北京和宁夏 中国区域。
curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.8/2020-09-18/bin/linux/amd64/kubectl
chmod 755 ./kubectl
sudo mv ./kubectl /usr/local/bin
安装 kubectl 后,可以使用以下命令验证其版本:
kubectl version --short --client
使用eksctl创建eks
在https://eksctl.io/查看 eksctl命令
以及https://eksctl.io/usage/schema/#managedNodeGroups-maxSize
[root@localhost ~]# cat cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: faberbeta
region: ap-east-1
version: "1.18"
managedNodeGroups:
- name: nodegroup01
instanceType: m5.large
minSize: 3
maxSize: 6
desiredCapacity: 3
volumeSize: 30
ssh:
allow: true
publicKeyPath: ~/.ssh/id_rsa.pub
labels: {role: worker}
tags:
nodegroup-role: worker
iam:
withAddonPolicies:
imageBuilder: true
autoScaler: true
externalDNS: true
certManager: true
appMesh: true
appMeshPreview: true
ebs: true
fsx: true
efs: true
albIngress: true
xRay: true
cloudWatch: true
[root@localhost ~]# eksctl create cluster -f cluster.yaml
因为eks cluster和nodegroup是分别创建的,所以可以只创建eks 再手动创建nodegroup
eksctl create cluster --config-file=<path> --without-nodegroup
先删除nodegroup
eksctl delete nodegroup --cluster=faberbeta --name=nodegroup01
删除eks集群
eksctl delete cluster --name=faberbeta