brunch
매거진 NCA

15. NCA- 쿠버네티스 생성하기-2025-08

by Master Seo

<1> 쿠버네티스 생성하기

<2> 쿠버네티스에 명령 내릴 명령서버 만들기


<1> 쿠버네티스 생성하기


1

쿠버네티스를 위한 네트워크를 만든다.

쿠버네티스를 생성한다. 여기서는 Public subnet에 생성한다.


슬라이드2.JPG
슬라이드3.JPG







<2> 쿠버네티스에 명령 내릴 명령서버 만들기


1

1

# ncp-agame-com 명령서버 1대 만들기

콘솔은 신규 버전 콜솔 사용하세요.

그렇지 않으면 서버 설치시 구 버전 OS가 설치되지 않아 설치가 안될수 있습니다.

Rocky Linux 8.10-base 로 생성

혹, 설치 안되면 Rocky Linux 9으로 생성

public에 설치

High-CPU - vCPU 2개 , 메모리 4GB (디폴트)

ncp-agame-com

추가

새로운 공인 IP 할당

다음 > 다음 > 보유하고 있는 인증키 이용 > ncp-agame-nks-key > 다음

agame-dev-vpc-default-acg > 다음 > 서버 생성 (10분 소요)



2

# 명령툴들 설치하기

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

ncp_iam_BPA

ncp_iam_BPKMK

2) 서버 접속해 ncloud configure 실행

3) ncloud CLI 다운로드

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

5) # kubectl 명령어 설치

6) # alials 단축 명령어



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

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

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

신규 API 인증키 생성

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

Access Key ID , Secret Key 복사해 두기

ncp_iam_xxxxxxxxxxx

ncp_iam_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



2) 서버 접속해 ncloud configure 실행

# 서버 접속을 위한 보안 설정 = 나면 ssh 접속되게 하자.

Server > ACG 변경

agame-dev-vpc-default-acg

tcp 0.0.0.0/0 (전체) 80 추가 - 외부에서 웹접속되게 하기

tcp myip 클릭 22 추가 - 외부에서 ssh 접속용

tcp 10.0.0.0/8 22 추가 - 웹서버에서 WAS 서버 접속용

tcp 0.0.0.0/0 (전체) X 눌러 삭제

적용



# putty로 서버 로그인

명렁 서버의 공인IP 확인

root

passwd

나만의 passwd 로 입력



3) 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



# 네이버 클라우드에 명령을 내릴수 있도록 권한 부여

ncloud configure

ncp_iam_xxxxxxxxxxx

ncp_iam_xxxxxxxxxxx

<엔터>

# 권한 있는지 확인 = 리전에 서버 리스트 확인하기

ncloud vserver getRegionList

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


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

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

cd CLI_1.1.23_20241121/

cd cli_linux/

ncloud vserver getRegionList



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


cd

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



# clusterUuid는 콘솔에서 확인하자.

# 쿠버네티스 클러스터 UUID


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



5) # 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



6) # alials 단축 명령어


vi ~/.bash_profile

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


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"'


저장하고 나옴

:wq!



# 반영 , 아래 2줄 실행

source ~/.bash_profile

k get nodes


# kubectl get nodes


# 터미널하나 더 띠우기 - 터미널 2 - 모니터링 하기

kwn



3

모니터링 툴 # kube-ops-view 설치해 보자.


# 파드와 노드증가를 시각화 하여 확인하는 Kubeops view 툴이다.


# git 다운로드 설치 - 80 접속

git clone https://codeberg.org/hjacobs/kube-ops-view.git

cd kube-ops-view/

k apply -k deploy


# 외부에서 kube-ops-view를 접속하기 위해서 Service Type을 LoadBalancer 로 변경한다.

k edit svc kube-ops-view

apiVersion: v1

kind: Service

metadata:

annotations:

name: kube-ops-view

spec:

....

sessionAffinity: None

type: LoadBalancer

status:


# type: ClusterIP 를 type: LoadBalancer 로 수정하면 바로 로드 밸런서 생성됨.

(3분 걸림)


콘솔에서 로드 밸런서 생성확인

웹 브라우저에서 해당 URL 로 접속



# 그림 설명

위 3개 cloudwatch-agent

아래 9개 kube-system- core dns , kube proxy



5

# 웹서버 생성, 로드 밸런서 생성 , 서버수 조정

k create deployment websrv --image=nginx --port=80 --replicas=4

k expose deployment websrv --port=80 --type=LoadBalancer

k scale deployment websrv --replicas=20



6

# 쿠버네티스에 게임 올리기 - deployment-2048 게임 올리기

cat <<EOF | k create -f -

apiVersion: apps/v1

kind: Deployment

metadata:

name: deployment-2048

spec:

replicas: 2

selector:

matchLabels:

app.kubernetes.io/name: app-2048

template:

metadata:

labels:

app.kubernetes.io/name: app-2048

spec:

containers:

- name: app-2048

image: alexwhen/docker-2048

ports:

- containerPort: 80

EOF

k expose deployment deployment-2048 --port=80 --type=LoadBalancer



7

마리오 게임 올리기

cat <<EOF | k create -f -

apiVersion: apps/v1

kind: Deployment

metadata:

name: mario

labels:

app: mario

spec:

replicas: 1

selector:

matchLabels:

app: mario

template:

metadata:

labels:

app: mario

spec:

containers:

- name: mario

image: pengbai/docker-supermario

---

apiVersion: v1

kind: Service

metadata:

name: mario

spec:

selector:

app: mario

ports:

- port: 80

targetPort: 8080

protocol: TCP

type: LoadBalancer

externalTrafficPolicy: Local

EOF



# 로드밸런서 도메인으로 웹사이트 접속

화면 캡춰해 제출



# 게임들

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



# 마리오 게임 삭제

k delete deploy,svc mario



8

삭제

API 키 삭제

클러스터 삭제

이미지 삭제

로드 밸런서 삭제

명령서버 삭제

VPC 삭제

감사합니다.




# 파일 다운로드




다음

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


keyword
매거진의 이전글14. NCA-Live Station