[pkos] 쿠버네티스 스터디 - 1주차

xgro·2023년 1월 8일
3

PKOS

목록 보기
1/11

📌 달성하고자 하는 목적은 무엇인가요?

  • 7주간의 스터디를 통하여 쿠버네티스 환경에 익숙해지고자 합니다.

  • 적극적인 활동을 통하여 DevOps 엔지니어로서 인사이트를 확장하고자 합니다.

📌 사전 준비

  1. AWS Free Tier 계정 생성

  2. IAM User 생성 : IAM User에 정책(AdministratorAccess) 부여

  3. AWS Route53 퍼블릭 호스팅 영역(도메인) 구입

📌 Study Notes

👉 Kops란?

프로덕션 등급의 고가용성 Kubernetes 클러스터를 생성, 파괴, 업그레이드 및 유지 관리하는 데 도움이 될 뿐만 아니라 필요한 클라우드 인프라도 프로비저닝합니다.

AWS(Amazon Web Services) 및 GCE(Google Cloud Platform)는 현재 공식적으로 지원되며 DigitalOcean, Hetzner 및 OpenStack은 베타 지원으로, Azure는 알파로 지원됩니다.

👉 Kops의 특징

완전 자동화된 설치

  • DNS를 통해 클러스터들의 신원 확인
  • 자체 복구: 모든 자원이 Auto-Scaling Groups에서 실행
  • 다양한 OS 지원(Debian, Ubuntu 16.04 supported, CentOS & RHEL, Amazon Linux and CoreOS) - images.md 보기
  • 고가용성 지원 - high_availability.md 보기
  • 직접 프로비저닝 하거나 또는 할 수 있도록 terraform 매니페스트를 생성 - terraform.md 보기

출처 - https://kubernetes.io/ko/docs/setup/production-environment/tools/kops/

👉 Step. 01 Kops 설치

기본 인프라 배포 Kops는 AWS t3.medium EC2 인스턴스에 Cloudformation 스택을 이용하여 배포하였습니다.

  • 인프라 구성도는 다음과 같습니다.

해당 과정을 수행하면서 알게된 점은 다음과 같습니다.

  • Kops는 상태를 S3 버킷에 저장합니다.

    마치 테라폼의 백엔드와 같이 설정 정보를 저장하여 쿠버네티스 환경을 관리합니다.

  • S3의 설정 정보를 바탕으로 Route 53에서 A 레코드를 자동으로 생성합니다.

  • Control Plane의 etcd는 별도의 ebs 블록을 생성하여 관리합니다. ( event, main 생성 확인 )

  • Kops에서 ssh 키를 자동으로 생성하고 control plane에 배포 하므로 /home/ec2-user/.ssh내의 id_rsa 키를 이용하여 컨트롤 플레인에 접속할 수 있습니다.

👉 Step. 02 이정훈님의 발표

쿠버네티스 스터디를 참여하고 싶었던 가장 큰 이유가 아닐까 싶었습니다.

재직중인 기업의 쿠버네티스 적용기를 공유하고, 경험담을 말씀해 주셔서 많은 것을 배울 수 있었던 시간이었습니다.

도서 구매 인증!! 10000부 가즈아~~

👉 Step. 03 트러블 슈팅

  • 에러 상황 발생 시 기본 조치 프로세스 :

    get 확인 → describe 확인 → 애플리케이션 로그(log) 확인 → 클러스터 에러 이벤트(event) 확인

💡 patch 와 update 의 차이는 무엇일까요?

  • Patch : 일부만 수정한다.
  • Update : 전체를 수정한다.
  • 장애 사례 처리 예시 :
    노드의 사용 가능한 디스크 용량이 부족한 경우 발생하는 에러와 에러 처리 프로세스를 알아보기

    노드 2의 디스크 용량이 90% 넘을때, 컨트롤 플레인은 해당 노드에서 파드를 제거하고, 상대적으로 양호한 상태의 노드 1에 파드를 생성하여 레플리카의 개수를 유지한다.

👉 Step. 04 Helm

헬름(Helm)이란?
다양한 환경/설정에서 하나의 템플릿으로 재사용, 필요한 모듈만 배포 가능, 안정적인 헬름 차트 생태계에서 필요한 오픈소스 설치를 가능하게 해줍니다.
https://youtu.be/m7iZtjeIHJw?t=290

📌 과제 결과

👉 [ 과제 1 ] kOps 확인

✅ kOps 클러스터 확인

각자 설치한 AWS kOps 클러스터의 정보를 올려주세요.

: kops get cluster , kops get instances

👉 [ 과제 2 ] Helm 활용

✅ Helm 워드프레스 배포

Helm 으로 워드프레스를 배포하고 관리페이지에 접속해서 글 1개 작성해주시고 스크린샷을 올려주세요.

👉 [ 과제 3 ] AWS kOps 활용

워커 노드 증가

(ASG = Auto Scaling Group 활용)

Metrics 파드 설치

📌 Comment

현재 EKS 기반이 아닌, ECS 환경에서 서비스를 구축, 운영하는 DevOps 엔지니어로 근무하고 있습니다.

EKS로의 전환을 위해 준비하고 있던 중 가시다님의 스터디에 참여하게 되어 매우 기쁩니다.

여타 강의보다 세심한 부분까지 신경써서 강의 진행하시는 모습보면서 다시한번 감사의 말씀 드립니다.

7주간의 여정 열심히 참여하겠습니다.

profile
안녕하세요! DevOps 엔지니어 이재찬입니다. 블로그에 대한 피드백은 언제나 환영합니다! 기술, 개발, 운영에 관한 다양한 주제로 함께 나누며, 더 나은 협업과 효율적인 개발 환경을 만드는 과정에 대해 인사이트를 나누고 싶습니다. 함께 여행하는 기분으로, 즐겁게 읽어주시면 감사하겠습니다! 🚀

1개의 댓글

comment-user-thumbnail
2023년 1월 9일

모임장 가시다입니다.
구성도도 직접 그리시고, 내용도 잘 정리해주셨네요.
남은 6주도 잘 부탁드립니다.

답글 달기