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
   26   27   28   29   30   31   32   33   34   35   36