[250211] TIL
오늘 한 것
크램폴린 IDE 특강
VM 기반의 배포
- vm 띄우는데 무거움 (게스트OS? 가 무겁나봄)
컨테이너 배포 방법
- 이미지를 띄워서 해야함
- 도커 파일을 이용함
- 컨테이너는 모든 버전들이 안에 깔려있기 때문에 빠른 배포가 가능하다.
쿠버네티스의 역할
- 오토 스케일링
- 시간대마다 트레픽이 몰리는 컨테이너를 증가 시킴
- 적은 자원으로 서비스에 몰리는 트래픽을 효율적으로 관리할 수 있다.
- 오토 힐링
- 운영하던 컨테이너가 죽게 되면 자동으로 감지하고 컨테이너를 띄워 대응하는 것이 가능하게 함
- 컨테이너는 유연한 확장을 가능하게 한다.
- 쿠버네티스는 컨테이너를 활용하는 다양한 배포 및 운영 기법을 자동화 한다.
쿠버네티스를 활용하려면 ?
- 다양한 오브젝트를 이용해서 배포에 활용해야 함
- 최대 클러스터라는 운영 환경을 만듬
- 도커 이미지를 따서 파드가 구성 됨
- 기본적으로 롤링 업데이트 사용
파드 ( Pod )
- 쿠버네티스의 가장 작은 컴퓨팅 단위
- 파드 안에서 우리 서비스가 실행 된다.
레플리카셋 (ReplicaSet)
- 파드를 여러개 띄울 때 관리하는 것
- 다수의 pod 관리
- 트래픽이 늘면 파드를 늘린다.
- 장애가 발생한 개수만큼 파드를 새로 생성함
- 장애 대응에 중요한 역할을 함
- 오토 스케일러를 같이 사용하면 트래픽 양에 따라 파드를 늘리거나 줄일 수 있음
- 파드에 라벨을 붙이고 셀렉터라는 개념으로 어떤 파드를 관리하는지 적는 것
디플로이먼트 (Deployment)
- 파드를 새로운 버전으로 업데이트
- 다양한 배포 방식 지원
- 전체적인 흐름인가봄
- (Recreate, RollingUpdate) → 배포 방식
- 앱에 버전 자체를 업그레이드 할 때도 배포를 해줘야하는데 그때 해준다고 보면 된다.
서비스
- Pod 그룹에 트래픽을 분산해서 전달
- 로드 밸런스 같은 객체
- 일부의 파드가 죽더라도, 이전 파드에 요청을 보내지 않고 새로운 파드에 보낼 수 있게 된다.
- 트래픽을 분산 시켜주는 것도 서비스가 해줌
- ports(내부?) , targetPort (외부?) 내가 밖에서 받을 포트랑 안에서 받을 포트를 정의하나봄
IaC : Infra as Code
- 모든 쿠버네티스 오브젝트들은 코드로 작성된다.
- 쿠버네티스 설정들도 모두 코드로 관리
- 구성 파일만 (코드) 가 있으면 매우 편리하게 새로운 환경을 하나 더 만들 수 있다.
- 지속적으로 유지보수가 가능함
실습
- 프로젝트 루트에 Dockerfile 있어야 빌드 가능
- d2hub 레포지토리에 올림
- 쿠버네티스를 이용해서 yaml 파일 깃허브에 올려야함
- kargo (지속적인 배포 기능을 제공하는 도구, 쿠버네티스 CD 툴)
- DKOS ( 카카오에서 제공하는 클러스트 )
카카오테크 2주차 과제 마무리
- 커밋 쌓아서 깃허브에 올리기
- 실행 영상 만들기
- 회고 작성해서 README.md 에 올리기
기타
Leave a comment