시작하기 전에…

이 글은 Apps 101 과정의 세번째 글입니다. 전체 과정의 구성을 살펴보시려면 여기를 들러 주세요.

Apps 를 이용해 Nginx를 배포하는것은 몇가지 입력과 클릭만으로 빠르고 간편하게 배포할 수 있습니다. ‘Nginx 배포하기’ 는 Apps 상에서 다른말로 하면 ‘Nginx 이미지를 사용하는 컨테이너를 포함하는 워크로드 생성과 실행’ 이라고 말씀드릴 수 있습니다.

워크로드 라는 단어를 처음 보셨다면 궁금해 하실수도 있는데 단순하게 컨테이너 하나만 배포 하는 경우라면, 워크로드는 서버라고 생각하시면 되고
컨테이너는 서버내에 존재하는 Application 이라 생각하셔도 됩니다.

그럼 간단한 nginx 워크로드 생성해 보도록 하겠습니다.

kubernetes 상의 워크로드와 컨테이너를 자세히 알고 싶으시면 아래 링크를 확인하세요.[쿠버네티스 워크로드] ,[쿠버네티스 컨테이너]

Nginx 컨테이너 이미지를 배포하기

nginx 컨테이터 이미지를 배포하기 위해서는 몇가지 정보만 입력하면 됩니다.

STEP 1. 워크로드 유형 선택

먼저 여러 워크로드 그룹중에서 워크로드를 생성할 워크로드 그룹을 선택하고, 선택한 워크로드 그룹에 있는 워크로드 추가 버튼(‘+’) 를 눌러야 합니다.

워크로드가 생성된 후에 각 그룹간에 워크로드를 이동할 수 있으니 혹시 원치않는 그룹에 만들었다 하더라도 걱정하지 않으셔도 됩니다.

워크로드 생성 버튼

[그림. 워크로드 생성 버튼]

위 그림에서 워크로드 그룹의 ‘+’ 버튼을 눌러 워크로드 생성을 위한 유형선택 레이어 팝업을 확인할 수 있습니다.

워크로드 유형

[그림. 워크로드 유형]

‘Multi Instance’ 유형을 선택하세요. 워크로드의 유형을 선택후 ‘생성’을 클릭 하면 워크로드 생성 화면으로 이동합니다.

STEP 2. 워크로드 기본정보 입력

워크로드 유형 선택 후 아래 그림과 같이 워크로드 생성 화면으로 전환되면 기본정보의 이름, 설명 등을 입력합니다.

워크로드 생성 화면

[그림. 워크로드 생성 화면]

실제로는 사용하실 값을 입력하면 되지만 이 글에서는 이름은 ‘nginx-workload’, 설명은 ‘Test Workload’ 로 입력 하겠습니다.

STEP 3. 컨테이터 정보 추가

워크로드 생성 화면에서 컨테이너 단락의 ‘추가’ 버튼을 눌러 컨테이터 등록 팝업을 띄우세요.

컨테이터 생성 팝업

[그림. 컨테이터 생성 팝업]

컨테이너 기본정보에 다음과 같이 입력 하세요.

컨테이너명 : nginx
이미지 형식 : 직접입력
이미지 : nginx:latest

하단의 CPU, Memory 정보는 수정하지 않고 기본값으로 하겠습니다.
입력 완료후 ‘적용’ 버튼을 눌러 주세요.

STEP 4. 워크로드 생성 완료

컨테이너 정보까지 등록 되었으면 우측 상단의 ‘생성’ 버튼을 누르세요.

워크로드 생성이 완료되면 자동으로 실행이 되고 다음 화면과 같이 서비스 맵의 워크로드 탭으로 화면이 이동 합니다.

nginx 워크로드 실행

[그림. nginx 워크로드 실행]

위 그림에서 보이듯이 Nginx 이미지가 ‘Running’ 상태로 정상적으로 배포 및 실행중 입니다.

워크로드가 정상적으로 배포가 되고 실행이 되면 워크로드 카드의 상태가 초록색의  ‘Running’ 일 것입니다. 만약 배포실패 하거나 정상 실행되지 않았다면 상태가 ‘Pending’ 이나 오렌지색의 ‘Running’ 으로 보여 집니다.

워크로드 그룹내의 워크로드 카드는 워크로드에 대한 상태, 인스턴스갯수, 사용 리소스, update 시간등 이름외의 추가적인 간략한 정보를 포함하고 있습니다.

마무리

글에서도 확인 가능 하듯이 Apps를 이용하면 간단한 입력과 클릭 만으로도 전통적인 서버 배포 방식이나 kubernetes 의 yaml를 이용해 배포하는 것보다 훨씬 빠르고 간편하게 원하는 이미지를 배포할 수 있습니다.

Apps 에서는 Kubenetes의 Pod 와 Container 에 해당하는 여러 기능들을 ‘서비스 맵’ 내의 여러 관리 기능과 워크로드를 통해 처리 가능 합니다.

워크로드 배포는 이 글처럼 이미 공개 되어 있는 이미지를 이용해 배포할 수도 있고 Apps 의 빌드 기능을 이용해 build된 이미지를 사용할 수도 있으며, 볼륨등의 리소스를 이용해 처리할 수도 있으며 그 외 더 고급의 기능들이 포함되어 있습니다.

다음 글에서는 외부에서 접속 가능한 서비스를 만들어 위에서 배포된 Nginx에 접근해 보도록 하겠습니다.