코딩두의 포트폴리오

Cloud Computing - #14 쿠버네티스(Kubernetes, K8S) 실습 본문

Cloud

Cloud Computing - #14 쿠버네티스(Kubernetes, K8S) 실습

코딩두 2024. 6. 6. 20:52

컨테이너 오케스트레이션

컨테이너의 배포, 관리, 확장 등을 자동화하는 기술

 

쿠버네티스(Kubernetes, K8S)

오픈 소스 기반의 대표적인 컨테이너 오케스트레이션 도구

다수의 컨테이너 자동으로 운영 - 컨테이너 자동 배포, 자동 스케일링

오동작 시 마이그레이션 필요
Master Node + (도커엔진 설치된)Worker Node로 구성

Pod

쿠버네티스에서 관리하는 가장 작은 배포 단위

Pod는 1개 이상의 컨테이너 포함

컨테이너 생성 시 Pod 생성 x / Pod 생성 시 컨테이너가 내포된 상태임

Worker Node1이 일반적인 컨테이너 운영 방식

Worker Node3은 3개의 컨테이너가 1개의 Pod로 관리되고, 특정 목적 있을 시 사용

 

Pod 생성

쿠버네티스 클러스트 제어 명령어(Kubectl)를 활용 -> Pod 제어

컨테이너가 포함된 Pod를 한 번에 생성 가능

Docker 명령어에 대한 API 제공 (Docker 명령어와 유사)

 

Pod 여러 개 생성 시 Pod를 어떻게 배치할지 정해야 함

apps 단위로 작동

--replicas라는 명령어로 개수 추가 및 삭제(수정 가능)

 

쿠버네티스 제어 명령어

 

[실습]

master node 1개 생성, worker node 2개 생성

클러스터 master node 초기화하기 위한 명령어

 

master node에서 실행

 

worker node로 사용하고 싶은 노드에 실행 - node 2, node 3

 

node 2

 

node 3

 

현재 클러스터에 생성된 node 확인

 

클러스터의 네트워킹 초기화 명령어 실행 - master node에서만 실행

 

node 재확인 시

node1 도 'Ready' 상태로 변경

아직 Pod는 생성되지 않았음

 

Pod를 그룹화하여 관리하는 deployment 또한 아직 생성 안됨

 

web1 pod 생성, web2 pod 생성

 

pod 목록조회

 

web1, web2 pod 조회

 

레이블까지 확인

 

node3에 pod 배치 - nodeSelector 사용

 

web3 정보 조회

node3과 node2의 IP는 당연히 다름

 

web1 pod에 접속

 

deployment.apps 생성

 

조회 시 하나 생성됨 확인

 

하나만 생성된 이유? replicas(pod 개수) 옵션을 설정 안해서 자동으로 하나만 생성됨

 

deployment.apps 수정

 

replicas 1 -> 3 수정

 

편집 완료

 

replicas 수정 시 동일한 방법으로 수정 가능

-> 오케스트레이션 자동화의 장점