brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 12. 2024

NCP 22탄-2.쿠버네티스 콘솔로 생성-2024-08

실습하도록 택스트 파일로 명령어 첨부합니다.







# 왜 쿠버네티스 인가?


1

관리가 용이하다.


2

컨테이너 기반이라 온프라미스나 어떤 클라우드에서도 바로 사용이 가능하다.







<1> 비공인) 네이버 클라우드 네트워크  정의에 따라 구축해 보자

<2> 네이버 쿠버네티스 콘솔로 생성

<3> 개발자 명령서버 만들기

<4> 쿠버네티스에 다른 게임 올리기

<5> 쿠버네티스 삭제하기

<6> 쿠버네티스 공부 더 하기




<1> 비공인) 네이버 클라우드 네트워크  정의에 따라 구축해 보자


1

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






<2> 네이버 쿠버네티스 콘솔로 생성




1

https://www.ncloud.com/  > 콘솔 클릭  



2

무작정 쿠버네티스를 생성해 보자.

Services > Containers > Ncloud Kubernetes Service  > 생성하기



3


네트워크가 필요합니다.

다음으로 안 넘어갑니다.



4

네트워크 만들어요.

서브넷 3개는 필수!!!


Subnet  (퍼블릭 또는 프라이빗)

LB Private 서브넷

LB Public 서브넷



 Kubernetes 클러스터 생성을 위해서는 IP 대역(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) 내에서 /17~/26 범위의 Subnet, 로드 밸런서 전용 Subnet이 필요합니다.

 Docker Bridge 대역의 충돌을 방지하기 위해 172.17.0.0/16 범위 내의 Subnet, 로드 밸런서 전용 Subnet는 선택할 수 없습니다.




비공인) 표준 네트워크를 참고해서 네트워크를 만들어 봅시다.


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



# 6개의 서브넷을 만든다.

3


5

Services > Networking > VPC  >  VPC 생성


agame-naver-dev

10.0.0.0/21





# 6개의 서브넷을 만든다.


pri1

10.0.0.0/23

N(Private)

일반



pub1-command

10.0.2.0/24

일반



pri-db1

10.0.3.0/24

N(Private)

일반



pub-nat1

10.0.4.0/24

NatGateway



pub-lb1

10.0.5.0/24

LoadBalancer



pri-lb1

10.0.6.0/24

N(Private)

LoadBalancer





6

Services > Containers > Ncloud Kubernetes Service  > 생성하기


agame-k8s-cl



++Ncloud Kubernetes Service 콘솔 이외의 기능으로 서버 자원(VM), VPC, Subnet을 수동으로 정지 또는 삭제하는 경우 클러스터에 오류가 발생할 수 있습니다.

 Kubernetes 워커노드 자원을 반납하는 경우, Ncloud Kubernetes Service 콘솔에서 반납해 주시기 바랍니다.




7

확인만 하자.




나중에 생성하자 ~


NAT Gateway 생성하기





8

노드풀


agame-k8s-np1


노드 2개로


추가 > 다음



9

새로운 인증키

agame-k8s-key   

인증키 생성 > 다음  > 생성하기


20분


10

타이머


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



8

Nodes 확인




9

클러스터 이름 (UUID) 확인하기


Clusters > 해당 클러스터 이름 클릭 > 클러스터 이름 (UUID) 확인하기  > 복사해 두기





<3> 개발자 명령서버 만들기  8단계




3



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 > 서버 생성

command-08-13

새로운 공인 IP 할당

agame-default acg 사용




3

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



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


#하시코프 테라폼 설치하기


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



6

사용을 위한 인증


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이다.



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

# 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







<3> 쿠버네티스에 게임 올리기


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


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



클래식 로드 밸런서 연결

외부에서 접속

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




2

콘솔에서 사설 라우팅 테이블에 0.0.0.0/0  NAT1 설정을 하면 pod들이 서비스 가능해진다.



3

kw로 모니터링하기


모니터링 상태




4

서비스 동작 확인




5

# 서버 20대로 늘리기

# pod 증가 시키기



k scale deployment deployment-2048  --replicas=20







<4> 쿠버네티스에 다른 게임 올리기



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





<5> 쿠버네티스 삭제하기



1

쿠버네티스 클러스터 삭제

Services > Containers > Ncloud Kubernetes Service


// Server에서 삭제하지 마세요!!!



2

로드 밸런서 삭제



3

natgw 라우팅 삭제 - 수동 생성 자원은  수동 삭제

route table에서 삭제



4

natgw 삭제


5

서브넷 삭제


6

vpc 삭제







<6> 쿠버네티스 공부 더 하기


1

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




2

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



3

쿠버네티스 추천 서적

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




다음은 테라폼

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



감사합니다.

매거진의 이전글 (준비) 대학생 모임 2번째-2024-0818
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari