Karpenter通过Provisioner CRD
来进行配置,一个EKS集群可以有多个Provisoner,这里我们只创建一个默认的Provisoner来演示。
运行以下命令:
cat <<EOF | kubectl apply -f -
apiVersion: karpenter.sh/v1alpha5
kind: Provisioner
metadata:
name: default
spec:
labels:
intent: apps
provider:
instanceProfile: KarpenterNodeInstanceProfile-${CLUSTER_NAME}
tags:
accountingEC2Tag: KarpenterDevEnvironmentEC2
ttlSecondsAfterEmpty: 30
EOF
一些参数说明如下:
topology.kubernetes.io/zone=us-east-1c
,则Karpenter创建出来的机器都会在这个az;可以设置 karpenter.sh/capacity-type
来指定Karpenter拉起spot机器,如果不设置这个参数,默认是ondemand类型。所有参数的说明,参考文档: https://karpenter.sh/v0.10.1/aws/provisioning/