- 一、工具安装
- 1.1 安装kubectl
- 1.2 安装eksctl
- 1.3 安装Helm(可选)
- 二、命令式创建
- 2.1 创建Amazon EC2 Linux托管节点集群
- 2.2 创建Fargate Linux节点
- 2.3 查看资源
- 2.4 删除集群
- 三、配置文件(yaml)创建
- 3.1 不选择VPC
- 3.2 选择现有VPC
- 3.3 运行创建命令
- 3.4 删除集群
- 参考
在 Linux 上安装 kubectl
-
从 Amazon S3 为集群的 Kubernetes 版本下载 Amazon EKS 提供的 kubectl 二进制文件。要下载 Arm 版本,请先将 amd64 更改为 arm64,然后再运行相应命令。
-
Kubernetes 1.21:
curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
-
Kubernetes 1.20:
curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.20.4/2021-04-12/bin/linux/amd64/kubectl
-
Kubernetes 1.19:
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/kubectl
-
Kubernetes 1.18:
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
-
-
将执行权限应用于二进制文件。
chmod +x ./kubectl
-
将二进制文件复制到您的 PATH 中的文件夹。如果您已经安装了某个版本的 kubectl,建议您创建一个 $HOME/bin/kubectl 并确保 $HOME/bin 先出现在您的 $PATH 中。
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
-
(可选) 将 $HOME/bin 路径添加到 shell 初始化文件,以便在打开 shell 时配置此路径。
注意
这一步假设您使用 Bash Shell;如果使用其他 Shell,请将命令更改为使用您的特定 Shell 的初始化文件。
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
-
安装 kubectl 后,可以使用以下命令验证其版本:
kubectl version --short --client
使用 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
-
如果您将 macOS 与 Homebrew 配合使用,请使用以下命令安装二进制文件。
brew install helm
-
如果您将 Windows 与 Chocolatey 配合使用,请使用以下命令安装二进制文件。
choco install kubernetes-helm
-
如果您正在使用 Linux,请使用以下命令来安装二进制文件。
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh
eksctl create cluster --name my-cluster --region us-west-2 --with-oidc --ssh-access --ssh-public-key2.2 创建Fargate Linux节点--managed
eksctl create cluster --name my-cluster --region us-west-2 --fargate2.3 查看资源
kubectl get nodes -o wide2.4 删除集群
eksctl delete cluster --name my-cluster --region us-west-2三、配置文件(yaml)创建 3.1 不选择VPC
nodeGroups是非托管的节点组,managedNodeGroups为EKS托管节点组,托管节点组能够在控制台显示。
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: basic-cluster
region: eu-north-1
nodeGroups:
- name: ng-1
instanceType: m5.large
desiredCapacity: 10
volumeSize: 80
ssh:
allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key
- name: ng-2
instanceType: m5.xlarge
desiredCapacity: 2
volumeSize: 100
ssh:
publicKeyPath: ~/.ssh/ec2_id_rsa.pub
managedNodeGroups:
- name: ng-1-workers
labels: { role: workers }
instanceType: m5.xlarge
desiredCapacity: 10
volumeSize: 80
privateNetworking: true
- name: ng-2-builders
labels: { role: builders }
instanceType: m5.2xlarge
desiredCapacity: 2
volumeSize: 100
privateNetworking: true
3.2 选择现有VPC
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: cluster-in-existing-vpc
region: eu-north-1
vpc:
subnets:
private:
eu-north-1a: { id: subnet-0ff156e0c4a6d300c }
eu-north-1b: { id: subnet-0549cdab573695c03 }
eu-north-1c: { id: subnet-0426fb4a607393184 }
nodeGroups:
- name: ng-1-workers
labels: { role: workers }
instanceType: m5.xlarge
desiredCapacity: 10
privateNetworking: true
- name: ng-2-builders
labels: { role: builders }
instanceType: m5.2xlarge
desiredCapacity: 2
privateNetworking: true
iam:
withAddonPolicies:
imageBuilder: true
3.3 运行创建命令
eksctl create cluster -f cluster.yaml3.4 删除集群
eksctl delete cluster -f cluster.yaml参考
eksctl:https://eksctl.io/introduction/
AWS EKS文档: https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/what-is-eks.html



