들어가며
최근 맥북으로 환경을 바꾸면서 기존에 사용하던 VMware Workstation이 macOS에서는 지원되지 않는다는 것을 알게 되어 대안으로 VMware Fusion을 사용하게 되었습니다. 실제로 사용해보니 Workstation과 크게 다르지 않아 맥북을 사용하는 분들이라면 VMware Fusion을 사용해보는 것을 추천드립니다.
K3s란?
로컬에 kubernetes cluster를 구성하는 방법에는 kind, Minikube, k3s, kubeadm 등 다양한 방법이 있습니다. 그 중에서도 k3s는 Rancher에서 개발한 경량 Kubernetes 배포판으로, 설치가 간편하고 적은 리소스로도 클러스터를 구성할 수 있습니다. k3s를 선택하게 된 이유는, 쿠버네티스 클러스터를 오랫동안 유지하면서 공부할 계획이었기에 리소스를 최소화하는 것이 가장 중요했습니다. k3s는 경량 Kubernetes 배포판이지만 기본적인 구조와 사용 방식은 Kubernetes와 거의 동일하기 때문에, k8s와 동일한 사용 경험을 얻을 수 있다고 판단하여 선택하게 되었습니다.

가상 머신 생성
아래 실습은 k3s의 마스터 노드와 워커 노드를 각각 하나씩 구성하는 과정입니다. VMware Workstation과 비교했을 때 UI가 다소 다르기 때문에 처음에는 익숙하지 않을 수 있지만, VMware Fusion은 전반적으로 더 단순화되어 있어 저는 오히려 사용하다보니 더 직관적으로 느껴졌습니다.







Ubuntu Server ISO 이미지는 아래 링크에서 미리 다운로드해줍니다.
Get Ubuntu Server | Download | Ubuntu
Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre, or installing it directly on a server.
ubuntu.com














가상머신 복제
워커 노드를 빠르게 구성하기 위해 VMware의 Full Clone 기능을 활용할 수 있습니다. 클론을 사용하면 기존 가상 머신을 그대로 복제할 수 있어 생성 시간을 크게 단축할 수 있답니다. 다만, 실제로 클론을 사용하는 과정에서 문제가 발생했기 때문에 아래와 같은 이슈가 발생할 수 있음을 참고하면 좋습니다.

IP 충돌 문제
초기에는 마스터 노드가 192.168.219.128, 워커 노드가 192.168.219.129로 정상적으로 구성되어 있었습니다. 이후 가상 머신을 종료한 뒤 다시 실행했을 때, 마스터 노드의 IP가 192.168.219.128에서 192.168.219.129로 변경되는 문제가 발생했습니다. 실제로 SSH 접속을 위해 `ip a` 명령어로 IP를 확인했을 때, 두 노드에서 동일한 IP가 출력되었습니다. 클론으로 가상머신을 생성한 직후에는 이러한 문제가 발생하지 않았지만, 재부팅 이후 DHCP 환경에서 IP가 동적으로 재할당되는 과정과 기존 클론 정보가 함께 영향을 미치면서 문제가 발생한 것으로 예측해봅니다.
그래서 클론을 사용하지 않고 새로 가상머신을 만드는 것이 가장 깔끔한 방법이지만, 클론을 사용해야 하는 상황에 위와 같은 문제가 발생한다면 아래와 같이 해결할 수 있습니다.


클론 과정에서 MAC 주소가 동일하게 복제되면서 DHCP가 두 가상 머신을 동일한 장치로 인식할 가능성이 있기 때문에, MAC 주소를 새로 생성하여 서로 다른 장치로 인식되도록 설정하였습니다. 이후 가상 머신을 재부팅하자 서로 다른 IP가 정상적으로 할당되는 것을 확인할 수 있었습니다.

K3s 설치
K3s는 설치과정 또한 매우 간단합니다.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl
curl -sfL https://get.k3s.io | sh -
kubectl 쓸 때마다 sudo 치는 게 번거로워서, sudo 없이 사용할 수 있게 설정해주었습니다.
mkdir -p ~/.kube
# k3s 설정 파일을 내 폴더로 복사하기
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
echo 'export KUBECONFIG=~/.kube/config' >> ~/.bashrc
source ~/.bashrc
간단한 몇 개의 명령어만으로도 Kubernetes와 동일한 환경이 구성된 것을 확인할 수 있습니다.

워커 노드를 클러스터에 조인시키기 위해 먼저 마스터 노드에서 토큰을 확인합니다.
cat /var/lib/rancher/k3s/server/node-token
# 토큰 복사
이후 워커 노드에서 마스터 노드의 IP와 위에서 확인한 토큰을 사용하여 클러스터에 조인합니다.
curl -sfL https://get.k3s.io | K3S_URL=https://<MASTER_IP>:6443 K3S_TOKEN=<NODE_TOKEN> sh -
정상적으로 워커노드가 클러스터에 조인된 것을 확인할 수 있습니다.

'Kubernetes' 카테고리의 다른 글
| 디플로이먼트(Deployment) 스케일링과 업데이트의 동작방식 (0) | 2026.04.05 |
|---|---|
| 쿠버네티스의 Pod와 Deployment에 관하여 (0) | 2026.04.03 |
| Kubernetes Service는 왜 필요할까? (0) | 2026.01.06 |
| Ansible을 이용해 Kubernetes Cluster 구축해보기 (0) | 2025.12.25 |
| EKS를 안전하게 운영하는 방법(feat. IAM 계정 분리와 Bastion 연동) (3) | 2025.12.21 |