콘솔로 Ncloud 쿠버네티스를 생성해 보자.
쿠버네티스에 게임 서비스 1개를 올려보자.
개발자가 명령 내릴 명령서버를 하나 만든다. = 네트워크를 만들어야 명령서버를 만들 수 있다.
쿠버네티스에 게임 서비스 1개 올린다. = 쿠버네티스용 네트워크를 만든다.
퍼블릭 서브넷 서버 1대 만들기
또는
명령서버를 위한 192 네트워크 생성과 명령서버 1대 생성 (선택)
vpc 192.168.0.0/16 , pub1 192.168.0.0/24로 네트워크 만든다.
로키 리눅스로 명령서버 1대 생성한다.
1
vpc생성
기본 네트워크로 pub2, pri1, pub-nat1, pub-lb1, pri-lb1 서브넷 5개 만들어보자.
쿠버네티스를 Private에 구축하려면 pub-lb1, pri-lb1 , pri1 , pub-nat1 - 4개 서브넷이 필수이다.
쿠버네티스를 Public에 구축하려면 pub-lb1, pri-lb1 , pub1 - 3개 서브넷이 필수이다.
bgame-dev-vpc
10.0.0.0/20
bgame-dev-pub1
10.0.0.0/24
bgame-dev-pri1
10.0.2.0/23
bgame-dev-pub-nat1
10.0.4.0/24
bgame-dev-pub-lb1
10.0.5.0/24
bgame-dev-pri-lb1
10.0.7.0/24
2
Ncloud Kubernetes Service 생성하기
생성하기
bgame-dev-k8 s1
3
쿠버네티스 설치 위치?
네이버 가이드
https://guide.ncloud-docs.com/docs/k8s-k8sprep
4
LB Private 서브넷 , LB Public 서브넷 이 별도로 필수이다. (네이버 클라우드)
서브넷 추가로 만들자.
5
NAT 생성하기
bgame-dev-nat1
공인
6
노드풀은 우부트만 가능하다.
노드는 1~250개까지 가능하다.
250개 ㄷㄷㄷㄷ
3개만 한다.
추가
bgame-nodepool1
추가
다음
7
새로운 인증키
test-05-31-1
8
정리
쿠버네티스 서비스를 하기 위해서는 5개의 서브넷이 필요하다.
1
이용관리 > 마이 페이지 > 계정 관리
ncloud 환경 설정 하기
access-key , secret-key를 알아야 한다.
my page > 인증키 관리에서 확인할 수 있다.
2
ncloud CLI 다운로드
wget https://www.ncloud.com/api/support/download/files/cli/CLI_1.1.19_20240321.zip
unzip CLI_1.1.19_20240321.zip
cd CLI_1.1.19_20240321/
cd cli_linux/
cp ncloud /usr/bin
ncloud help
최신버전
https://cli.ncloud-docs.com/docs/guide-clichange
3
ncloud configure
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
6
cd
ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid b01xxxxxxxxxx --output kubeconfig.yaml
7
# 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
8
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
kw
kw
1
테스트 (선택)
kubectl create deployment nginx-project --image=nginx --dry-run=client -o yaml --port=80 > nginx-deploy.yaml --kubeconfig kubeconfig.yaml
kubectl apply -f nginx-deploy.yaml --kubeconfig kubeconfig.yaml
kubectl get pods --kubeconfig kubeconfig.yaml
2
게임 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
클래식 로드 밸런서 연결
외부에서 접속
3
# alias 설정 하기
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
4
콘솔에서 사설 라우팅 테이블에 0.0.0.0/0 NAT1 설정을 하면 pod들이 서비스 가능해진다.
5
kw 로 모니터링 하기
모니터링 상태
1
2
콘솔에서 네트워크 서브넷 확인
3
NAT 확인
4
라우팅 테이블 확인
0.0.0.0/0 NATGW
5
참고자료
https://brunch.co.kr/@topasvga/3183
1
라우팅 테이블에서 NAT 설정 삭제
프라이빗에 0.0.0.0/0 NAT1 라우팅 테이블 삭제
2
NAT1 삭제
3
쿠버네티스 삭제 (5분)
쿠버네티스는 Server에서 반납이 안됨.
Ncloud Kubernestes Service에서 삭제해야 함.
4
LB 삭제
네트워크 삭제 - VPC 삭제 전 서브넷부터 삭제하자.
5
서브넷 삭제
6
VPC 삭제
terraform destroy --auto-approve
테라폼을 통해 Ncloud Kubernetes Service (NKS) 클러스터 구축하기
https://medium.com/naver-cloud-platform/cbe27e197a97
https://brunch.co.kr/@topasvga/3915
https://brunch.co.kr/@topasvga/3819
감사합니다.