시작하기 전에…

이 글은 Apps 101 과정의 일곱 번째 글입니다.

지난 포스트에서 Nginx와 Tomcat을 배포하였습니다.

이제 Tomcat의 어플리케이션에 연동될 데이터를 저장할 데이터베이스 중 Mysql을 배포하여 서비스 할 수 있도록 아래 순서대로 구성해 보도록 하겠습니다.

  • 스토리지 볼륨 생성하기 – 데이터베이스의 데이터를 저장 공간
  • 시크릿 생성하기 – 보안을 위한 계정 정보
  • 컨피그맵 생성하기 – 서비스에 필요한 초기 스키마 생성
  • Mysql 배포하기

스토리지 볼륨 생성하기

먼저 Mysql 데이터를 저장할 스토리지 볼륨을 생성해보겠습니다.

‘서비스 맵’ 화면의 상단메뉴 ‘스토리지 볼륨’을 클릭하여 ‘스토리지 볼륨’ 화면으로 이동합니다.

스토리지 볼륨

스토리지 볼륨

‘볼륨 생성’ 버튼을 클릭한 후, 스토리지 볼륨 생성 화면에서 스토리지 볼륨 타입, 스토리지, 액세스 모드, 이름, 용량을 입력하여 ‘생성’ 버튼을 클릭해주세요.

스토리지 볼륨 - 스토리지 볼륨 생성

스토리지 볼륨 – 스토리지 볼륨 생성

그러면 아래와 같이 위에서 입력한 정보로 스토리지 볼륨이 생성된 것을 확인할 수 있습니다.

스토리지 볼륨 생성 확인

스토리지 볼륨 생성 확인

시크릿 생성하기

시크릿은 비밀번호, OAuth 토큰, ssh 키와 같은 민감한 정보들을 저장하는 용도로 사용하며 KEY/VALUE 형태로 저장됩니다.

그럼 Mysql에서 사용할 계정정보를 시크릿으로 생성해보도록 하겠습니다.

먼저 ‘서비스 맵’ 화면의 상단메뉴 ‘설정 정보’을 클릭하여 ‘설정 정보’ 화면으로 이동합니다.

‘설정 정보’ > 좌측 메뉴의 ‘시크릿’ 을 클릭하여 시크릿 화면으로 이동합니다.

시크릿

시크릿

‘시크릿 생성’ 버튼을 클릭한 후, 시크릿 생성 화면에서 이름, 설명, 유형를 입력합니다.

그리고 Mysql에서 필요한 환경변수를 아래를 참고하여 KEY/VALUE로 입력한 다음 ‘생성’ 버튼을 클릭합니다.

KEYVALUE
MYSQL_ROOT_PASSWORDtest1234
MYSQL_DATABASEwebsystique
MYSQL_USERmyuser
MYSQL_PASSWORDmypassword

시크릿 - 시크릿 생성

시크릿 – 시크릿 생성

그러면 아래와 같이 위에서 입력한 정보로 시크릿이 생성된 것을 확인할 수 있습니다.

시크릿 생성 확인

시크릿 생성 확인

컨피그맵 생성하기

컨피그맵은 설정 정보들을 저장하는 용도로하며 KEY/VALUE 형태로 저장됩니다.

그럼 Mysql에서 사용할 초기 생성 스크마 생성 script를 컨피그맵으로 생성해보도록 하겠습니다.

먼저 ‘서비스 맵’ 화면의 상단메뉴 ‘설정 정보’을 클릭하여 ‘설정 정보’ >’컨피그맵’ 화면으로 이동합니다.

컨피그맵

컨피그맵

‘컨피그 맵 생성’ 버튼을 클릭한 후, 컨피그 맵 생성 화면에서 이름, 설명을 입력합니다.

그리고 Mysql에서 필요한 설정을 아래를 참고하여 KEY/VALUE로 입력한 다음 ‘생성’ 버튼을 클릭합니다.

  • 초기 스키마 생성 Script
    • KEY: 1-init-schema.sql
    • VALUE:
Copy to Clipboard
  • 초기 데이터 입력 Script
    • KEY: 2-init-data.sql
    • VALUE:

