시작하기 전에
이 글은 Apps 101 과정의 다섯 번째 글입니다. Apps101을 잘 따라오고 계시지요?
이번 글에서는 Tomcat을 워크로드를 생성하고 Nginx 서버 배포하기에서 생성한 Nginx와 Tomcat 연동 해보겠습니다.
Tomcat 워크로드 생성
Nginx 서버 배포하기와 동일한 서비스 맵에서 워크로드 생성을 합니다.
STEP 1. 워크로드 유형과 식별 정보 설정
워크로드 유형은 Multi Instance로 생성을 합니다.
워크로드의 기본 정보를 입력 합니다.
- 이름 : tomcat-workload
- 설명 : tomcat workload

[그림. 워크로드 기본 정보]
STEP 2. 사용할 컨테이너 이미지 지정
컨테이너를 추가하여 기본 정보를 입력 합니다.
- 컨테이너명 : tomcat
- 이미지 : tomcat:latest

[그림. 컨테이너 등록 팝업 화면]
STEP 3. Tomcat의 서비스 포트 지정
서비스 포트 편집 버튼을 클릭 하여 포트 추가를 합니다.
- 이름 : tomcat
- 프로토콜 : TCP
- 타겟포트 : 8080
- 서비스 포트 : 8080

[그림. 서비스 포트 추가 팝업 화면]

[그림. 워크로드 생성 화면]
STEP 4. Tomcat의 기동 확인
생성 버튼을 클릭 하고 워크로드가 정상 Running 상태를 확인 합니다.

[그림. tomcat-workload 워크로드 상태 화면]
Nginx와 연동 하기
이제 앞서의 글에서 생성된 nginx-workload의 Node Port로 접속 하면 tomcat-workload으로 포트 포워딩하도록 nginx의 default.conf파일을 변경 하도록 하겠습니다. 참고로 tomcat-workload의 서비스 포트(8080)는 워크로드 이름으로 Cluster IP 타입으로 생성이 되어있어 nginx-workload에서 http://tomcat-workload:8080로 포트 포워딩 하면 됩니다.
nginx의 설정을 변경 하기 위한 작업 순서는 다음과 같습니다.
- 컨피그 맵을 생성
- nginx의 봄륨에 컨피그 맵 추가
- 생성한 볼륨을 볼륨 마운트에 추가
STEP 1. 컨피그 맵 생성
서비스 화면은 우측 상단에 ‘설정 정보’메뉴를 클릭하여 컨피그 맵 화면으로 이동합니다.

[그림. 서비스 메뉴]

[그림. 설정 정보 컨피그 맵 목록]
- 이름 : nginx-configmap
- 설명 : nginx 설정 컨피그 맵
- KEY : default.conf
- VALUE :
- Copy to Clipboard
STEP 2. nginx의 볼륨에 컨피그 맵 추가
서비스 워크로드 화면에서 nginx-workload 워크로드를 클릭 하여 수정 화면으로 이동 합니다.
화면 하단의 볼륨 패널 우측에 ‘추가‘버튼을 클릭 하여 볼륨 추가 팝업을 뛰웁니다.

[그림. 워크로드 볼륨 패널 박스]
- 볼륨 이름 : nginx-configmap-volume
- 컨피그 맵 선택 : nginx-configmap

[그림. 볼륨 팝업 화면]
STEP 3. 생성한 볼륨을 볼륨 마운트에 추가
생성된 ‘nginx-configmap-volume’ 볼륨을 볼륨 마운트에 추가 해줍니다.

[그림. 볼륨 마운트 패널 박스]
- 컨테이너 : nginx
- 볼륨 선택 : nginx-configmap-volume
- 컨테이너 경로 : /etc/nginx/conf.d/default.conf
- 서브 경로 : default.conf

[그림. 볼륨 마운트 팝업 화면]

[그림. 볼륨, 볼륨 마운트 패널 박스]
nginx-workload가 정상적으로 기동 되는지 확인 합니다.

[그림. nginx-workload 워크로드 상태]
STEP 4. 확인
마지 막으로 nginx-workload의 Node Port로 접속 하여 Tomcat 화면이 나오면 nginx-workload에서 tomcat-workload로 포트 포워딩 되었습니다.

[그림. tomcat 접속 화면]
마치며 …
웹 서비스의 3개 요소 중 Nginx와 Tomcat을 배포하였습니다. 지금까지 어렵지 않게 잘 따라오고 계시리라 믿습니다. 다음 글에서는 본 예제의 마지막 요소인 MySQL을 배포하는 과정을 설명하겠습니다.
댓글을 남겨주세요