들어가며
사내 실험용 서버팜을 EKS 기반으로 구축하기 위해 노력 중이었다. 그러던 중 AWS 환경에서 쿠버네티스 실무 실습 스터디 모집을 한다는 소식을 우연히 접하게 되어 바로 신청했고, 운이 좋게 40여 명의 스터디 인원중 한 명으로 참여할 수 있게 되었다.
AWS가 아직은 익숙하지 않았기에, ‘이번 기회에 열공 해서 제대로 감을 잡아 보자!’ 하는 마음으로 보내주신 스터디 사전 지식들을 학습하기 시작했다.
지난 일요일(23.01.08) 본격적으로 1주차 실습에 임하게 되었다. 스터디는 정말 군더더기 없이 유용한 정보들과 함께 빠르게 진행되었다. 스터디 리더이신 가시다님께서 커리큘럼과 진행에 대해 많은 고민을 하신 것이 온몸으로 느껴졌다.
아직 스터디를 접하지 못한 Cloud 또는 DevOps 엔지니어들에게 필자가 정리하는 정보가 도움이 되길 기대하며, 1주차 내용에 대해서 간략하게 정리해 보도록 한다.
kOps 란
KOps 는 Kubernetes Operations의 약자로 프로덕션 등급의 쿠버네티스 클러스터를 구동하는 쉬운 방법을 제공한다.
설명 : https://kops.sigs.k8s.io/#what-is-kops
실습 내용
kOps 기반 클러스터 설치
AWS CloudFormation을 통해 aws 상에 kOps를 설치했다.
그다음 kops create cluster 명령어를 통해 클러스터를 설치할 수 있었다. Route 53을 통해 구매한 도메인을 서울 리전(northeast-2) 클러스터에 연결하고, 클러스터의 상태를 s3에 저장하는 형태로 구축했다.
정상적으로 kOps 클러스터를 설치하게 되면 아래와 같이 구성된 클러스터(Leader: 1식, Worker node: 2식) 정보를 확인할 수 있었다.
KREW 플러그인 매니저 공유 (관리 편의성)
kubectl CLI 환경에서 사용할 수 있는 여러 플러그인들을 손쉽게 설치할 수 있는 krew 플러그인 매니저를 배웠다.
설명 : https://krew.sigs.k8s.io/
krew를 통해 kube-ctx, kube-ns, df-pv, get-all, ktop, neat, oomd, view-secret 등의 플러그인을 직접 설치하여 실습했다.
그중 인상 깊었던 부분은 클러스터 상태를 한눈에 확인할 수 있는 대시보드인 ktop과, 모든 리소스들을 디테일하게 확인할 수 있는 get-all이었다.
설명 : https://github.com/corneliusweig/ketall
아직 oom kill 같은 상황을 많이 겪어보진 않아서 잘 모르겠지만(실 운영환경에서는 빈번하게 발생한다고 이야기 들었다.) oomd와 같은 플러그인도 유용하게 사용할 수 있을 것 같다.
헬름 차트를 이용한 워드프레스 배포 실습
쿠버네티스 패키기 관리자 역할을 수행하는 Helm을 이용한 워드프레스 배포 실습을 진행했다. 쿠버네티스 상에 어떤 서비스를 띄우려면 DB, cache, WAS, Web server 등 여러 가지를 배포해야 하는데 Chart를 이용하여 helm install 명령어 하나로 너무나도 쉽게 서비스를 배포할 수 있었다.
AWS kOps 활용
kOps에서 제공하는 다양한 기능을 통해 클러스터를 모니터링 및 관리할 수 있는 방법들에 대해서 배웠다. 스터디에서 보여준 내용은 ASG(Auto Scaling Groups를 활용하여) 워커노드 스케일 아웃을 하는 방법이었다.
이외에도 kOps에서 제공하는 다양한 기능들을 사용해 볼 수 있도록 정보들을 제공해 주셔서 틈틈이 따라 하는 중이다.
이정훈 님의 집필 과정 에피소드와 AWS EKS 구성 현황 발표
https://product.kyobobook.co.kr/detail/S000200152893
"24단계 실습으로 정복하는 쿠버네티스" 저자 이정훈 님께서 책의 집필과정 에피소드와 AWS EKS 구성현황에 대해 경험을 공유해 주셨다.
흥미로웠던 부분은 책을 집필하게 된 계기가 블로그에 잘 정리된 글을 통해 시작되었다는 것이었다. 정리와 공유의 중요성을 새삼 깨닫게 된 계기가 되었다. 또한 책을 출판한 것과 더불어 다양한 분들과 새로운 기회들을 얻을 수 있으셨다고 한다. 이보다 가치 있는 일이 더 있을까?
좋았던 점
AWS를 본격적으로 공부할 수 있게 되었다. EC2나 S3를 간단하게 사용하면서 공부해야지.. 공부해야.. 하고 있었는데, 스터디에서 살아남기 위해 아주 본격적으로 공부를 하게 되었다. 이미 가시다님께서 언급하는 AWS 개념에 대해 당연하게 이해하고 넘어가는 다른 팀원 분들을 보면서 더욱 열공해야겠다는 생각이 들었다.
스터디를 통해 기대 이상 (초월)으로 많은 실무 지식을 얻을 수 있었다. krew를 통해 유용한 툴들을 이용할 수 있다는 사실이나, AWS LB (Load balancer)로써 CLB 보다는 NLB, ALB를 사용해야 한다는 것과 같은 내용들이다.
마지막으로 가장 중요한 kOps!! 이런 갓 툴이 있는지는 상상도 못 했었다. 내가 고민한 개인 서버팜 구성은 적어도 월 20~30만 원 정도 나가게 될 것으로 예상했다. 하지만 kOps를 통해 10~20 만원 선으로 지출 비용을 줄일 수 있게 되었다. 또한 굳이 EC2들을 묶어서 직접 설치하지 않아도 쉽게 쿠버네티스 클러스터 환경을 구축할 수 있게 되었다.
힘들었던 점
키페어 문제
스터디 도입부에 쉽게 따라가지 못하고 주춤했던 이유가 있었다. EC2에 keypair로 접근을 하려고 하니 아래와 같은 이슈가 발생했기 때문이다.
이를 해결할 수 있는 방법은 위의 설명대로 keypair 파일 권한을 좀 더 닫아주는 것이다.
누군가 이런 에러가 발생한다면 아래와 같이 파일 권한을 설정하여 해결해 보자.
chmod 600 ~/.ssh/devlos-key-230110.pem
만약 keypair가 없다면 아래와 같은 방법으로 생성하면 된다.
EC2 > 키페어 > 키페어 생성
Route 53 도메인 구입문제
도메인 구매 신청 후 다음과 같이 결제 실패로 인해 구매가 안될 수 있다. 정상적인 절차를 거치게 된다면 이메일을 통해 소유주 이메일 주소 확인 요청을 받게 된다. 확인 요청이 끝나고 조금 기다린 후 정상적으로 처리가 완료되었는지 확인하는 것이 좋다.
마치며
이번 글에서는 쿠버네티스 실무 실습 스터디 1주 차에 진행한 내용을 정리해 보았다.
처음 권한 문제로 인해 클러스터 생성을 하지 못했을 때 많이 당황했지만, 스터디 그룹에서 소중한 녹화영상을 제공해 주어 천천히 복습하며 이해할 수 있었다.
성실히 스터디에 임하여 3월엔 첫 AWS 테스트 서버팜 구축을 멋지게 끝낼 것이다!
'클라우드 컴퓨팅 & NoSQL > [PKOS] 쿠버네티스 실무 실습 스터디' 카테고리의 다른 글
[6주차] PKOS 쿠버네티스 실무 실습 스터디 (23.02.19) (1) | 2023.02.26 |
---|---|
[5주차] PKOS 쿠버네티스 실무 실습 스터디 (23.02.12) (0) | 2023.02.18 |
[4주차] PKOS 쿠버네티스 실무 실습 스터디 (23.02.04) (0) | 2023.02.11 |
[3주차] PKOS 쿠버네티스 실무 실습 스터디 (23.01.29) (0) | 2023.02.04 |
[2주차] PKOS 쿠버네티스 실무 실습 스터디 (23.01.15) (0) | 2023.01.29 |