네이버 클라우드 쿠버네티스를 사용해 보자.
https://www.ncloud.com/ > 콘솔 클릭
1
Services > Containers > Ncloud Kubernetes Service
쿠버네티스를 생성하려면 네트워크 구축이 필수이다.
아래처럼 서브넷이 필요하다.
2
쿠버네티스 구축을 위한 네트워크 구축부터 해보자.
Public-LB , Public Subnet (또는 Private Subnet) , Private-LB subnet 이 필요하다.
앞에서 Public-LB , Public Subnet 이 생성되었다.
Private-LB subnet을 만들자.
3
private-lb subnet 생성
game-dev-pri-lb1
10.0.7.0/24
4
콘솔로 쿠버네티스 생성
Services > Containers > Ncloud Kubernetes Service
agame-dev-cl1
1.28 디폴트
네트워크 타입 : Public or Private
LB Private 서브넷
LB Public 서브넷
5
노드풀 설정
agame-dev-np1
노드수는 1개로 최소화한다. = 물리장비 1개라는 뜻.
추가
생성
6
15분 걸림
타이머
https://vclock.kr/timer/#countdown=00:10:00&enabled=0&seconds=0&sound=xylophone&loop=1
명령을 내릴 서버에 로그온해 명령툴을 설치하자.
앞에서 Public 서브넷에 설치한 로키 리눅스에 로그온 하자.
7가지 설정을 하고, 노드에 게임을 배포하자.
1
access-key , secret-key를 알아야 한다.
이용관리 > 마이 페이지 > 계정 관리
my page > 인증키 관리에서 확인할 수 있다.
2
ncloud CLI 다운로드
wget https://www.ncloud.com/api/support/download/files/cli/CLI_1.1.20_20240620.zip
unzip CLI_1.1.20_20240620.zip
cd CLI_1.1.20_20240620/
cd cli_linux/
cp ncloud /usr/bin/
ncloud help
최신버전
https://cli.ncloud-docs.com/docs/guide-clichange
3
# ncloud 권한 설정 - Access-key , Secret-key 입력
ncloud configure
# 리전에 서버 리스트 확인하기
ncloud server getRegionList
# 오류시 # 아래 경로에서 실행해야 한다.
[root@agame-web01-dev ~]# ncloud server getRegionList
/usr/bin/ncloud: line 2: ./jre8/bin/java: No such file or directory
cd /root/CLI_1.1.20_20240620/cli_linux
ncloud server getRegionList
4
#하시코프 테라폼 설치하기
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
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
매뉴얼
https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator
cd
ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid b01xxxxxxxxxx --output kubeconfig.yaml
# -clusterUuid는 콘솔에서 확인하자. 쿠버네티스 클러스터 UUID이다.
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"'
source ~/.bash_profile
k get nodes
[root@agame-web01-dev ~]# k get nodes
NAME STATUS ROLES AGE VERSION
agame-dev-np1-w-5e0j Ready <none> 77m v1.28.10
kw
1
게임 1개 올리기
cat <<EOF | k create -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-2048
spec:
selector:
matchLabels:
app.kubernetes.io/name: app-2048
replicas: 2
template:
metadata:
labels:
app.kubernetes.io/name: app-2048
spec:
containers:
- image: alexwhen/docker-2048
name: app-2048
ports:
- containerPort: 80
EOF
클래식 로드 밸런서 연결
외부에서 접속
2
콘솔에서 사설 라우팅 테이블에 0.0.0.0/0 NAT1 설정을 하면 pod들이 서비스 가능해진다.
3
kw로 모니터링하기
모니터링 상태
5
# 서버 20대로 늘리기
# pod 증가 시키기
k scale deployment deployment-2048 --replicas=20
6
dig default-deployment-2048-d6725-25712679-251124084abb.kr.lb.naverncp.com +short
101.79.8.38
7
GTM Policy에 목적지를 적는다.
101.79.8.38
8
도메인은 GTM에 프로파일!!!
9
www6 CNAME 도메인은 GTM에 프로파일!!!
10
접속 확인
11
온프라미스 장애 시 클라우드로 전환하기 ?
쿠버네티스 설치
Global DNS에서 CNAME으로 로드밸런서 설정
1
구성도
1
가이드
https://guide.ncloud-docs.com/docs/k8s-k8suse-nodepool
2
노드 모니터링
[root@agame-web01-dev ~]#
watch -d kubectl get nodes --kubeconfig=/root/kubeconfig.yaml
pod 모니터링
kw
3
콘솔로 노드 추가하기
Naver Kubernetes Service > Cluster > 노드풀 > 추가
4
노드풀 이름 지정
node2
노드수 추가 수
5
작업중으로 나온다.
얼마나 걸릴까?
서버 생성 시간 + 세팅 시간 = 7분만에 서버는 생성 ?
6
서버 생성 시간 + 세팅 시간 = 10분만에 서버는 생성 ?
7
Server에 가면 서버는 생성되어 있다.
8
클러스터에 가면 작업중으로 나온다.
클러스터 생성하는데 몇분 더 걸린다.
9
전체 10분후
노드풀가면 운영중으로 나온다.
2개 노드 추가됨
10
pod 200개로 늘려보기
k scale deployment deployment-2048 --replicas=200
증가중~~
증가함
11
노드수 1대 줄이자~
콘솔에서 node2 를 1개로 변경
node2 1개 없어지고 pod는 195개까지 가능.
다음
https://brunch.co.kr/@topasvga/3942
감사합니다.