aws 通过eksctl 创建eks

主要需要参考:
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
原文地址:https://www.cnblogs.com/faberbeta/p/14236873.html