Page 31 -
P. 31
2.3.1 선언적 코드를 사용한 관리(IaC)
쿠버네티스는 YAML 형식이나 JSON 형식으로 작성한 선언적 코드(매니페스트)를 통해 배포하는
컨테이너로 주변 리소스를 관리할 수 있어 IaC(Infrastructure as Code)를 구현할 수 있다. 선언적 코 2
드로 시스템 구축이나 관리를 자동화하고 오케스트레이션하는 방법은 컨테이너 이전의 가상화 기
술을 사용한 시스템에서도 AWS CloudFormation이나 OpenStack Heat 등으로 구현되어 있으
며, 쿠버네티스도 그에 준하는 것이 준비되어 있다. 왜 쿠버네티스가 필요할까?
코드 2-1 매니페스트 파일 예제
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample-deployment
spec:
replicas: 3
selector:
matchLabels:
app: sample-app
template:
metadata:
labels:
app: sample-app
spec:
containers:
- name: nginx-container
image: nginx:1.16
2.3.2 스케일링/오토 스케일링
쿠버네티스는 컨테이너 클러스터(쿠버네티스 클러스터)를 구성하여 여러 쿠버네티스 노드를 관리
한다. 컨테이너 이미지를 기반으로 쿠버네티스 위에 컨테이너를 배포할 때 같은 컨테이너 이미지
를 기반으로 한 여러 컨테이너(레플리카)를 배포하면 부하 분산 및 다중화 구조를 만들 수 있다.
또한, 부하에 따라서 컨테이너 레플리카 수를 자동으로 늘리거나 줄일(오토 스케일링) 수도 있다
(그림 2-3).
49
쿠버네티스_04.indd 49 2021-07-20 오후 1:32:59