eksctl create cluster \
--name $ACCOUNT-cluster \
--region $AWSREGION \
--vpc-private-subnets=1232323,232323,2423423232 \
--vpc-public-subnets=<public subnet1 id>,<public subnet2 id>,<public subnet3 id> \
--version 1.24 \
--without-nodegroup \
--with-oidc
eksctl delete cluster --name=$ACCOUNT-cluster
kubectl get svc
aws eks update-kubeconfig --region $AWSREGION --name $ACCOUNT-cluster
실행 후 다시 확인
aws ec2 create-key-pair --key-name $ACCOUNT-key --query 'KeyMaterial' --output text > $ACCOUNT-key.pem
kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
kubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=1
eksctl create nodegroup \
--cluster $ACCOUNT-cluster \
--region $AWSREGION \
--name $ACCOUNT-nodegroup \
--subnet-ids <private-subnet-1 id>,<private-subnet-2 id>,<private-subnet-3 id> \
--node-private-networking \
--node-type t3.medium \
--nodes 2 \
--nodes-min 2 \
--nodes-max 5 \
--node-volume-size 20 \
--ssh-access \
--ssh-public-key $ACCOUNT-key
중요!! NodeGroup 을 node-private-networking 옵션을 주고 생성한다는 것은 Private VPC에 EC2를 배포하겠다는 뜻이다. 따라서 NAT 게이트웨이가 필수적으로 연결돼 있어야 노드그룹이 K8S 클러스터에 JOIN이 가능하다.
eksctl delete nodegroup --cluster=$ACCOUNT-cluster --name=$ACCOUNT-nodegroup
kubectl get node
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source /etc/bash_completion
echo alias k=kubectl >> ~/.bashrc
source ~/.bashrc
complete -F __start_kubectl k
kubectl create ns sampleapp
kubectl get ns
kubectl delete ns sampleapp
kubectl create deploy sample-dp --image=nginx --replicas=3 -n sampleapp
kubectl get deploy -n sampleapp
kubectl get rs -n sampleapp
kubectl get pod -n sampleapp
kubectl expose deploy sample-dp --port=8080 --target-port=80 -n sampleapp
kubectl get svc -n sampleapp
kubectl -n sampleapp exec -it <2번에서 확인한 Any Pod Name> -- /bin/bash
curl <3번에서 확인한 clusterip>:8080
클러스터를 만들고 작업을 하다가 클러스터를 삭제할 때 Related Recource가 남아서 스택이 삭제가 안되는 경우가 존재해 깔끔하게 클러스터를 삭제할 수 없는 경우가 있다.
이 경우 관련 리소스를 삭제해주거나 아래 명령어로 강제 스택 삭제를 진행한다.
aws cloudformation delete-stack --stack-name <stack-name> --region $AWSREGION --retain-resources <RelatedRecource>