쿠버네티스 학습 환경 세팅하기

김재민·2024년 8월 26일

1. Background



2. Play with Kubernetes 학습 환경 살펴보기


  • Docker 에서 Kubernetes 클러스터를 체험할 수 있는 가상 환경을 제공한다.
  • 한 번 사용 시 4시간 정도 세션을 유지할 수 있고, 제공하는 명령어로 클러스터의 노드 증설도 가능하여 학습 환경으로 아주 좋은 것 같다.
    (가끔 제대로 동작 안할 때도 있으니 참고 하자)

2-1. 접속 및 로그인


2-2. Play with Kubernetes 시작

  • 아래와 같이 Start 버튼을 누르면 세션이 시작 된다.

2-3. Add new instance(노드 추가)

  • Play with Kubernetes 를 처음 시작하면 아래와 같은 화면을 볼 수 있다.
  • ADD NEW INSTANCE 버튼을 눌러 노드를 추가할 수 있다.


2-4. Master Node(마스터 노드) 설정

  • 노드를 추가하면 아래와 같이 3개의 명령어가 화면에 출력 된다.
    ( --pod-network-cidr 값은 사용자에 따라 다를 수 있다. )
 1. Initializes cluster master node(마스터 노드 init):
 kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16
 
  2. Initialize cluster networking(쿠버네티스 클러스터 네트워크 CNI 설정):
 kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml

 3. (Optional) Create an nginx deployment:
 kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml

📍 Play with Kubernetes 버그인지 모르겠으나, 작업 시점에서 ADD NEW INSTANCE 버튼을 눌러도 노드가 추가 되지 않거나 추가된 후 마스터 노드 init 명령 시 registry.k8s.io/kube-apiserver:v1.27.16, registry.k8s.io/kube-controller-manager:v1.27.16 같은 Docker image 를 내려받는 위치에서 no space left on device 오류 메시지가 반환 된다. 해결 되기 전까지 다른 학습 환경을 알아보자


3. Docker Desktop 학습 환경 살펴보기


  • 나는 이미 맥북(MacOS M1) 환경에서 Docker runtime 을 사용하기 위해 Docker Desktop 을 설치 해두었다.
  • Docker Desktop 에서 제공하는 Kubernetes 환경을 이용해 보자.
  • Docker Desktop 설치가 되어있지 않다면, https://www.docker.com/products/docker-desktop/ 에서 설치하자.


3-1. Docker Desktop 에서 Kubernetes Enable 시키기

  • Docker Desktop 실행 후 Settings ▶︎ Kubernetes ▶︎ Enable Kubernetes ▶︎ Apply & restart 순으로 동작 시키면 알아서 Kubernetes runtime 에 필요한 모든 컨테이너 이미지를 내려받고 Kubernetes 환경을 사용할 수 있도록 해준다.
  • 나는 아래 이미지와 같이 Kubernetes v1.25.9 를 사용할 예정이다.


3-2. 생성한 클러스터 확인하기

  • Docker Desktop 에서 Apply & restart 가 완료 되었다면 터미널에서 아래와 같이 클러스터가 정상적으로 구동 되었는지 확인할 수 있다.
# 나의 경우 업무용으로 접근하는 클러스터가 이미 있어서,
# 다음 명령어로 Docker Desktop 이 생성해준 클러스터에 접근하도록 하였다. 
# 만약, Docker Desktop 외에 사용하던 클러스터가 없다면 해당 명령어를 생략해도 된다.
$ kubectl config use-context docker-desktop

# 클러스터에 연결 되어 있는 노드(서버) 목록을 조회하는 명령어다.
# 아래 이미지와 같이 STATUS 가 Ready 이면 정상적으로 구동 중인 것이다.
$ kubectl get nodes

4. 쿠버네티스 교과서(도서) 학습용 github 저장소 내려받기


$ git clone https://github.com/gilbutITbook/kiamol.git

😄 아쉽게도 Play with Kubernetes 이용하지 못했지만, 로컬 환경에서 Docker Desktop 으로 구성한 Kubernetes 단일 노드 환경으로 학습하고 이어서 정리해볼 예정이다.

profile
안녕하세요. 데이터 엔지니어 김재민 입니다.

0개의 댓글