ncp-agame-com 명령서버 1대 만들기 콘솔은 신규 버전 콜솔 사용하세요. 그렇지 않으면 서버 설치시 구 버전 OS가 설치되지 않아 설치가 안될수 있습니다. 1 Rocky Linux 8.10-base 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 2) ncloud configure 3) ncloud CLI 다운로드 4) # NKS 사용을 위한 인증 - ncp-iam 설치 5) # kubectl 명령어 설치 6) # alials 단축 명령어 1 네이버 클라우드에 권한이 있어야 한다. access-key , secret-key를 알아야 한다. 오른쪽 위 본인 이름 > 이용관리 > 계정 관리 > 인증키 관리 신규 API 인증키 생성 https://www.ncloud.com/mypage/status/usage Access Key ID , Secret Key 복사해 두기 ncp_iam_xxxxxxxxxxx ncp_iam_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 3 # Server > ACG 변경 agame-dev-vpc-default-acg tcp myip 클릭 22 추가 tcp 0.0.0.0/0 (전체) X 눌러 삭제 적용 # putty로 서버 로그인 명렁 서버의 공인IP 확인 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-userguide # CLI 다운로드 https://cli.ncloud-docs.com/docs/guide-clichange 4 # ncloud 권한 설정 - Access-key , Secret-key 입력 ncloud configure ncp_iam_xxxxxxxxxxx ncp_iam_xxxxxxxxxxx <엔터> # 권한 있는지 확인 = 리전에 서버 리스트 확인하기 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 네이버1탄-네이버 클라우드 CLI 사용-10/24 대량으로 서버를 관리하려면 CLI 사용은 필수이다. <1> CLI 설정을 위해 인증키 발급 <2> 네이버 클라우드 CLI 설치와 환경 설정 <3> CLI로 정보 확인하기 <4> CLI 로 서버 만들어 보기 <5> 다른것 해보기. 5 # 사용을 위한 인증 = 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 # 매뉴얼 - ncp-iam 설치 - mac 설치법 https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator # clusterUuid는 콘솔에서 확인하자. 쿠버네티스 클러스터 UUID이다. ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid b01xxxxxxxxxx --output kubeconfig.yaml 예) ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid 236aeae2-820f-4a25-84fd-544546c1e9c1 --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 k get nodes # kubectl get nodes # 터미널 2 - 모니터링 하기 kw kwn <4> 모니터링하기, 웹서비스 올리기 1 # 프로그램 설치를 쉽게하는 Helm 설치 # helm cli 툴을 설치 curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash # 현재의 버전 확인 helm version --short 2 # repo에 Stable 저장소 더함 helm repo add stable https://charts.helm.sh/stable 3 # 차트 리스트 확인 (선택) helm search repo stable 4 helm completion bash >> ~/.bash_completion . /etc/profile.d/bash_completion.sh . ~/.bash_completion source <(helm completion bash) # kube-ops-view 설치해 보자. # 파드와 노드증가를 시각화 하여 확인하는 Kubeops view 설치 1 # 방법 1 - git 다운로드 설치 - 80 접속 git clone https://codeberg.org/hjacobs/kube-ops-view.git cd kube-ops-view/ k apply -k deploy 2 # 외부에서 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분 걸림) # kube ops view 접속 URL 80 접속 kubectl get svc kube-ops-view | tail -n 1 | awk '{ print "Kube-ops-view URL = http://"$4 }' 3 # 방법 2 - Helm 으로 설치 - 8080 접속 (참고) helm repo add geek-cookbook https://geek-cookbook.github.io/charts/ helm install kube-ops-view geek-cookbook/kube-ops-view --version 1.2.2 --set env.TZ="Asia/Seoul" --namespace kube-system kubectl patch svc -n kube-system kube-ops-view -p '{"spec":{"type":"LoadBalancer"}}' kubectl annotate service kube-ops-view -n kube-system "external-dns.alpha.kubernetes.io/hostname=kubeopsview.$MyDomain" echo -e "Kube Ops View URL = http://kubeopsview.$MyDomain:8080/#scale=1.5" ( 5분 걸림) k get svc kube-ops-view LoadBalancer 10.100.18.156 a2f43379b1fb0440db35af6dc4a29f2b-1377535766.ap-northeast-2.elb.amazonaws.com 8080:30385/TCP 2m1s [root@ip-172-31-40-122 alb-ingress-controller]# # 8080 접속 a2f43379b1fb0440db35af6dc4a29f2b-1377535766.ap-northeast-2.elb.amazonaws.com:8080 콘솔에서 로드 밸런서 생성확인 웹 브라우저에서 실행. 4 그림 설명 위 3개 cloudwatch-agent 아래 9개 kube-system- core dns , kube proxy 5 # 웹서버 생성 k create deployment websrv --image=nginx --port=80 --replicas=4 # kubectl create deployment websrv --image=nginx --port=80 --replicas=4 # kubectl expose deployment websrv --port=80 --type=LoadBalancer k expose deployment websrv --port=80 --type=LoadBalancer # kubectl scale deployment websrv --replicas=20 k scale deployment websrv --replicas=20 cd 6 참고 자료 https://codeberg.org/hjacobs/kube-ops-view kube-ops-view Kubernetes Operational View - read-only system dashboard for multiple K8s clusters https://codeberg.org/hjacobs/kube-ops-view 7 # 웹서버스 올리기 # 단독 pod 생성 k run myweb1 --image nginx k run myweb2 --image nginx k run myweb3 --image nginx k delete pod myweb1 k delete pod myweb2 k delete pod myweb3 8 # 단독 파드 생성 - 오류 나면 AI에 문의 cat <