--- title: kubectl을 사용해서 디플로이먼트 생성하기 weight: 10 --- <!DOCTYPE html> <html lang="ko"> <body> <link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet"> <div class="layout" id="top"> <main class="content"> <div class="row"> <div class="col-md-8"> <h3>목표</h3> <ul> <li>애플리케이션 디플로이먼트(Deployment)에 대해 배운다.</li> <li>kubectl로 첫 애플리케이션을 쿠버네티스에 배포한다.</li> </ul> </div> <div class="col-md-8"> <h3>쿠버네티스 디플로이먼트</h3> <p> 일단 쿠버네티스 클러스터를 구동시키면, 그 위에 컨테이너화된 애플리케이션을 배포할 수 있다. 그러기 위해서, 쿠버네티스 <b>디플로이먼트</b> 설정을 만들어야 한다. 디플로이먼트는 쿠버네티스가 애플리케이션의 인스턴스를 어떻게 생성하고 업데이트해야 하는지를 지시한다. 디플로이먼트가 만들어지면, 쿠버네티스 컨트롤 플레인이 해당 디플로이먼트에 포함된 애플리케이션 인스턴스가 클러스터의 개별 노드에서 실행되도록 스케줄한다. </p> <p>애플리케이션 인스턴스가 생성되면, 쿠버네티스 디플로이먼트 컨트롤러는 지속적으로 이들 인스턴스를 모니터링한다. 인스턴스를 구동 중인 노드가 다운되거나 삭제되면, 디플로이먼트 컨트롤러가 인스턴스를 클러스터 내부의 다른 노드의 인스턴스로 교체시켜준다.<b>이렇게 머신의 장애나 정비에 대응할 수 있는 자동 복구(self-healing) 메커니즘을 제공한다.</b></p> <p>오케스트레이션 기능이 없던 환경에서는, 설치 스크립트가 애플리케이션을 시작하는데 종종 사용되곤 했지만, 머신의 장애가 발생한 경우 복구를 해주지는 않았다. 쿠버네티스 디플로이먼트는 애플리케이션 인스턴스를 생성해주고 여러 노드에 걸쳐서 지속적으로 인스턴스가 구동되도록 하는 두 가지를 모두 하기 때문에 애플리케이션 관리를 위한 접근법에서 근본적인 차이를 가져다준다.</p> </div> <div class="col-md-4"> <div class="content__box content__box_lined"> <h3>요약:</h3> <ul> <li>디플로이먼트</li> <li>Kubectl</li> </ul> </div> <div class="content__box content__box_fill"> <p><i> 디플로이먼트는 애플리케이션 인스턴스를 생성하고 업데이트하는 역할을 담당한다. </i></p> </div> </div> </div> <br> <div class="row"> <div class="col-md-8"> <h2 style="color: #3771e3;">쿠버네티스에 첫 번째 애플리케이션 배포하기</h2> </div> </div> <div class="row"> <div class="col-md-8"> <p><img src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg"></p> </div> </div> <br> <div class="row"> <div class="col-md-8"> <p><b>Kubectl</b>이라는 쿠버네티스 CLI를 통해 디플로이먼트를 생성하고 관리할 수 있다. Kubectl은 클러스터와 상호 작용하기 위해 쿠버네티스 API를 사용한다. 이 모듈에서는, 쿠버네티스 클러스터 상에 애플리케이션을 구동시키는 디플로이먼트를 생성하기 위해 필요한 가장 일반적인 Kubectl 명령어를 배우게 된다.</p> <p>디플로이먼트를 생성할 때, 애플리케이션에 대한 컨테이너 이미지와 구동시키고자 하는 복제 수를 지정해야 한다. 디플로이먼트를 업데이트해서 이런 정보를 나중에 변경할 수 있다. 모듈 <a href="/ko/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a>와 <a href="/ko/docs/tutorials/kubernetes-basics/update/update-intro/">6</a>의 부트캠프에서 어떻게 스케일하고 업데이트하는지에 대해 다룬다.</p> </div> <div class="col-md-4"> <div class="content__box content__box_fill"> <p><i> 애플리케이션이 쿠버네티스 상에 배포되려면 지원되는 컨테이너 형식 중 하나로 패키지 되어야한다. </i></p> </div> </div> </div> <div class="row"> <div class="col-md-8"> <p> 첫 번째 디플로이먼트로, NGINX를 사용해 모든 요청을 에코(echo)하는 도커 컨테이너로 패키지한 hello-node 애플리케이션을 사용해보자. (아직 hello-node 애플리케이션을 작성하고 컨테이너를 활용해서 배포해보지 않았다면, <a href="/ko/docs/tutorials/hello-minikube/">Hello Minikube 튜토리얼</a>의 지시를 따른다.) <p> <p>이제 디플로이먼트를 이해했으니, 온라인 튜토리얼을 통해 우리의 첫 번째 애플리케이션을 배포해보자!</p> </div> </div> <br> <div class="row"> <div class="col-md-12"> <a class="btn btn-lg btn-success" href="/ko/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/" role="button">대화형 튜토리얼 시작하기 <span class="btn__next">›</span></a> </div> </div> </main> </div> </body> </html>