← 목록으로
클라우드

K8s

오케스트레이션에 대해 알 수 있어요.

👁 0


  • 자동 배포 확장 및 관리를 해주는 오픈소스

K8s : K(ubernete)s 앞 K [8글자] s

사용 이전 사례

지금 당장 100개의 컨테이너를 실행하기 위해선 docker container run 을 100번 외쳐야하는 불편함이 있음

docker container run

docker container run

docker container run

docker container run

docker container run ~~~~~~~~~~~~~~~

또 다른 예시로 프로그램에서 테스트 코드를 작성하여 처리할경우 굳이 빌드 배포 하지 않고 처리가 가능한것과 비슷한 맥락이지 않을까 싶음.


위처럼 우리가 하고자 하는 MSA 구조를 비교하게 될경우 서비스(user,auth, chat, api gateway, nginx, DB등등…) 여러개를 동시다발적으로 처리하는데는 제한이 있다고 생각이 듦.

K8s 구조

파드(pod)

  • 여러 컨테이너를 하나로 묶어 배포할 수 있는 배포 단위 WAS라 생각하면 편하지 않을까 싶음.
  • 스케일 아웃이 가능하며
  • 마스터 노드(Master Node) : 관제탑이라 보면됨.
    • 개발자가 주로 마스터 노드와 통신
    • 컨트롤 플레인
      • 클러스터 전반의 작업을 관리
      • API Server
        • 개발자는 마스터 노드의 API 서버와 통신함.

          kubectl 명령어를 통해 마스터 노드에게 명령함

        • 마스터가 워커 노드에게 전달.
      • etcd (key - value)
        • 데이터 저장소
      • 스케줄러
        • pod가 어느 워커 노드에 실행될지 결정하는 역할.(리소스 관리)
        • 트래픽이나 작업을 분산 시킴.
      • 컨트롤러 매니저
        • 워커 내파드 재배포와 같은 파드 및
  • 워커 노드(Worker Node)
    • 사용자가 주로 워커 노드와 통신한다.
    • pod★
      • 컨테이너는 pod에서 실행됨.
      • 도커의 최소 실행 단위 컨테이너, K8s의 경우 최소 실행 단위 pod
      • pod는 실행할때마다 ip주소를 배정받음.)
      • tip: 우리가 하는 msa 기준 한 파드당 하나의 서비스가 들어간다 보면됨
    • kubelet
      • pod 상태 모니터링
      • pod 재배포 역할.
    • kube-Proxy
      • 네트워크 역할, 쿠버네티스 내부 외부와 통신
    • 컨테이너 런타임
      • pod안에 컨테이너를 담당하는 역할.
      • 컨네이너 생명 주기 담당.(컨테이너 실행 관리)
      • CRI 사용
      • 도커에서 하는 역할을 담당.
  • DaemonSet
    • node에 지정된 pod 를 추가로 넣을수있음
  • 이 두 노드의 유기적인 통신은 CNI(Container Network Interface) 개념을 사용한다.
  • CNI를 사용하기 위해 네트워크 플러인
  • 플러그인을 제공 [대표 플러그인 : Flanner, calico]
    • 오케스트레이션 도구



참조자료

💬 댓글 0

불러오는 중...