1/4
EKS 생성법
명령서버 1대 만들어 EKS 생성 관리하는법
Pod접속법
모니터링툴인 kubeops view 설치
node 수 증가/감소 = 물리서버 증가/감소 이해
1
구성
개발자(명령PC)---------- EKS 생성
사용자PC에서 명령을 내려는 관리하는 방법이다.
개인이 혼자 관리할때 사용한다.
2
필요한것
EKS 만들수 있는 권한 = AWS IAM > Access-key / Secret-Key
EC2 키페어
eksctl등 eks 만들수 있는 유틸
eks 만들고 명령을 날릴수 있는 kubectl
1
구성
개발자------명령서버1대 ---- EKS 생성
명령서버를 1대 만들어 관리하는 법이다.
여러 사람이 관리할때 사용하는 방법이다.
2-1
필요한것
명령서버를 만드는 방법 3가지
AWS cloud9으로 만들기
수동으로 EC2만들기
Cloudformation으로 EC2 만들기
2-2 eksctl , kubectl 설치법 2가지
eksctl , kubectl 수동 설치 = cloud9이나 EC2에 로그온 해서 설치
eksctl , kubectl 자동 설치 = Cloudfomation , 테라폼으로 자동 설치
https://console.aws.amazon.com/console/home
여기서는 eksctl , kubectl 자동 설치 = Cloudfomation으로 자동 설치 해보자.
EKS까지 한번에 생성된다.
1
1.27 버전으로 설치한다. (2023년 12월 최신버전은 1.28 버전이다.)
아래 cloud formation 파일을 클릭 하세요 !!
EC2 키페어 선택
Access 키 복붙
Secret 복붙
다음> 다음 > 실행
클라우드 포메이션 실행하고 바로 EKS 클러스터가면 생성중이라고 나와야 한다.
Access-key/Secret-key만 똑바로 넣었다면 EKS 클러스터가 생성된다.
제대로 넣지 않았다면 베스천 호스트 ec2 1대만 생성 된다.
1분후 eksctl 생성까지 진행되는것이 보여야 정상.
클러스터 생성에 30분 소요 된다.
2
EC2 > 인스턴스는 20분이 지나야 생성이 확인 된다.
3
(선택) yaml 파일 받아 생성 하기.
stackName=myeks
https://vclock.kr/timer/#countdown=00:10:00&enabled=0&seconds=0&sound=xylophone&loop=1
3
업그레이드 하지 않아도 된다.
단지, 업그레이드 하고 싶으면 반드시 설치 완료된후 업그레이드 하자. (30분 후) = kubectl get nodes 해서 잘 된상태에서 해야한다.
1.27 버전으로 설치하면 업그레이드는 1.28로 해야한다. 1개 버전씩 업그레이드가 가능하다.
마스터 노드 업그레이드 해야 한다.
워커 노드 업그레이드 해야 한다.
각각 따로 해야한다!
워커 노드 경우, 순차적 업그레이드로 할 경우
(12-18-access22222@myeks:default) [root@myeks-bastion-EC2 ~]# k get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-1-4.ap-northeast-2.compute.internal Ready <none> 93m v1.27.7-eks-e71965b
ip-192-168-1-5.ap-northeast-2.compute.internal Ready <none> 57s v1.28.3-eks-e71965b
ip-192-168-2-145.ap-northeast-2.compute.internal Ready <none> 57s v1.28.3-eks-e71965b
ip-192-168-2-186.ap-northeast-2.compute.internal Ready <none> 93m v1.27.7-eks-e71965b
ip-192-168-3-187.ap-northeast-2.compute.internal Ready <none> 58s v1.28.3-eks-e71965b
ip-192-168-3-32.ap-northeast-2.compute.internal Ready <none> 93m v1.27.7-eks-e71965b
또는
4
최신 버전으로 설치한다.
최신 버전은 1.28 이다.
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html
myeks
EKS 생성중임을 확인하자.
eksctl-myeks-cluster가 진행중임을 확인하자.
Access-key / Secret-key가 제대로 들어갔다면 진행중이다.
아래 참조
5
클라우드 포메이션 실행하고 바로 EKS 클러스터가면 생성중이라고 나와야 한다.
Access-key/Secret-key만 똑바로 넣었다면 EKS 클러스터가 생성된다.
제대로 넣지 않았다면 베스천 호스트 ec2 1대만 생성 된다.
1
k get nodes
2
3
10
멱등성 테스트
https://brunch.co.kr/@topasvga/3486
export MY_POD_NAME=$(kubectl get pods -n default -o jsonpath='{.items[0].metadata.name}')
kubectl -n default describe pod $MY_POD_NAM
kubectl exec -it ${MY_POD_NAME} -n default -- /bin/bash
참고
https://github.com/troglobit/tetris
/# apk add micro-tetris
( 5분 걸림)
watch -d kubectl get svc,pods -A
k get svc
kube-ops-view LoadBalancer 10.100.18.156 a2f43379b1fb0440db35af6dc4a29f2b-1377535766.ap-northeast-2.elb.amazonaws.com 8080:30385/TCP 2m1s
[root@ip-172-31-40-122 alb-ingress-controller]#
watch -d kubectl get svc
8080 접속
http://kubeopsview.masterseo0.link:8080
pod 생성
kubectl run myweb --image nginx
kubectl delete pod --all
# 선택
모니터링2
k ns kube-system
watch -d kubectl get nodes
모니터링3
while true; do aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,PrivateIPAdd:PrivaIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output text ; echo "------------------------------" ; sleep 2; done
// 모니터링 3 반영, 모니터링 2 반영 , 모니터링 1반영
eksctl scale nodegroup --cluster $CLUSTER_NAME --name ng1 --nodes 4 --nodes-min 4 --nodes-max 6
or
eksctl scale nodegroup --cluster $CLUSTER_NAME --name ng1 --nodes 2 --nodes-min 2 --nodes-max 6
EKS 생성법 아시겠죠
명령서버 1대 만들어 EKS 생성 관리하는법
Pod접속법
모니터링툴인 kubeops view 설치
node 수 증가/감소 = 물리서버 증가/감소 이해
https://brunch.co.kr/@topasvga/3573
감사합니다.