Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EKS Auto Mode Custom Node Pool Blueprint #2059

Open
emolitor opened this issue Jan 11, 2025 · 2 comments · May be fixed by #2085
Open

EKS Auto Mode Custom Node Pool Blueprint #2059

emolitor opened this issue Jan 11, 2025 · 2 comments · May be fixed by #2085
Labels
enhancement New feature or request

Comments

@emolitor
Copy link

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

What is the outcome that you are trying to reach?

An example blueprint for creating an EKS Auto Mode Cluster with a Custom Node Pool. For instance showing how to enable Graviton and/or spot instances. The example should not use either of the built in node pools (general-purpose or system) as to show the necessary steps for manually creating the EC2 access-entry (which is only automatically created when using the built in node pools).

@askulkarni2 askulkarni2 added the enhancement New feature or request label Jan 15, 2025
@MDBeudekerCN
Copy link

MDBeudekerCN commented Mar 3, 2025

I now have something like this but I can't get it to work:

Default Nodeclass (with added tags)

apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
  name: default-nc
spec:
  ephemeralStorage:
    iops: 3000
    size: 80Gi
    throughput: 125
  networkPolicy: DefaultAllow
  networkPolicyEventLogs: Disabled
  role: eks-auto # change to the role created by eks auto
  securityGroupSelectorTerms: # make sure you tag your securitygroups
  - tags:
      cluster_securitygroup: cluster-sg
  - tags:
      node_securitygroup: node-sg
  subnetSelectorTerms: # make sure you tag your securitygroups
  - tags:
      aws-subnet : private
  tags:
    ManagedBy: eks-auto
    aws_region: eu-central-1

General nodepool with T series and M series

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: general-nodepool
spec:
  disruption:
    budgets:
    - nodes: 10%
    consolidateAfter: 1m
    consolidationPolicy: WhenEmptyOrUnderutilized
  limits:
    cpu: 1000
  template:
    metadata: {}
    spec:
      expireAfter: 336h
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default-nc
      requirements:
      - key: karpenter.sh/capacity-type
        operator: In
        values:
        - on-demand
      - key: eks.amazonaws.com/instance-category
        operator: In
        values:
        - t
        - m
      - key: kubernetes.io/arch
        operator: In
        values:
        - amd64
      - key: kubernetes.io/os
        operator: In
        values:
        - linux
      terminationGracePeriod: 24h0m0s

Default System nodepool with taints

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: system-nodepool
spec:
  disruption:
    budgets:
    - nodes: 10%
    consolidateAfter: 1m
    consolidationPolicy: WhenEmptyOrUnderutilized
  limits:
    cpu: 1000
  template:
    metadata: {}
    spec:
      expireAfter: 336h
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default-nc
      requirements:
      - key: karpenter.sh/capacity-type
        operator: In
        values:
        - on-demand
      - key: eks.amazonaws.com/instance-category
        operator: In
        values:
        - t
      - key: kubernetes.io/arch
        operator: In
        values:
        - amd64
      - key: kubernetes.io/os
        operator: In
        values:
        - linux
      terminationGracePeriod: 24h0m0s
      taints:
      - effect: NoSchedule
        key: CriticalAddonsOnly

@abencomoc abencomoc linked a pull request Mar 12, 2025 that will close this issue
@abencomoc
Copy link

I am working on a new blueprint for AutoMode custom NodePools.
Plz feel free to check out PR #2085 and share your feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: No status
Development

Successfully merging a pull request may close this issue.

4 participants