第 2 部分:使用 eksctl 创建集群
使用 eksctl 创建集群
eksctl 是创建和管理 EKS 集群最简单的方式。eksctl 使用 CloudFormation 创建 EKS 集群及相关资源。
下图展示了使用 eksctl 创建 EKS 集群的过程:
基础集群创建
要创建最基本形式的 EKS 集群,请运行以下命令:
bash
eksctl create cluster --name my-cluster --region us-west-2此命令会使用以下默认设置创建集群:
- 2 个 m5.large 节点
- 新的 VPC 和子网
- 默认 Amazon Linux 2 AMI
- 最新 Kubernetes 版本
使用配置文件创建集群
对于更复杂的配置,可以使用 YAML 文件定义集群:
yaml
# cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-eks-cluster
region: us-west-2
version: "1.26"
vpc:
id: vpc-12345678
subnets:
private:
us-west-2a:
id: subnet-12345678
us-west-2b:
id: subnet-87654321
public:
us-west-2a:
id: subnet-23456789
us-west-2b:
id: subnet-98765432
managedNodeGroups:
- name: ng-1
instanceType: m5.large
desiredCapacity: 2
minSize: 1
maxSize: 3
privateNetworking: true
volumeSize: 80
volumeType: gp3
iam:
withAddonPolicies:
imageBuilder: true
autoScaler: true
externalDNS: true
certManager: true
appMesh: true
ebs: true
fsx: true
efs: true
albIngress: true
xRay: true
cloudWatch: true
- name: ng-2
instanceType: c5.xlarge
desiredCapacity: 2
privateNetworking: true
spot: true
fargate:
profiles:
- name: fp-default
selectors:
- namespace: default
labels:
env: fargate
- name: fp-kube-system
selectors:
- namespace: kube-system
labels:
k8s-app: kube-dns
cloudWatch:
clusterLogging:
enableTypes: ["api", "audit", "authenticator", "controllerManager", "scheduler"]要使用此配置文件创建集群,请运行以下命令:
bash
eksctl create cluster -f cluster.yaml创建托管节点组
下图展示了 EKS 集群的托管节点组架构:
要向现有集群添加托管节点组,请运行以下命令:
bash
eksctl create nodegroup \
--cluster my-cluster \
--region us-west-2 \
--name my-nodegroup \
--node-type m5.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 5 \
--ssh-access \
--ssh-public-key my-key或者,您可以使用配置文件:
yaml
# nodegroup.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: us-west-2
managedNodeGroups:
- name: my-nodegroup
instanceType: m5.large
desiredCapacity: 3
minSize: 1
maxSize: 5
volumeSize: 80
volumeType: gp3
ssh:
allow: true
publicKeyName: my-keybash
eksctl create nodegroup -f nodegroup.yaml创建 Fargate 配置文件
下图展示了 EKS Fargate 配置文件架构:
要创建 Fargate 配置文件,请运行以下命令:
bash
eksctl create fargateprofile \
--cluster my-cluster \
--region us-west-2 \
--name my-fargate-profile \
--namespace default \
--labels env=fargate或者,您可以使用配置文件:
yaml
# fargate.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: us-west-2
fargate:
profiles:
- name: my-fargate-profile
selectors:
- namespace: default
labels:
env: fargatebash
eksctl create fargateprofile -f fargate.yaml更新集群
您可以使用 eksctl 更新现有集群:
bash
# Upgrade cluster version
eksctl upgrade cluster --name=my-cluster --version=1.27
# Upgrade node group
eksctl upgrade nodegroup --cluster=my-cluster --name=my-nodegroup删除集群
您可以使用 eksctl 删除集群:
bash
eksctl delete cluster --name=my-cluster --region=us-west-2EKS 集群生命周期管理
下图展示了 EKS 集群的整体生命周期管理过程:
测验
要测试您在本章所学的内容,请尝试 EKS 集群创建 - 第 2 部分测验。



