NHN Cloud

[ NHN Cloud - NKS ] 쿠버네티스 탐험하기 #1

앙뚱이 2023. 12. 26. 16:49

NHN 클라우드의 인스턴스 정보들을 DB에 넣고 여러가지 API를 이용한 테스트 겸 실제 환경에 적용할 코드를 작성하고 있었는데

실수로 DB 서버를 삭제했다. 그래서 그냥 쿠버네티스나 한번 해보려고 한다.

 

오늘은 일단 쿠버 클러스터 생성 후에 master 서버에 한번 접속하는 것 까지만 하겠다.

아 그리고! 하나 더 커스텀된 워커 노드 OS 이미지를 만드는 방법까지 -> 그 이유는 워커 노드에 필수로 설치되어야 하는 App( 보안 Agent 같은거 )이 있는 경우 커스텀된 노드 이미지를 만들어서 워커 노드를 생성해야 하는 경우가 있기 떄문이다.

 

차례

- nks 클러스터 생성

- 워커노드 이미지 만들기

- 맥북에 kubectl 설치

- 클러스터 관리를 위한 설정

 

 

- nks 클러스터 생성! #1

 

NHN 콘솔 접속 - 왼쪽 사이드바에서 Container 클릭 -> NHN KUbernetes Service 클릭 -> 클러스터 생성

 

예전에 수동으로 클러스터를 구성한 적이 있는데 그땐 꽤 시간이 오래 걸렸는데 플랫폼을 이용하면 매우 쉽다.

 

- nks 클러스터 생성! #2 - 클러스터 생성 전에 Config를 넣어주자

설정할 게 많진 않지만 조금 헷갈릴 순 있다.

노드가 위치할 vpc와 서브넷을 지정해주고

k8s 서비스 네트웍과 파드 네트웍, 파드 서브넷 크기를 지정해준다.

k8s 서비스 네트웍은 서비스를 위한 엔드포인트를 지정하는 것이며 파드 네트워크는 파드들의 네트워크 대역대를 말하며 파드 서브넷 크기는 각 노드에서 할당될 대역대를 말한다. 노드의 vpc대역대와 서브넷 대역대와 겹치게 지정해주면 안된다. 클러스터에서 vpc 대역대의 Host를 참조하는 기능이 있다면 상관없지만 NHN 쿠버는 그 기능이 없다.

 

마지막으로 API endpoint는 퍼블릭으로 지정 할 것이다.  왜냐면 난 공인망 통하여 테스트를 진행할 예정이다. VPC 내부에서만 접속할 경우 Private을 선택해주도록 하자 

 

아 그리고 참고로 저 API 엔드포인트는 NKS에 명령어를 날릴 수 있는 엔드포인트다. 

 

나머지 설정부분은 그냥 인스턴스 생성할때와 매우 흡사하니 생략하겠다.

 

- 워커 노드 이미지 만들기 #1 

이걸 왜 하냐면 일반 OS 이미지 같은 경우에는 쿠버네티스 워커노드 이미지로 사용할 수 없다.

따라서 여러 Agent나 OS 설정을 마친 후에 일반 OS 이미지를 떠서 쿠버네티스용 워커 노드 이미지를 따로 만들어야 한다.

 

계정 설정 및 루트 파일 시스템에 파일을 만든 후에 인스턴스 이미지를 생성한다. 왼쪽 체크박스 클릭 후 이미지 생성을 클릭하면 완료.

이미지 확인은 웹에서 Compute 클릭 -> image로 확인가능.

 

 

- 워커 노드 이미지 만들기 #2

이미지 생성이 완료 되었으면 웹에서

Compute 클릭 -> image builder 이동한 후에 이미지 템플릿 생성 클릭

하면 아래와 같은 그림이 나온다.

쿠버네티스 워커노드가 필요하니 해당 어플리케이션을 선택한 후에 아까 생성한 OS 이미지 블록스토리지 사이즈 이상을 설정하여 템플릿을 생성하도록 한다.

 

 

- 워커 노드 이미지 만들기 #3

생성한 템플릿 클릭 -> 이미지 빌드 클릭 하면 아래와 같은 창이 뜬다.

개인 이미지에서 아까 생성한 이미지를 클릭한다. 이렇게 하면 쿠버네티스 워커노드용 이미지 생성이 완료된다.

 

- 맥북에 kubectl 설치

https://docs.nhncloud.com/ko/Container/NKS/ko/user-guide/#kubectl

 

NHN 공식 가이드이다. 나는 맥OS를 사용하므로

명령어:

- curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.7/bin/darwin/amd64/kubectl

- cp -rp kubectl /usr/local/bin

### 정상 확인
- kubectl

 

위와 같이 나오면 Kubectl 설치 완료

 

 

- 클러스터 관리를 위한 설정 #1

내 PC에서 클러스터 접속 Config를 설정해보자 일단 필요한 정보들!

API 엔드포인트, kubeconfig 파일을 가져오자 NHN 웹 콘솔에서

 

 

- 클러스터 관리를 위한 설정 #2

kubeconfig 파일에 api 엔드포인트는 포함되어있으니

1. kubeconfig 파일을 환경 변수로 지정해주거나

2. 아니면 지정된 디렉토리에 해당 파일을 넣어주도록 한다.

 

1번 방법은 명령어 하나 실행해주면 완료.

명령어 : export KUBECONFIG="kubeconfig 파일 절대경로"

 

2번 방법은 명령어 2개 실행해주면 완료

명령어 : mkdir -p ~/.kube

               ## 쿠버 파일 이름 반드시 config로 변경해서 저장해야한다 안그러면 안된다 ㅠ

              mv 쿠버 파일 이름 ~/.kube/config

 

<정상화면>

 

 

----------

이제 접속 되는거 확인했으니 오늘부터 쿠버 공부 시작!!!