Giter Club home page Giter Club logo

migrating-x64-to-graviton2's Introduction

Migrating an x64 EKS Cluster to Graviton2

Setup

The example in this repository relies on GitOps, using Flux v2 to setup the workloads in the EKS cluster after it has been provisioned.

The first step is to fork this repository, which will provide you with a space to make changes and push them to the EKS. Then clone the repository locally.

Next, copy the cluster.yml.template and name it cluster.yml:

cp cluster.yml.template cluster.yml

You will need to subsitute in your GitHub username in the new cluster.yml file in order for Flux to use the correct repository. You can either manually change the $GITHUB_USERNAME value in the file, or do something like this:

GITHUB_USERNAME="yourusername" eval "echo \"$(sed 's/"/\\"/g' cluster.yml.template)\"" > cluster.yml

By default the cluster configuration generated will use the us-west-2 region, if you wish to modify this you can further edit the cluster.yml file. Make sure to change both the region and the availability zones.

You must also create a GitHub Personal Access Token for Flux to use to access GitHub repositories.

Steps

Create initial cluster:

export GITHUB_TOKEN='<personal access token>'

eksctl create cluster -f cluster.yml

Get relevant endpoints:

todo

Add Graviton2 node group:

eksctl create nodegroup -f graviton2-nodegroup.yml --skip-outdated-addons-check

Add the following to workload-1 configuration to migrate (flux/apps/workload-1/release.yaml):

spec:
  [...]
  values:
    [...]
    tolerations:
    - key: "graviton2"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
    nodeSelector:
      kubernetes.io/arch: arm64

Commit and push this to your GitHub repository.

If you monitor the resources in the EKS cluster you will see the Deployment updated, which will trigger all the Pods to be recycled. They will all end up scheduled on arm64 nodes.

Cleanup

Delete the cluster:

eksctl delete cluster -f cluster.yml --wait

migrating-x64-to-graviton2's People

Contributors

niallthomson avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

jtbarker ndobson

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.