主要需要參考:
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