eksctl, kubectl, helm install
# cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: ncsc-eks-cluster
version: "1.31"
region: ap-northeast-2
vpc:
subnets:
private:
private-a: { id: ncsc-app-subnet-a_id }
private-b: { id: ncsc-app-subnet-b_id }
iamIdentityMappings:
- arn: arn:aws:iam::<account_id>:user/admin
groups:
- system:masters
username: root-admin
noDuplicateARNs: true
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: aws-load-balancer-controller
namespace: kube-system
wellKnownPolicies:
awsLoadBalancerController: true
managedNodeGroups:
- name: ncsc-app-ng
labels: { app: nga }
instanceType: t3.medium
instanceName: ncsc-app-node
desiredCapacity: 2
minSize: 2
maxSize: 20
amiFamily: Bottlerocket
privateNetworking: true
volumeType: gp2
volumeEncrypted: true
iam:
withAddonPolicies:
imageBuilder: true
awsLoadBalancerController: true
autoScaler: true
cloudWatch:
clusterLogging:
enableTypes: ["audit"]
# eksctl install
curl --silent --location "<https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$>(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/bin/
eksctl version
# kubectl install
curl -O <https://s3.us-west-2.amazonaws.com/amazon-eks/1.31.0/2024-09-12/bin/linux/amd64/kubectl>
chmod +x ./kubectl
sudo mv ./kubectl /usr/bin/
sudo ln -s /usr/bin/kubectl /usr/local/bin/k
k version --client
# helm install
curl <https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3> | bash
create cluster
mkdir manifest
cd manifest
eksctl create cluster -f cluster.yaml