[NHN Cloud] NHN Kubernetes Service(NKS) 를 이용한 커뮤니티 블로그 구축 사례
[DataUs] 커뮤니티 블로그 구축 사례 feat. NHN Cloud(NKS)
2022년 NHN Cloud 무료 교육일정 : https://doc.skill.or.kr/2022-NHN-Cloud-Education
NHN Cloud 사용자 가이드 : https://doc.skill.or.kr/nhn-cloud-user-guide
2022년 NHN Cloud 행사/프로모션 정보 공유 : https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion
1. 먼저 알아 두기
1.1 Kubernetes 란 무엇인가?
쿠버네티스(Kubernetes, 쿠베르네테스, "K8s")는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반입니다. 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있습니다. 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공하기 위함입니. 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작합니다.
1.2 NHN Kubernetes Service(NKS) 란?
해당 서비스가 궁금하신 분들은 NHN Cloud 에 방문 하시기 바랍니다.
NHN Kubernetes Service(NKS)는 컨테이너 오케스트레이션의 사실상 표준(de-facto standard)이 되어가고 있는 Kubernetes를 쉽게 운영할 수 있도록 도와주는 서비스입니다. NHN Kubernetes Service(NKS)로 NHN Cloud에 최적화된 Kubernetes 클러스터를 쉽게 만들어 사용할 수 있습니다.
NHN Cloud 클라우드에서 Kubernetes를 올바르고 안전하게 구동할 수 있게 Kubernetes 클러스터를 생성하고 관리할 수 있는 서비스입니다. 사용자는 웹 콘솔을 이용해 NHN Cloud에 꼭 맞는 Kubernetes 클러스터를 만들고 관리할 수 있습니다. 안전하고 효율적으로 운영할 수 있게 마스터는 NHN Cloud에서 관리하고, 사용자는 노드와 서비스, Pod(파드) 등을 관리합니다.
NHN Kubernetes Service(NKS)의 주요 기능은 다음과 같습니다.
NHN Cloud에 꼭맞는 Kubernetes 클러스터 생성과 관리
NHN Cloud의 기반 서비스와 연동
로드 밸런서를 이용한 서비스 공개
블록 스토리지와 연동한 퍼시스턴트 볼륨(Persistent Volume, PV) 지원
고가용성을 보장하는 마스터 관리
웹 콘솔을 이용한 쉬운 조작
클러스터 생성, 삭제, 조회
노드 그룹 생성, 삭제, 조회
kubectl 설정 지원
2. NHN Kubernetes Service(NKS) 를 이용하여 커뮤니티 블로그를 구축 설계도
이 글은 이전에 작성해 놓은 글인데 사용하기 쉽게 다시 작성 하게 되었습니다.
원본 글은 "DockerFile 을 이용하여 나만의 Docker Image 만들기" 입니다.
2.1 구축 환경
빠른 개발을위해 최소한의 시스템으로 구성.[NHN Kubernetes Service(NKS) 사용]
Manager Server 를 통해 NHN Kubernetes Service System 에 접속
Kubernetes Yaml 파일로 L4/WEB/WAS/DB 구성
Kubernetes Yaml 파일에서 Pod Image 는 Docker Hub 에 구성한 업로드 Image 사용
2.2 아키텍처 물리 설계 구성도
대규모 3-Tier 구성 : 로드 발란스를 이용하여 3-Tier 구성을 확장하는 구성 방식. 웹 시스템의 사용자가 많은 엔터프라이즈 어플리케이션일 경우 대부분 대규모 3-Tier 구성을 이용하고 있다.
2.3 Infra Instance 구성 방안
TYPE | Manager Server | NKS Server |
---|---|---|
Instance | u2.c1m1 | m2.c4m8 |
Base OS | Ubuntu Server 20.04 LTS | Ubuntu Server 18.04.6 LTS - Container (2022.01.20) |
Block Storage Type | HDD 20GB | SSD 1000GB |
IP 설정 | Floating IP Public IP | Public IP |
기타 사항 | 관리 Port 외부 접속 허용 | Kubernetes 버전 : v1.22.3 노드 수 : 3 오토 스케일러 : 사용 안 함 |
2.4 Network 구성 방안
Server | Floating IP | Public IP |
---|---|---|
Manager Server | 외부에서 접근이 가능하도 설정 | NKS Server 와 접근 가능하 도록 설정 |
NKS Server | - | NKS System 과 접근 가능하도록 설정 |
POD 구성 | Yaml Code 에 Loadbanacer 설정 | 내부 Pod 만 연결 설정 |
NHN Cloud 에서 Network 설정은 Security Groups 에서 알아 볼 수 있습니다.
2.5 Kubernetes Pod 구성 방안
Service 종류 | 종류 |
---|---|
Service Type | Floating IP(Loadbanacer) |
WEB/WAS Service | Docker Hub Image : bchwang/tomcat_mariadb:nginxtomcat Base Image : ubuntu:20.04 nignx : 1.18.0 Apache Tomcat : 9.0.45 openjdk : 1.8.0.292 Nodejs : v14.17.1 Service Port : 80, 8080 |
DB Service | Docker Hub Image: bchwang/tomcat_mariadb:mariadb Base Image : mariadb:10.4.18 Mysql root Passwd : root Mysql Database : deverse Home Directory : /home/dev Service Port : 3306 |
3. NHN Cloud Console 에서 만들어 보자
3.1 NHN Cloud Console 접속 하기
NHN Cloud 에 방문 하기 - 바로가기 -
3.1 NHN Cloud Instance 생성
먼저 Manager Server 를 만들어 보자
NHN Cloud > Console > Compute > instance > 인스턴스 생성
"그림. Instance 생성 -2" 에서 인스턴스 생성 시 이미지, 인스턴스 정보를 입력 하여야 한다.
또한 u2 계열의 인스턴트 타입은 문제가 발생 되었을 경우 손해배상 대상에서 제외된다는 것을 알아두셔야 합니다.
자세한 사항은 NHN Cloud 를 방문 하시기 바랍니다. - 바로가기 -
"그림. Instance 생성 -3" 에서 보안 그룹(Security Groups) 에서 접근 통제 설정을 한다.
자세한 사항은 Security Groups 를 참고하시기 바랍니다. - 바로가기 -
"그림. Instance 생성 -4" 에서 추가 블록 스토리지, 예약 스크립트 설정을 할 수 있다.
"그림. Instance 생성 -4" 에서 인스턴스의 생성 정보를 확인 하고 인스턴스 생성을 통해 만들 수 있습니다.
인스턴스를 생성하는 순간부터 과금이 시작됨을 알아 두시기 바랍니다.
3.2 NHN Kubernetes Service(NKS) 생성
NHN Kubernetes Service(NKS) 를 생성 해 보자.
NHN Cloud > Console > Container > NHN Kubernetes Service(NKS) > 클러스터 생성
"그림. NHN Kubernetes Service(NKS) 생성 -2" 에서 클러스터 이름, 기본 노드 그룹 등 설정을하여야 합니다.
클러스터 이름 : test-kubernetes
Kubernetes 버전 : v1.22.3
기본 노드 그룹 : Ubuntu Server 18.04.6 LTS - Container (2022.01.20)
인스턴스 타입 : m2.c4m8
노드 수 : 1 이상 (최대 10)
블록 스토리지 : SSD 1000GB
"그림. NHN Kubernetes Service(NKS) 생성 -3" 에서 오토 스케일러, 예약 스크립트 등의 설정이 있습니다.
사용 : 오토 스케일러에 대한 사용 여부를 선택
최소 노드 수 : 1 ~ X (기본 노드 수에 따라 변경)
최대 노드 수 : 3 ~ 10
감축 : 오토 스케일러에 대한 감축 사용 여부를 선택
리소스 사용량 임계치(%) : 시스템에 따른 설정이 필요(Default : 50)
임계 영역 유지 시간(분) : 시스템에 따른 설정이 필요(Default : 10)
증설 후 감축 지연 시간(분) : 시스템에 따른 설정이 필요(Default : 10)
"그림. NHN Kubernetes Service 생성 -4" 에서 클러스터의 생성 정보를 확인 하고 클러스터 생성을 통해 만들 수 있습니다.
클러스터 를 생성하는 순간부터 과금이 시작됨을 알아 두시기 바랍니다.
클러스터는 최대 3개까지 생성할 수 있습니다.
클러스터 생성 후 접속 방법은 "[NHN Cloud] NHN Kubernetes Service(NKS) 활용법" 에서 찾아 보시기 바랍다.
4. Kubernetes Yaml 만들기
4.1 NameSpace Yaml
4.2 MariaDB Yaml
4.3 Mariadb Service Yaml
4.4 Nginx & Tomcat Service Yaml
4.5 Nginx & Tomcat Yaml
아래의 내용 중 hostAliases 의 ip 정보가 mariadb 의 IP 정보를 입력 하여야 함.
MariaDB 를 실행 한 후에
kuberctl get pod -n project
로 나온 IP 값을 입력 하면 됨.
5. NHN Kubernetes Service(NKS) 를 이용하여 커뮤니티 블로그 실행
5.1 NHN Kubernetes Service(NKS) 실행 하기
아래의 yaml 파일을 정리 하여 첨부 하였습니다.
5.2 크롬 접속 화면
6. 문의하기
Docker or NHN Kubernetes Service 가 궁금하신 분들은 아래의 메일로 보내주시기 바랍니다.
E-Mail : hwang79xx@msn.com
2022년 NHN Cloud 무료 교육일정: https://doc.skill.or.kr/2022-NHN-Cloud-Education
NHN Cloud 사용자 가이드 : https://doc.skill.or.kr/nhn-cloud-user-guide
2022년 NHN Cloud 행사/프로모션 정보 공유 : https://doc.skill.or.kr/2022-NHN-Cloud-Event-Promotion
Last updated