"> "> ">
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: skills-cluster
version: "1.29"
region: ap-northeast-2
cloudWatch:
clusterLogging:
enableTypes: ["*"]
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: aws-load-balancer-controller
namespace: kube-system
wellKnownPolicies:
awsLoadBalancerController: true
vpc:
subnets:
public:
ap-northeast-2a: { id: public_a }
ap-northeast-2b: { id: public_b }
ap-northeast-2c: { id: public_c }
private:
ap-northeast-2a: { id: private_a }
ap-northeast-2b: { id: private_b }
ap-northeast-2c: { id: private_c }
managedNodeGroups:
- name: skills-node
labels: { app: skills }
instanceName: skills-node
instanceType: c5.large
desiredCapacity: 1
minSize: 1
maxSize: 20
privateNetworking: true
# ssh:
# allow: true
# publicKeyName: <KeyPair>
public_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=public-a" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
public_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=public-b" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
public_c=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=public-c" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
private_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=private-a" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
private_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=private-b" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
private_c=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=private-c" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
sed -i "s|public_a|$public_a|g" cluster.yaml
sed -i "s|public_b|$public_b|g" cluster.yaml
sed -i "s|public_c|$public_c|g" cluster.yaml
sed -i "s|private_a|$private_a|g" cluster.yaml
sed -i "s|private_b|$private_b|g" cluster.yaml
sed -i "s|private_c|$private_c|g" cluster.yaml
eksctl create cluster -f cluster.yaml
aws eks --region ap-northeast-2 update-kubeconfig --name skills-cluster --alias skills-cluster
kubectl create ns skills
helm repo add eks <https://aws.github.io/eks-charts>
helm repo update
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \\
--set clusterName=skills-cluster \\
-n kube-system \\
--set serviceAccount.create=false \\
--set serviceAccount.name=aws-load-balancer-controller