/ DOCKER, KUBERNETES

[Kubernetes] 도커를 기반으로 멀티노드 클러스터를 구축해보자

NOTE!

먼저, 실습 환경은 M1 pro 맥북 프로임을 알립니다.

kind 설치

지난번에는 Docker Desktop 에서 쿠버네티스를 사용해봤는데, 그냥 Docker Desktop 를 이용하면 로컬에서는 싱글 노드로 밖에 클러스터를 구성할 수 없다고 한다.

로컬에서 여러 노드를 클러스터로 구성하려면, “kind” 를 사용해야 한다.

m1 맥에서는 간단하게 brew 를 통해서 설치할 수 있다.

text
brew install kind


cluster 생성

kind 에서는 간단하게

text
kind create cluster
kind delete cluster --name { $NAME }


으로 단일 노드 클러스터를 생성 및 삭제할 수 있다고 한다.

그러나 우리가 사용할 목적은 multiple node 로 구성된 클러스터이기 때문에, config yaml 파일을 하나 만들어야한다.

cluster config file

yaml
kind-make-own-cluster-config.yaml

# four node (three workers) cluster config
# "extraPortMappings" maps literally container to the host machine
# On Mac, port 5000 is used by "ControlCE" which related to "AirPlay"
# If you want to use port 5000, turn off the "AirPlay Receive Mode" in mac os Setting
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: kluster
nodes:
- role: control-plane
  labels:
    roles: master
  extraPortMappings:
  - containerPort: 5001
    hostPort: 5001
- role: worker
  labels:
    roles: worker
  extraPortMappings:
  - containerPort: 5002
    hostPort: 5002
- role: worker
  labels:
    roles: worker
  extraPortMappings:
  - containerPort: 5003
    hostPort: 5003
- role: worker
  labels:
    roles: worker
  extraPortMappings:
  - containerPort: 5004
    hostPort: 5004



맥에서 5000번 포트는 Airplay 와 연관된 ControlCE 라는 놈이 이미 차지하고 있으므로, 5001번 포트부터 열었다.

만약 5000번 포트로 열고 싶으면 맥 설정에서 “공유 > 시스템 환경설정 > AirPlay 수신 모드 끄기” 를 하면 된다고 한다. (직접 해보지는 않았으니 반드시 확인해보고 할 것!)

나는 굳이 AirPlay 기능을 건들이고 싶지 않기 때문에 5001번 포트부터 열었다.

이후, 터미널에

text
kind create cluster --config kind-make-own-cluster-config.yaml


로, 위의 yaml 파일대로 클러스터룰 구성하면 된다.

Result

아래의 사진처럼 도커에 컨테이너가 생기고, 이 컨테이너들을 클러스터로 묶은 것을 알 수 있다.

0image.png

1image.png

2image.png