Post

[Kubernetes] k3s로 손쉬운 Kubernetes 클러스터 만들기 (Windows + Multipass + Ubuntu)

Windows 환경에서 Ubuntu Multipass를 이용해 k3s 기반 Kubernetes 클러스터를 구축하는 실전 설치 가이드

[Kubernetes] k3s로 손쉬운 Kubernetes 클러스터 만들기 (Windows + Multipass + Ubuntu)

k3s로 손쉬운 Kubernetes 클러스터 만들기 (Windows + Multipass + Ubuntu)

Windows 환경에서 Multipass + Ubuntu VM을 활용해 k3s 기반 Kubernetes 클러스터를 만드는 실습 가이드입니다.
가볍고 빠르게 Kubernetes 클러스터를 실험해보고 싶을 때, k3s는 매우 적합합니다.

k3s는 Rancher Labs에서 만든 경량 Kubernetes 배포판입니다. 프로덕션보다는 테스트/개발/엣지 환경에서 많이 활용됩니다.


🎯 목표

  • Windows에서 Ubuntu VM 여러 대를 띄우기
  • Master 노드 1대 + Worker 노드 3대를 구성
  • Ubuntu 간 통신 및 고정 IP 설정
  • k3s 설치 및 노드 조인

🛠️ 사용 도구

도구역할
Windows + Hyper-V하이퍼바이저
MultipassUbuntu VM 생성
k3sLightweight Kubernetes 배포

🐧 1. Ubuntu VM 생성 (Multipass)

Windows에서 다음과 같이 Ubuntu 인스턴스 4대를 띄웁니다.

1
2
3
4
multipass launch -n k3s-master -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node1 -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node2 -c 2 -m 2G -d 20G impish
multipass launch -n k3s-node3 -c 2 -m 2G -d 20G impish

각 VM은 CPU 2코어, 메모리 2GB, 디스크 20GB로 설정합니다.


🚫 2. Swap 비활성화

각 Ubuntu VM에서 Swap을 끕니다. (k3s/k8s 필수)

1
sudo swapoff -a

각 노드에서 동일하게 실행합니다.


📡 3. 네트워크 고려사항

Multipass가 Hyper-V에서 제공하는 기본 네트워크는 재부팅 시 IP가 바뀝니다. 이를 해결할 수 있는 2가지 방법:

✔ 방법 1: Hyper-V 내부 네트워크 + 고정 IP

Hyper-V 내부 스위치를 생성하고 NAT로 네트워크를 구성해 고정 IP를 할당할 수 있습니다. 이후 multipass VM 생성 시 새로 생성한 스위치를 지정합니다.

✔ 방법 2: 호스트 시스템 hosts 파일 활용

재부팅 시 IP 변경이 빈번한 환경에서 hosts 파일에 도메인/IP 관계를 적어 관리할 수도 있습니다.


☸️ 4. k3s 설치 – Master

Master 노드에서 다음 명령으로 k3s를 설치합니다.

1
curl -sfL https://get.k3s.io | sh -

설치가 완료되면 다음 파일을 복사합니다.

1
sudo cat /var/lib/rancher/k3s/server/node-token

이 토큰은 Worker가 Master에 조인할 때 필요합니다.


👷 5. k3s 설치 – Worker 노드 조인

Master에서 받은 토큰을 이용하여 각 Worker 노드를 클러스터에 조인합니다.

1
curl -sfL https://get.k3s.io | K3S_TOKEN="<토큰>" K3S_URL="https://<MASTER_IP>:6443" sh -

각 Worker에서도 위 명령을 반복 실행합니다.


🔧 6. kubectl 설정 (관리 PC)

Master VM에서 kubeconfig 파일을 복사하여 로컬 kubectl에서 활용합니다.

1
multipass exec k3s-master -- sudo cat /etc/rancher/k3s/k3s.yaml > k3s.yaml

복사한 k3s.yaml을 열고 server 주소를 Master IP로 변경합니다.

1
server: https://<MASTER_IP>:6443

그 후 로컬에서 아래처럼 kubectl을 실행합니다.

1
2
export KUBECONFIG=$(pwd)/k3s.yaml
kubectl get nodes

성공적으로 노드가 등록되어 있는지 확인합니다.


💡 팁

  • k9s 같은 터미널 UI 도구를 설치하면 클러스터 모니터링이 편해집니다.
  • yaml manifest를 여러 VM에 배포할 때는 네트워크 지연을 고려하세요.

🧠 정리

단계요약
VM 생성Multipass로 Ubuntu VM 띄우기
Swap OffKubernetes 요구 스왑 비활성화
k3s 설치Master + Worker
토큰Master node-token 확보
Worker Join토큰 + Master IP 활용
kubectlkubeconfig로 원격 제어

📌 참고

k3s는 lightweight Kubernetes로, 실제 운영보다는 개발/테스트/엣지 환경에서 적합합니다. 멀티 VM 환경을 손쉽게 시도해보고 싶을 때 매우 유용합니다.


This post is licensed under CC BY 4.0 by the author.