Copy to Clipboard
컨피그맵 생성

컨피그맵 생성

그러면 아래와 같이 위에서 입력한 정보로 컨피그맵이 생성된 것을 확인할 수 있습니다.

컨피그맵 생성 확인

컨피그맵 생성 확인

Mysql 배포하기

이제 Mysql 배포하기 위한 사전 작업이 끝났습니다.

워크로드 생성 화면으로 이동하여 워크로드를 생성해보도록 하겠습니다.

워크로드 생성 - 유형 선택

워크로드 생성 – 유형 선택

Mysql은 Stateful Application 이므로 ‘Single Instance’를 선택한 후, ‘생성’ 버튼을 클릭하세요.

그러면 ‘워크로드 생성’ 화면에서 각 항목을 입력하신 후, ‘생성’ 버튼을 클릭합니다.

워크로드 생성

워크로드 생성

먼저 ‘기본 정보’ 항목 중 이름, 설명 항목에 각각 입력합니다.

이번엔 Mysql 이미지를 설정할 ‘컨테이너’ 항목을 입력하겠습니다.

‘컨테이너’>’기본 정보’ 에서는 컨테이너의 이름, 이미지 정보, 리소스 정보를 입력합니다.

워크로드 생성 – 컨테이너@기본정보 – 직접 입력

워크로드 생성 – 컨테이너@기본정보 – 직접 입력

컨테이너에서 사용할 환경변수를 설정할 수 있습니다.

Mysql 은 root 비밀번호 설정이 필요한데 MYSQL_ROOT_PASSWORD 환경변수를 이용하여 가능합니다.

MYSQL_ROOT_PASSWORD 환경변수의 값을 지정할 시 3가지(직접 입력, 시크릿, 컨피그맵) 방식으로 가능한데 비밀번호이므로 위에서 설정한 시크릿을 선택하여 설정하도록 하겠습니다.

같은 방식으로 MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD 도 아래와 같이 구성하여 줍니다.

워크로드 생성 - 컨테이너@환경변수

워크로드 생성 – 컨테이너@환경변수

이번엔 Mysql에서 사용할 포트를 서비스로 생성하도록 하겠습니다.

‘서비스 포트’>’편집’ 버튼을 클릭하여 Mysql의 기본 포트인 3306으로 설정하도록 하겠습니다.

워크로드 생성 - 서비스 포트

워크로드 생성 – 서비스 포트

이제 마지막 입니다.

이것도 위에서 생성한 스토리지 볼륨/컨피그맵을 Mysql Data 저장소와 초기 스키마/데이터를 마운트하도록 하겠습니다.

우선 ‘볼륨’>’추가’버튼을 클릭하여 컨피그맵을 볼륨으로 아래와 같이 생성하도록 합니다.

워크로드 생성 - 볼륨

워크로드 생성 – 볼륨

그런 다음 ‘볼륨 마운트’ > ‘추가’ 버튼을 클릭하여 컨테이너를 선택합니다.

볼륨 선택에서 위에서 생성한 ‘script’를 선택한 후, 두번 ‘추가’ 버튼을 클릭하여 1-init-schema.sql, 2-init-data.sql 을 마운트하여 줍니다.

다시 볼륨 선택에서 ‘스토리지 볼륨’에서 생성한 ‘mysql-data’를 선택한 후, ‘추가’ 버튼을 클릭하여 마운트한 다음 ‘적용’ 버튼을 클립합니다.

워크로드 생성 - 볼륨 마운트

워크로드 생성 – 볼륨 마운트

그리고 상단의 ‘생성’ 버튼을 클릭하여 워크로드를 생성합니다.

Mysql 배포 확인

워크로드가 생성되면 ‘상태’ 화면에서 확인할 수 있습니다.

Mysql 배포 확인 - 상태

Mysql 배포 확인 – 상태

‘웹터미널’ 버튼을 클릭하여 실제로 구성한대로 배포되었는 지 확인하실 수 있습니다.

Mysql 배포 확인 - 웹터미널

Mysql 배포 확인 – 웹터미널