Amazon EKS Anywhere


https://www.publickey1.jp/blog/22/amazon_eksamazon_eks_anywherevmware.html
https://anywhere.eks.amazonaws.com/docs/


前提:
Ubuntu (20.04.4 LTS)
4 CPU cores
16GB memory
30GB free disk space


EKS Anywhereバージョン: v0.10.0
Dockerバージョン: 20.10.17

 

-- 1. Dockerインストール


-- 1.1 Uninstall old versions

sudo apt-get remove docker docker-engine docker.io containerd runc


-- 1.2 Set up the repository

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

-- 1.3 Install Docker Engine

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin


sudo docker run hello-world

docker version

sudo usermod -aG docker $USER

newgrp docker 

docker run hello-world

 


-- 2. Install EKS Anywhere CLI tools

curl "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" \
    --silent --location \
    | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin/


export EKSA_RELEASE="0.10.0" OS="$(uname -s | tr A-Z a-z)" RELEASE_NUMBER=14
curl "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/${RELEASE_NUMBER}/artifacts/eks-a/v${EKSA_RELEASE}/${OS}/amd64/eksctl-anywhere-v${EKSA_RELEASE}-${OS}-amd64.tar.gz" \
    --silent --location \
    | tar xz ./eksctl-anywhere
sudo mv ./eksctl-anywhere /usr/local/bin/

eksctl anywhere version

-- 3. Create local cluster

-- 3.1 Generate a cluster config

CLUSTER_NAME=dev-cluster
eksctl anywhere generate clusterconfig $CLUSTER_NAME \
   --provider docker > $CLUSTER_NAME.yaml

-- 3.2 Create Cluster

eksctl anywhere create cluster -f $CLUSTER_NAME.yaml

 

-- 3.3 Use the cluster

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version --client

 

export KUBECONFIG=${PWD}/${CLUSTER_NAME}/${CLUSTER_NAME}-eks-a-cluster.kubeconfig
kubectl get ns

 

-- 4. Deploy test workload

kubectl apply -f "https://anywhere.eks.amazonaws.com/manifests/hello-eks-a.yaml"

kubectl get pods -l app=hello-eks-a

kubectl logs -l app=hello-eks-a

kubectl port-forward deploy/hello-eks-a 8000:80

curl localhost:8000