Search

Docker Desktop에서 KIND로 쿠버네티스 클러스터 구축하기

1단계: Docker Desktop 설정에서 KIND 클러스터 생성하기

가장 먼저 최신 버전의 Docker Desktop이 설치되어 있어야 합니다.
1.
Docker Desktop 설정 열기 상단 메뉴바의 Docker 아이콘을 클릭하고 Settings (설정) 메뉴로 들어갑니다.
2.
Kubernetes 탭 설정하기 왼쪽 메뉴에서 Kubernetes를 선택합니다. 여기서 마법이 시작됩니다.
[v] Enable Kubernetes 체크박스를 활성화합니다.
Choose cluster provisioning method에서 Kind를 선택합니다.
Nodes 슬라이더를 움직여 4로 맞춰줍니다. (이러면 자동으로 마스터 1개, 워커 3개로 구성됩니다.)
Kubernetes Version은 원하는 버전을 선택합니다. (스크린샷에서는 v1.31.1이네요!)
바로 아래 이미지처럼 설정하셨다면 완벽합니다!
Docker Desktop 설정에서 Kind를 선택하고 노드 수를 4개로 지정한 모습
이제 우측 하단의 Apply & Restart 버튼을 누르면 Docker Desktop이 재시작되면서 KIND 클러스터를 자동으로 생성하기 시작합니다. 몇 분 정도 소요될 수 있습니다.

2단계: 클러스터 생성 확인하기

클러스터가 잘 만들어졌는지 확인하는 방법은 두 가지입니다.

방법 1: Docker Desktop 컨테이너 탭 확인

Docker Desktop의 왼쪽 메뉴에서 Containers 탭을 클릭해 보세요. 아래 이미지처럼 desktop-control-plane 1개와 desktop-worker 3개의 컨테이너가 Running 상태로 보인다면 성공입니다! 각 컨테이너가 쿠버네티스의 노드 역할을 하는 것이죠.
총 4개의 노드(컨테이너)가 성공적으로 실행 중인 모습

방법 2: 터미널에서 kubectl로 확인

터미널을 열고 쿠버네티스 표준 명령어인 kubectl로 노드 목록을 조회해 봅니다. Docker Desktop이 kubeconfig를 자동으로 설정해주었기 때문에 별도 설정 없이 바로 명령어를 사용할 수 있습니다.
kubectl get nodes
Bash
복사
아래와 같이 control-plane 역할을 하는 노드 1개와 나머지 노드 3개가 Ready 상태로 보이면 완벽하게 클러스터가 준비된 것입니다.

3단계: OpenFaaS 설치하기

이제 준비된 클러스터 위에 서버리스 플랫폼인 OpenFaaS를 설치해 보겠습니다. 복잡한 설치 과정은 arkade가 도와주게 됩니다.
1.
arkade 설치 (Homebrew 사용)
brew install arkade
Bash
복사
2.
arkade로 OpenFaaS 설치
arkade가 현재 활성화된 쿠버네티스 클러스터(방금 만든 KIND 클러스터)를 알아서 타겟으로 삼아 설치를 진행합니다.
arkade install openfaas
Bash
복사

4단계: OpenFaaS 접속 및 테스트

1.
UI 접속을 위한 포트 포워딩
새 터미널 창을 열고 아래 명령어를 실행하여 내 컴퓨터의 8080 포트와 OpenFaaS UI를 연결합니다.
kubectl port-forward -n openfaas svc/gateway 8080:8080
Bash
복사
2.
UI 접속 및 로그인
웹 브라우저에서 http://127.0.0.1:8080으로 접속하세요.
사용자: admin
비밀번호: 이전 단계에서 터미널에 출력된 비밀번호
3.
CLI로 함수 배포 및 테스트
# faas-cli 설치 (Homebrew) brew install faas-cli # 로그인 (비밀번호를 입력) echo -n <YOUR_PASSWORD> | faas-cli login --username admin --password-stdin # 샘플 함수 배포 및 호출 faas-cli store deploy figlet echo "Done!" | faas-cli invoke figlet
Bash
복사

[+] 함수 호출 정보가 Prometheus로 가는 것 확인하기

Step 1: Prometheus UI 접속

1.
OpenFaaS가 설치된 네임스페이스에서 prometheus 파드를 찾습니다.
kubectl get pods -n openfaas
Bash
복사
(결과에서 prometheus-xxxx 형태의 파드 이름을 확인합니다.)
2.
해당 파드로 포트 포워딩을 설정합니다.
kubectl port-forward -n openfaas <prometheus-pod-name> 9090:9090
Bash
복사
3.
이제 웹 브라우저에서 http://localhost:9090 으로 접속하면 Prometheus UI가 나타납니다.

Step 2: 현재 함수 호출량 확인

Prometheus UI의 상단 쿼리 입력창에 아래의 PromQL(Prometheus Query Language)을 입력하고 Execute 버튼을 누릅니다.
gateway_function_invocation_total gateway_function_invocation_total{function_name="printer.openfaas-fn"}
Bash
복사
printer 함수를 3번 호출했더니, 다음과 같은 결과가 나타납니다.

전체 데이터 흐름

함수 호출 → Gateway가 상태 업데이트 → Prometheus가 주기적으로 Scrape → TSDB에 데이터 저장 → UI에서 조회
“50대의 추교현이 20대의 추교현에게 감사할 수 있도록 하루하루 최선을 다해 살고 있습니다.”
The End.