상세 컨텐츠

본문 제목

쿠버네티스 기초실습 (GCP 기반) - 1

소프트웨어/인프라

by moonionn 2022. 8. 24. 02:14

본문

쿠버네티스는 컨테이너 관리/운영(a.k.a 오케스트레이션) 시스템 중 가장 유명한, 거의 표준이라 할 수 있는 플랫폼입니다.

쿠버네티스는 많은 컨테이너를 다룰때 유리합니다. (대표적으로 MSA)

그리고 쿠버네티스 API(이놈이 핵심)를 활용하여 컨테이너간 네트워크 공유, 로드밸런싱, 스케일아웃, 롤백 등등등 안정적인 운영환경에 필요한 조건들을 자동화해줍니다.

 

이론적인건 https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 공식홈 참고하시고

회사에서 스터디용 쿠버네티스 클러스터 서버를 제공해주어서 🙇🏻‍♀️

스터디용 프로젝트 계정 닫히기 전에 ㅋㅋㅋ 개인 블로그에 정리하려 합니다.

해당 실습은 https://collabnix.github.io/kubelabs/ 여기 내용을 바탕으로 GCP에서 진행되었습니다.

 


1. 클러스터를 생성해보자

클러스터는 컨테이너를 실행하기 위한 노드머신입니다. 즉 컨테이너를 돌리는 노드들의 집합이라고 할 수 있습니다.

그냥 쉽게 말하자면 쿠버네티스 환경 중 가장 큰 개념이라고 이해하시면 됩니다.

쿠버네티스를 실행시켰다 ≒ 클러스터를 올렸다

https://kubernetes.io/ko/docs/concepts/overview/components/

 

일단 웹콘솔에서 생성해보겠습니다.

만들기를 선택하면 autopilot이냐 아니냐 옵션이 있는데 저는 그냥 하나하나 선택해주는 커스텀모드로 생성해봤습니다.

 

 

위치유형은 영역 / 리전 두 옵션이 있는데, 영역을 선택하면 asia-northeast3-a에만 노드가 생성이 되고, 리전을 선택하면 asia-northeast3에 해당하는 모든 영역 (asia-northeast3-a, asia-northeast3-b, asia-northeast3-c) 에 노드가 생성됩니다. 이를 방지하려면 "기본 노드 위치 지정" 옵션을 사용하시면 됩니다.

 

노드 수는 세 개를 권장하는데 저는 그냥 두 개 올렸습니다.

스터디인지라 하나만 해도 되겠지만 나중에 멀티 노드 컨트롤 실습을 생각하면 적어도 두 개가 낫지 않나 합니다.

 

노드의 디테일한 스펙을 정할 수 있습니다.

머신유형은... 스터디니까 제일 작은 micro로 선택.

 

짜잔 클러스터 생성 완성.

노드는 두 개였고, 노드 하나당 vCPU2개, 1GB 메모리를 골랐으니 스펙에 맞게 잘 생성된 것 같습니다.

 

사실 위 과정들은 gcloud 명령어 한방으로 간단하게 처리할 수 있습니다. 😁

gcloud container clusters create hw-cluster \
    --num-nodes=2 \
    --node-locations=asia-northeast3-a \
    --machine-type=e2-micro

 


2. kubectl로 해당 클러스터 연결하기

이제까지 만든 클러스터를 kubectl(쿠베컨트롤)이라는 명령어를 활용해 제어하려 합니다.

 

kubectl 설치

gcloud를 활용할 수도 있고, mac이라면 homebrew를 사용할 수도 있습니다.

다만 gcloud를 사용하는게 더 편한듯합니다. 크레덴셜 설정하는 부분에서...

 

gcloud 활용하여 kubectl 설치: https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl

 

kubectl 설치 및 클러스터 액세스 구성  |  Kubernetes Engine 문서  |  Google Cloud

의견 보내기 kubectl 설치 및 클러스터 액세스 구성 이 페이지에서는 Google Kubernetes Engine(GKE) 클러스터와 상호작용하도록 kubectl 명령줄 도구를 설치하고 구성하는 방법을 설명합니다. 개요 kubectl은

cloud.google.com

 

homebrew 활용하여 kubectl 설치

brew install kubectl 한 뒤 kubectl config set-credentials

참고 : https://blog.christianposta.com/kubernetes/logging-into-a-kubernetes-cluster-with-kubectl/

 

Logging Into a Kubernetes Cluster With Kubectl

The kubectl command line client is a versatile way to interact with a Kubernetes cluster, including managing multiple clusters. I’ve not found a good way to login to multiple Kubernetes clusters (well, actually I have: using the OpenShift oc command-line

blog.christianposta.com

 

설정이 완료되었다면 kubectl 명령어로 현재 사용중인 클러스터 정보를 확인할 수 있습니다.

 

(+ 추가)

만약 auth plugin deprecated 어쩌구 warning이 뜬다면

https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke

 

Kubectl auth changes in GKE v1.25 : gke-gcloud-auth-plugin | Google Cloud Blog

Starting with GKE v1.25, you will need to download and use a new kubectl plugin called “gke-gcloud-auth-plugin” to authenticate to GKE.

cloud.google.com

 

관련글 더보기

댓글 영역