-
Hi, # cluster.yaml
# A cluster
# - with 1 managed nodegroups and Karpenter
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: prod-cluster
region: eu-west-2
tags:
Project: foo
karpenter.sh/discovery: prod-cluster
version: "1.21"
# cluster AZs must be set explicitly for single AZ nodegroup example to work
availabilityZones: ["eu-west-2a", "eu-west-2b", "eu-west-2c"]
karpenter:
version: '0.6.0'
createServiceAccount: true
iam:
withOIDC: true
managedNodeGroups:
- name: medium-mng-1
instanceType: m5.large
minSize: 1
maxSize: 10
desiredCapacity: 1
volumeSize: 100
volumeType: gp3
availabilityZones: ["eu-west-2b"]
ssh:
enableSsm: true
labels: { nodegroup-func: karpenter-nodes}
tags:
nodegroup-func: karpenter-nodes
iam:
withAddonPolicies:
externalDNS: true
certManager: true
ebs: true
#fsx: true
efs: true
# Cloudwatch logging
cloudWatch:
clusterLogging:
enableTypes: ["audit", "authenticator", "controllerManager"]
logRetentionInDays: 60
This all deploys the eks cluster fine, Karpenter deployed and seemingly configured etc. However, testing the pause container / inflate example: https://karpenter.sh/v0.6.0/getting-started/#provisioner 2022-02-04T22:24:55.322Z ERROR controller.provisioning Could not launch node, launching instances, getting launch template configs, getting launch templates, neither spec.provider.instanceProfile nor --aws-default-instance-profile is specified {"commit": "62c4546", "provisioner": "default"} Sounds like Karpenter may not be discovering the instance profile
But using eksctl cluster config the InstanceProfile ends up with |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Turns out a Default Instance Profile is not set. And the docs https://eksctl.io/usage/eksctl-karpenter/ are a little misleading to say:
So providing a Provisioner also see #4745 |
Beta Was this translation helpful? Give feedback.
Turns out a Default Instance Profile is not set. And the docs https://eksctl.io/usage/eksctl-karpenter/ are a little misleading to say:
So providing a Provisioner
spec.provider.instanceProfile
but remembering to use the eksctl- prefixed name e.g.eksctl-KarpenterNodeInstanceProfile-${CLUSTER_NAME}
, will solve this.also see #4745