brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Dec 26. 2024

NKS 3탄-1. 테라폼으로 서비스용 NKS만들기

싱글 AZ 서비스용 NKS이다.


cgame 서비스 만들어보자.

NAT도 구성한다.

Private Subnet에 NKS구성한다.

DB 서브넷도 별도로 구성한다.



<1>  테라폼 시작하기

<2> 콘솔로 명령서버 네트워크와 ncp-cgame-com 명령서버 1대 만들기

<3> 테라폼으로 네트워크와 NKS 생성 하자.

<4> 생성 확인 




<1>  테라폼 시작하기


https://brunch.co.kr/@topasvga/2420



<2> 콘솔로 명령서버 네트워크와 ncp-cgame-com 명령서버 1대 만들기



1

# 명령서버 네트워크 생성


ncp-cgame3-vpc

192.168.0.0/21


ncp-cgame3-pub1

192.168.0.0/24



# 명령서버 생성

Rocky Linux 8.10

Standard (필수)

vCPU 2개 , 메모리8GB 선택  (필수)

ncp-cgame3-com

새로운 공인 IP 할당





2

명령툴들 설치하기


1) 네이버 클라우드에 권한이 있어야 한다.- access-key,secret-key

2) ncloud configure

3) ncloud CLI 다운로드

4) # NKS 사용을 위한 인증 - ncp-iam 설치

5) # kubectl 명령어 설치

6) # alials 단축 명령어

7) 테라폼 유틸 설치




1

네이버 클라우드에 권한이 있어야 한다.

 access-key , secret-key를 알아야 한다.


오른쪽 위 본인 계정 > 이용관리 >  계정 관리  > 인증키 관리

https://www.ncloud.com/mypage/status/usage


Access Key ID ,  Secret Key  복사해 두기


ncp_iam_xxxxxxxxxxx

ncp_iam_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx




2

public 서브넷에  로키 리눅스로 개발자 명령서버 1대를 만들자.

명령을 내릴 서버에 로그온해 명령툴을 설치하자.


콘솔  > Sever > 서버 생성


[Standard] - 확인

 vCPU 2개, 메모리 8GB ,[SSD] 디스크 50GB[g2]- 확인


ncp-cgame-com

새로운 공인 IP 할당

새로운 인증키 

ncp-com1-12-24-1-key

default acg 사용




3

# 서버 로그인

root


passwd

g1!!



# ncloud CLI 다운로드


# 신규버전

wget https://www.ncloud.com/api/support/download/files/cli/CLI_1.1.23_20241121.zip


unzip CLI_1.1.23_20241121.zip

cd CLI_1.1.23_20241121/

cd cli_linux/

cp ncloud /usr/bin/

ncloud help



최신버전

https://cli.ncloud-docs.com/docs/guide-clichange




4

# ncloud 권한 설정 - Access-key , Secret-key 입력


ncloud configure



# 리전에 서버 리스트 확인하기

ncloud vserver getRegionList


https://cli.ncloud-docs.com/docs/cli-vserver-server-common-getregionlist


#  MacOS를 사용할 때 자바 바이너리 파일이 실행이 안되는 문제도 발생해서 jdk17버전으로 수정하는 방법

 https://hgk5722.tistory.com/560


# 다음 오류시 아래 경로에서 실행해야 한다.


[root@agame-web01-dev ~]# ncloud  vserver getRegionList

/usr/bin/ncloud: line 2: ./jre8/bin/java: No such file or directory


cd /root/CLI_1.1.20_20240620/cli_linux

ncloud vserver getRegionList




# CLI  명령어들


https://brunch.co.kr/@topasvga/2054




5

# 사용을 위한 인증 = ncp-iam 설치


curl -o ncp-iam-authenticator -L https://github.com/NaverCloudPlatform/ncp-iam-authenticator/releases/latest/download/ncp-iam-authenticator_linux_amd64


chmod +x ./ncp-iam-authenticator


mkdir -p $HOME/bin && cp ./ncp-iam-authenticator $HOME/bin/ncp-iam-authenticator &&

export PATH=$PATH:$HOME/bin


echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile

ncp-iam-authenticator help

cd


매뉴얼

https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator





# NKS 클러스터 생성후 실행 , 클러스터의 ClusterUUID 필요함

#  -clusterUuid는 콘솔에서 확인하자.  쿠버네티스 클러스터 UUID이다.



cd


ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid   b01xxxxxxxxxx --output kubeconfig.yaml





6

# kubectl 명령어 설치


curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl



7

# alials 단축 명령어


vi  ~/.bash_profile  



# 맨 아래줄에 아래 내용 추가


alias k='kubectl --kubeconfig="/root/kubeconfig.yaml"'

alias kw='watch -d kubectl get deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'

alias kwn='watch -d kubectl get no,deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml"'


source ~/.bash_profile


kubectl get nodes



8

# 하시코프 테라폼 설치하기 (선택) , 테라폼 사용시만 설치


sudo yum install -y yum-utils shadow-utils

sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

sudo yum -y install terraform

terraform -version




# 터미널 2  - 모니터링 하기


kw

kwn






<3> 테라폼으로 네트워크와 NKS 생성 하자.


1

테라폼 코드 다운로드


https://brunch.co.kr/@topasvga/4060


2

vi   variables.tf

login 키 이름 수정 필요!!



terraform init

terraform plan

terraform apply -auto-approve



# 삭제

terraform destroy  -auto-approve



# 여러번 실행시 로그인키 중복 오류 함.


vi   variables.tf

login 키 이름 수정 필요!!


terraform apply -auto-approve


# 클러스터 생성에 17분 ,  노드 생성에 11분 , 총 28분 걸린다.



ncloud_nks_cluster.cluster: Still creating... [16m51s elapsed]

ncloud_nks_cluster.cluster: Still creating... [17m1s elapsed]

ncloud_nks_cluster.cluster: Creation complete after 17m10s [id=60ef54df-1487-42f1-b71a-b17d7f89b729]


ncloud_nks_node_pool.node_pool: Still creating... [10m40s elapsed]

ncloud_nks_node_pool.node_pool: Still creating... [10m50s elapsed]

ncloud_nks_node_pool.node_pool: Creation complete after 10m51s [id=9d946de5-4337-465b-a885-547e92cc626a:pool1]




https://vclock.kr/timer/#countdown=00:10:00&enabled=0&seconds=0&sound=xylophone&loop=1



3

결과

VPC 생성


클러스터 생성




4

인증


cd


ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid   ce88e483-b057-4b92-b0cb-2cdb14101c28 --output kubeconfig.yaml





<4> 생성 확인 


1

kubectl 사용


 k get nodes

[root@ncp-cgame-com ~]# k get nodes

NAME           STATUS   ROLES    AGE     VERSION

pool1-w-398c   Ready    <none>   9m33s   v1.28.10

pool1-w-60db   Ready    <none>   10m     v1.28.10



2

콘솔에서 네트워크 구축 확인 - NAT까지 구축되었다. 비용이 좀 발생한다.

NKS 구축 확인


다음

https://brunch.co.kr/@topasvga/4207


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari