본문 바로가기
Naver Cloud Platform

[NaverCloud] Docker(도커) 그리고 Kubernetes(쿠버네티스) 연동해서 Ncloud Kubernetes Service 서비스 이용하기

by 클수저 2023. 12. 12.
728x90
반응형

 

이전 실습에서 만든 Docker를 Kubernetes와 연동해서 Ncloud Kubernetes Service를 이용해보는 실습을 포스팅 하려고 한다. Docker의 경우 아래의 포스팅을 참고하면 된다.

 

[NaverCloud] Docker(도커) 이용해서 Container Registry 서비스 이용해서 Container 연동하기

Cloud에서 인프라 관리에서 필수적으로 사용되는 Dokcer Docker를 활용해서 Container를 생성해서 Container Registry 서비스 실습을 해보려한다. 도커 테스트를 위한 서버 생성를 생성한다. Container Registry를

cloudjs.tistory.com

 

쿠버네티스를 활용하려면 기본적인 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
kubectl version --client

상위 2개의 명렁어를 통해서 쿠버네티스를 설치한다.

kubectl version --client를 통해서 버전을 확인한다.

 

 

cd~ 루트 디렉토리로 돌아간다.

curl -o ncp-iam-authenticator https://kr.object.ncloudstorage.com/nks-download/ncp-iam-authenticator/v1.0.0/linux/amd64/ncp-iam-authenticator  -Ncp-iam-authenticator
chmod +x ./ncp-iam-authenticator
mkdir -p /root/bin && cp ./ncp-iam-authenticator /root/bin/ncp-iam-authenticator && export PATH=$PATH:/root/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile

바이너리 파일 홈디렉토리에 ncp-iam-authenticator를 다운로드한다.

해당 파일을 다운로드 하는 이유는 Kubernetes Service의 ncp-iam-authenticator 통해 IAM 인증을 제공한다. 

IAM 인증을 통해 kubectl 명령을 사용하려면 ncp-iam-authenticator 설치해야한다.

그래서 chmod를 통해서 kubectl 설정 파일을 수정한다.

 

$HOME/bin/ncp-iam-authenticator를 생성하고 $PATH에 추가하고, 명령어가 잘 작동하는지 확인한다.

ncp-iam-authenticator help

 

해당 명령어를 통해서 잘 작동이 되는지 확인한다.

IAM 인증 kubeconfig 생성하는 작업을 진행해준다. 사용자 환경 홈 디렉터리'.ncloud' 폴더configure 파일 생성한다.

mkdir .ncloud
vi ~/.ncloud/configure

configure에 아래 코드를 복사한다.

[DEFAULT]
ncloud_access_key_id = ACCESSKEYACCESSKEYAC
ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
ncloud_api_url = https://ncloud.apigw.ntruss.com

[project]
ncloud_access_key_id = ACCESSKEYACCESSKEYAC
ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
ncloud_api_url = https://ncloud.apigw.ntruss.com

 

ncp-iam-authenticator create-kubeconfig 명령을 사용하여 kubeconfig 생성한다.

ncp-iam-authenticator create-kubeconfig --region KR --clusterUuid <cluster-uuid> > kubeconfig.yaml

Cluster에서 좌측 상단에 UUID확인이 가능하다.

생성된 kubeconfig 파일로 kubectl 명령 테스트한다. 네임스페이스는  네임스페이스별 리소스 할당량 지정한다.

kubectl get namespaces --kubeconfig kubeconfig.yaml

 

그 다음 Container Registry 의 Access/Secret Kety를 저장한 Secret 오브젝트 생성한다.

vi ~/.bash_profile
alias kubectl='kubectl --kubeconfig="/root/kubeconfig.yml"' 
source ~/.bash_profile

vi 접속 후, 파일 맨 밑에 alias 내용 추가한다.

 

kubectl create secret docker-registry regcred \
--docker-server=<Registry Private 도메인> --docker-username=<Access Key>\
--docker-password=<Private Key> --docker-email=<개인 이메일>
kubectl get secret

kubectl을 통해서 도커 레지스트리에 Access/Secret Kety를 저장한 Secret 오브젝트를 만든다.

(여기서 중요!) 해당 과정에서 오타 또는 잘못 입력 시, 뒤에 과정이 모두 꼬일 수 있으니 주의해서 작성하자.

생성이 성공 된 것을 확인할 수 있다.

그 다음 필요한 vi 파일에 내용을 입력한다.

cd ~/lab_source/lab3
vi create_only_pod.yaml >> image부분 Private-endpoint 수정
kubectl create -f create_only_pod.yaml >> 팟 생성
kubectl get pods -o wide

vi create_deployment.yaml >> image부분 Private-endpoint 수정
kubectl apply -f create_deployment.yaml
kubectl get pods

vi create_service.yaml
kubectl apply -f create_service.yaml
kubectl get service

기존에 도커 레지스트리가 있었떤 lab3 디렉토리로 가서 yaml파일에 image 부분을 registry endpoint로 수정 그리고 pod를 생성해준다.

두번째 명령어에서도 image 부분을 registry endpoint로 수정.

kubectl get service

 

위 명령어를 실행해서 쿠버네티스를 시작한다.

해당 명령어와 동시에 Load Balancer를 가면 자동으로 LB가 생성이 된다.

LB의 접속정보 IP주소를 통해 들어가면 도커 이미지에 담긴 내용을 아래와 같이 확인 할 수 있다.

728x90
반응형