본문 바로가기
클라우드 기초/AWS

[AWS] CLI 로 EKS cluster 및 worknode 구성하기

by 라라쇼퍼 2023. 7. 14.
반응형

aws cli 설치

eks cli

kubectl 설치

 

통제는 amazon EKS (control plane) 에서 받음

 

쿠버네티스는 desired state와 present state 비교해서 desired 상태로 만들어줌(컨테이너를 오케스트레이션 해주는 기능) - 도커와 차이점

ecs - 클러스터 구성비용 안받음

eks - 클러스터 구성비용 받음 

 

KUBECTL -> kubeapiserver-> etcd(데이터 베이스: 시스템에 대한 상태 정보, 노드에 대한 상태 정보) ->  controller manager(갯수 보장)한테 요쳥 -> 일병 scheduler 가 desired state 만들어주기 위해 워커 노드 선정 

kublet  은 데몬 형태 

 

worker node 에는 컨테이너 엔진이 설치되어 있음 

ex) 도커 

 

eks의 경우 컨테이너 엔진으로 cri-o 사용 

ecs 의 경우 컨테이너 엔진으로 docker 사용 

 

사용자는 로드 발란스를 타고 와서 서비스를 경험   

 

인그레스= aws 로드발란스 컨트롤러 

 

1. IAM 에서 EKS 마스터 워크 노드 롤 생성하기 

 

 

 

2. Ubuntu instance 생성하기 

퍼블릭 zone 에 생성하기 

 

ssh 연결


 

3. ubuntu Linux EC2 에 AWS CLI 관리툴인 aws 설치

4. ubuntu Linux EC2 에 EKS설치/운영 툴인  eksctl 설치

5. ubuntu Linux EC2 에 k8s 관리툴인 kubectl 설치

6. ubuntu Linux EC2 에서 aws 관리할수 있도록 root 계정으로 로그인 하기

root 계정 아닌 일반 사용자면 권한 설정을 추가로 해줘야 노드들을 다 볼 수 있

메모장 참고 


 7. EKS 구성하기 

 

vi cluster.yaml

아래 서브넷은 private zone 의 서브넷 기재해야함(워크노드 서브넷이므로)

 

 

eksctl create cluster -f cluster.yaml

 

설치 잘되고 있는지 cloudformation 에서 확인 가능 

클러스터 생성 후 -> 워크 노드 

참고: node 생성한거 삭제하려면 아래 명령어 입력합니다. 
eksctl delete cluster -f cluster.yaml

 

지금 생성한 것은 노드 그룹 2개 각 노드 그룹마다 desire capacity 1이므로 워크 노드 1개  총 2개 생성하는 과정입니다. 

 

 

 

워커 노드 정보 보기

$ kubectl get nodes -o wide


Pod 배포 TEST. nginx 컨테이너 5개 실행하고 결과 확인

$ kubectl create  deployment webtest --image=nginx:1.14 --port=80  --replicas=5
$ kubectl get  pods -o wide

 

 

로드발란드 dns 로 접속

 

 

롤링 업데이트  nginx :1.14 -> nginx:1.15 로 업데이트 

 

 kubectl set image deployment webtest nginx=nginx:1.15

 

롤백하기 

반응형

댓글