이 글은 Apps101 과정의 두번째 입니다.

지난 번 글에 이어 이번 글에서는 Apps에서 워크로드를 배포하기 위한 기본 환경을 준비하는 과정을 보여드립니다.

  1. 프로젝트 작업 공간, 워크스페이스 만들기
  2. 워크로드 배포를 위한 공간, 서비스맵 만들기
  3. Nginx 배포하기
  4. Nginx 를 외부로 노출하기
  5. Nginx에 볼륨(스토리지) 연결하기
  6. Tomcat을 Nginx에 연결하기
  7. MySQL 배포하기
  8. Tomcat 이미지로 빌드하여 배포하기
  9. Nginx-Tomcat-MySQL을 템플릿으로 저장하고, 배포하기

서비스맵이란?

앞서의 글에서 워크스페이스를 만들었습니다. 워크스페이스가 프로젝트 작업공간이라면, 서비스맵은 어플리케이션을 네임스페이스로 구분하여 배포할 수 있는 단위입니다. 서로 연관성이 있거나 상호 의존성이 있는 단위 어플리케이션들을 동일한 서비스맵에 배포하고, 다른 서비스맵과는 분리합니다.  본 과정의 예제로 삼고 있는 3-Tier 웹서비스와 같이 여러개의 단위 어플리케이션이 하나의 서비스를 구성하는 경우, 하나의 서비스맵으로 묶어서 관리합니다.

Kubernetes 에 대한 이해가 있다면,  Kubernetes의 Namespace 오브젝트의 생성과 Namespace내의 리소스들을 관리를 하는것이 ‘서비스 맵‘ 이라고 설명드릴 수 있습니다. kubernetes 의 Namespace에 대한 상세한 정보는  여기 에서 확인하세요.

서비스 맵 생성하기

STEP 1. 사용자로 로그인

앞서 프로젝트 작업 공간, 워크스페이스 만들기에서 워크스페이스를 생성하면서 등록한 사용자 계정으로 Apps 로그인 화면으로 접속해 로그인을 합니다. 관리자 계정으로도 사용자 권한의 모든 작업이 가능하나 사용자 계정은 좌측 메뉴가 달라져 관리자 메뉴를 사용할 수 없습니다.

로그인하는 사용자가 최초로 로그인하는 경우 그림처럼 비밀번호 변경 화면이 노출되고 비밀번호 변경할 수 있습니다.

비밀번호 변경 화면

[그림. 비밀번호 변경 화면]

비밀번호가 변경된 후에는 로그아웃 되므로 다시 아이디 패스워드를 입력해 재로그인 해야 합니다.

STEP 2. 서비스 맵 그룹 생성

좌측 메뉴중 ‘DevOps‘ > ‘서비스‘ 을 선택하면 서비스 맵 현황 화면이 나타나며 서비스 맵 그룹과 등록된 서비스 맵들이 보여집니다.
최초에는 default로 만들어진 ‘Default’라는 이름의 서비스 맵 그룹 하나만 존재 합니다.

서비스 맵 그룹은 사용자가 서비스 맵을 유형이나 분류에 맞게 묶어서 관리할 수 있도록 해줍니다.
그룹명 오른쪽에 화살표를 선택하면 다음 그림과 같은 서비스 맵 그룹메뉴가 노출되고 메뉴항목을 선택하여 각 기능을 처리할 수 있습니다.

서비스 맵 그룹 메뉴

[그림. 서비스 맵 그룹 메뉴]

서비스 맵 그룹 생성

[그림. 서비스 맵 그룹 생성]

이 글에서는 별도의 맵 그룹은 생성하지 않고 ‘Default’ 그룹에 서비스 맵을 생성 하도록 하겠습니다.

STEP 3. 서비스 맵 생성

서비스 맵 생성 버튼

[그림. 서비스 맵 생성 버튼]

서비스 맵을 생성할 서비스 맵 그룹의 오른쪽에 있는 ‘서비스 맵 생성‘ 버튼을 클릭하면 다음과 같이 서비스 맵 생성화면이 보여 집니다.

서비스 맵 생성 화면

[그림. 서비스 맵 생성 화면]

  • 클러스터(ex. Acorn Cluster)
    워크스페이스 정보에 등록된 클러스터 리스트가 노출되고 서비스 맵에서 사용할 클러스터를 선택 하면 됩니다.
  • 맵 이름(ex. test-service-map)
    서비스 맵 이름을 입력 하시면 됩니다.
  • 네임스페이스 이름(ex. test-namespace)
    클러스터내에서 이 서비스 맵이 사용할 K8s Namespace 오브젝트의 이름 입니다. 중복되지 않는 의미 있는 이름을 사용하시면 됩니다.

화면에서 데이터 입력 후 ‘생성’ 버튼을 선택하면 서비스 맵 이 생성되고 서비스 맵 현황 화면으로 이동 합니다.

서비스 맵 카드

[그림. 서비스 맵 카드]

위 생성된 서비스 맵 카드 그림에서 각 아이콘은 CPU, Memory, 볼륨, 서비스를 나타냅니다. 현재는 사용하는 리소스가 없기 때문에 모두 0값이지만, 이 후에 워크로드나 서비스등이 등록되면 서비스 맵 안의 워크로드에서 요청한 cpu, memory, 볼륨 리소스의 요청량과 생성된 서비스의 갯수가 모두 합해져서 보여집니다.

생성된 서비스 맵을 클릭하면 워크로드가 선택된 다음과 같은 화면이 보여 집니다.

서비스맵 상세

[그림. 서비스맵 상세]

이제 워크로드 및 서비스 등을 관리할 수 있는 서비스 맵이 생성 되었습니다.

마치며…

Apps 에서 서비스 맵이 생성이 되고 나면 생성된 서비스 맵 안에 원하는 Container 이미지를 가지고 워크로드 배포를 할 수 있습니다. 필요에 따라서는 볼륨생성해 워크로드에 마운트 하고 서비스를 만들어 외부에 오픈할 수도 있습니다.  이로써 어플리케이션 배포를 위한 준비는 다 되었습니다. 다음 글Nginx 배포하기부터는 실제 어플리케이션을 하나씩 배포하면서 서비스를 만들어 가겠습니다.

수고하셨습니다.