本节我们将使用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
--set serviceAccount.create=false
--set defaultProvisioner.create=false
。下一节我们将设置默认的Provisioner配置,来帮我们更好的理解Karpenter ProvisionerKarpenter使用 Custom Resource Definition(CRD) 来声明它的配置,用这种方式简化了Karpenter的配置。
使用以下命令检查karpenter安装完成,看到有 karpenter-controller
和 karpenter-webhook
pod在运行:
kubectl get pods --namespace karpenter
当然可以增加karpenter的replica数量来保证高可用,这样Karpenter会选出主controller负责后面的自动扩容等操作