安装Karpenter

本节我们将使用Helm来安装Karpenter

运行以下命令来安装:

helm repo add karpenter https://charts.karpenter.sh
helm repo update
#  v0.4.3与kubernetes 1.19版本兼容;v0.5.x只支持1.2x版本
helm upgrade --install karpenter karpenter/karpenter --namespace karpenter \
  --create-namespace --set serviceAccount.create=false --version 0.4.3 \
  --set controller.clusterName=${CLUSTER_NAME} \
  --set controller.clusterEndpoint=$(aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.endpoint" --output json) \
  --set defaultProvisioner.create=false \
  --wait # for the defaulting webhook to install before creating a Provisioner
  • 由于上一节创建好了service account,所以设置为 --set serviceAccount.create=false
  • 这里设置 --set defaultProvisioner.create=false。下一节我们将设置默认的Provisioner配置,来帮我们更好的理解Karpenter Provisioner

Karpenter使用 Custom Resource Definition(CRD) 来声明它的配置,用这种方式简化了Karpenter的配置。


使用以下命令检查karpenter安装完成,看到有 karpenter-controllerkarpenter-webhook pod在运行:

kubectl get pods --namespace karpenter

image-20220530101506454

当然可以增加karpenter的replica数量来保证高可用,这样Karpenter会选出主controller负责后面的自动扩容等操作