NewBie ML(Ops) Developer
로그인
NewBie ML(Ops) Developer
로그인
Kubernetes (k8s)
임정민
·
2024년 6월 24일
팔로우
3
k8s
kubernetes
3
MLOps 공부
목록 보기
6/7
Kubernetes 소개
유튜브
'[리얼리눅스] 리눅스 읽어주는 남자' 쿠버네티스 무엇일까요?
자료를 참고하였습니다.
1. 쿠버네티스란?
도커는 컨테이너 생성 도구 및 간단한 운영 도구
쿠버네티스는 서버 배포 및 운영 관리 도구
2. 기능
클러스터링(여러개 서버 통합관리)
쿠버네티스를 쓰지 않더라도 필요한 서버 관리
쿠버네티스 없이 관리한다면 각각의 IP를 갖는 서버에 직접 접속해서 관리해주어야함
1 ~ 2개 서버는 직접 관리할 수 있지만 수백 ~ 수천개가 된다면 관리하기 어려움
클러스터링한다면 쿠버네티스 입장에서는 여러 서버들이 하나의 큰 컴퓨터 1대로 관리됌
node : 물리적인 1개의 서버
control-plane(master) : 전체적으로 운영 관리하는 서버, worker로도 사용 가능
worker : 실제 일하는 서버
실행된 서버 선택
다양한 프로세스 중 반드시 GPU , 스토리지 혹은 CPU 서버에 배치되어야하는 프로세스 일 수 있지만 이를 지정할 수 있음
*Scheduling(스케줄링)
설정에 따라 프로세스별 노드 배치 우선순위를 선정할 수 있음 (1.GPU 2.CPU ...)
또한 노드 관계없이 골고루 배치할 수도 있음
서버 가동률을 효율적으로 관리할 수 있음
Running하고 있는 프로세스들을 볼 수 있음
'ubuntu', 'sub-node' 물리적으로 다른 2개의 서버에 각각 배치됌
5개의 프로세스는 'sub-node', 5개의 프로세스는 'ubuntu'
*Scaling(스케일링)
kubectl 명령어로 프로세스를 스케일링 할 수 있음 (sub-node에 배치됌)
ubuntu node에 1개의 프로세스가 새로 배치됌
로드 밸런싱
WS에 트래픽이 왔을 때 적절히 분배시켜야함
쿠버네티스를 사용하지 않는다면 프로세스, 노드가 늘어나고 줄어듬에 따라 로드 밸런싱을 직접하기 어려움
하지만 쿠버네티스로 클러스터링되어 있다면, node(서버)에 배치된 같은 프로세스에 적절히 분배할 수 있음
동일한 요청을 했을 때, 로드 밸런싱되어 여러 프로세스에 배치됌
스케일 아웃/인
기본
스케일 아웃 (컨테이너를 늘림)
스케일 인 (컨테이너를 줄임)
스케일 아웃 (노드를 늘림)
컨테이너 배포/복구 (Roll-out/back)
버전 1.0 배포 후, 버전 1.1을 어느 프로세스에 배포할지 지정할 수 있음
버전 1.1이 문제가 있다면 복구할 수 있음
비정상적인 상황에서 서버가 다운된다면 쿠버네티스가 되살림
kill 해서 종료한 프로세스들을 다시 살림
임정민
https://github.com/min731
팔로우
이전 포스트
Wandb (Weights & Biases)
0개의 댓글
댓글 작성
관련 채용 정보