Fargate
EC2
AutoMode
•
Basic
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: skills-eks-cluster
version: "1.32"
region: ap-northeast-2
cloudWatch:
clusterLogging:
enableTypes: ["*"]
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: aws-load-balancer-controller
namespace: kube-system
wellKnownPolicies:
awsLoadBalancerController: true
- metadata:
name: cert-manager
namespace: cert-manager
wellKnownPolicies:
certManager: true
vpc:
subnets:
public:
ap-northeast-2a: { id: public_a }
ap-northeast-2b: { id: public_b }
private:
ap-northeast-2a: { id: private_a }
ap-northeast-2b: { id: private_b }
managedNodeGroups:
- name: skills-app-nodegroup
# labels: { dev/deployed: deploy }
instanceName: skills-app-node
instanceType: c5.large
desiredCapacity: 2
minSize: 2
maxSize: 4
privateNetworking: true
# ssh:
# allow: true
# publicKeyName: <KeyPair>
YAML
복사
•
Tags shell
#!/bin/bash
public_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=skills-public-subnet-a" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
public_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=skills-public-subnet-b" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
private_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=skills-private-subnet-a" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text)
private_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=skills-private-subnet-b" --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|private_a|$private_a|g" cluster.yaml
sed -i "s|private_b|$private_b|g" cluster.yaml
Shell
복사
# 필요시 사용
ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
REGION_CODE=$(aws configure get default.region --output text)
# kubeconfig 등록
aws eks --region ap-northeast-2 update-kubeconfig --name skills-eks-cluster --alias skills-eks-cluster
# 등록된 kubeconfig 확인
cat ~/.kube/config
# context 변경
kubectl config use-context skills-eks-cluster
# kubectl 명령어로 클러스터 정보 확인
kubectl cluster-info
# 별칭 지정
echo 'alias k=kubectl' >> ~/.bash_profile && source ~/.bash_profile
Shell
복사
•
nodeGroup 잘못 생성 했을 시 해결방안
# 새 노드그룹 생성
eksctl create nodegroup -f cluster.yaml
> skills-eks-app-nodegroup -> skills-eks-app-nodegroup-c5
# 기존 노드그룹 삭제
eksctl delete nodegroup --cluster=skills-eks-cluster --name=skills-eks-app-nodegroup
YAML
복사
•
delete eks cluster
eksctl delete cluster --name $EKS_CLUSTER_NAME
YAML
복사