[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 에 올리기

기타

  • 말해보카

Categories:

Updated:

Leave a comment