Vagrant 개념
개념 정리
Vagrant : Vagrant는 VM을 효율적으로 관리하기 위한 오픈 소스 툴
Vagrant Provisioner(프로비저너) : VM 설정 및 환경 구성을 자동화 해주는 스크립트
- 예시) Shell, Ansible 등
Vagrant Provider(프로바이더) : VM을 구동하는 가상화 소프트웨어
- 예시) VMware, VirtualBox 등
Vagrant Box : Vagrant 환경에서 사용하는 VM 이미지 파일
Vagrant의 필요성
Vagrantfile 를 활용하여 가상머신을 코드로 관리해 여러 개발자가 동일한 환경을 쉽게 구축
Vagrant 사용 흐름 이해하기
Vagrantfile 이 있는 폴더에서 vagrant CLI 명령어를 통해서 VM 프로비저닝을 yaml 파일을 활용해 자동화할 수 있다.
Vagrant로 K8s 클러스터 구성
목표 토폴로지 및 구성 설명
Vagrant를 활용하여 2개의 VM을 배포해 각각 k8s 클러스터의 마스터 노드와 워커 노드로 구현해보자
- Vagrant Provider : Apple Silicon 칩과 호환되는 VMware Fusion 13 이상
- Master Node Spec : CPU 4코어, RAM 4GB
- Worker Node Spec : CPU 2코어, RAM 2GB
- Node OS : ubuntu-22.04 LTS
Vagrant 및 VMware Fusion 다운로드
필자의 경우 VMware Fusion은 이미 설치돼 있다.
설치가 필요한 경우, 아래 글을 참고하는 것을 추천한다.
https://iwantbaobab.tistory.com/550
M4 Pro 맥북에서 VMware Fusion을 활용한 Ubuntu 실습 환경 구축
구름톤 강의에서 Virtualbox를 활용해 Ubuntu 실습 환경을 구축하는 과정이 있었다.그러나 Virtualbox에서 Arm64를 공식적으로 지원하고 있지 않는다는 것을 확인했다.데모 버전으로는 지원한다고는 하
iwantbaobab.tistory.com
아래의 사이트에 접속해서 .dmg 파일을 다운로드 받는다.
https://developer.hashicorp.com/vagrant/install
Install | Vagrant | HashiCorp Developer
Explore Vagrant product documentation, tutorials, and examples.
developer.hashicorp.com
brew 명령어로 다운로드 받는 경우 인증서 오류가 발생할 수 있다.
vagrant --version 를 통해 정상적으로 설치되었는지 확인하자.

Vagrant Plugin 다운로드
Vagrant와 VMware Fusion 간 연동을 위해 플러그인을 다운로드 한다.
vagrant plugin install vagrant-vmware-desktop
Vagrant를 활용한 Ubuntu 22.04 LTS + K8s 1.32.1 환경 자동화
1) 아래 깃허브에서 파일을 다운로드 후 vagrant 실행
이 과정에서 넉넉잡아 10분 정도 소요될 수 있다.
필자의 경우 M4 12코어 24GB 환경에서 5분 정도면 k8s 클러스터 구성을 완료할 수 있게 됐다.
https://github.com/baobabnamu/vagrant-k8s-nodes
- vagrant up
2) 마스터 노드의 조인 스크립트를 복사해 워커 노드에서 실행
마스터 노드
- vagrant ssh k8s-master
- cat join.sh 후 값 복사

워커 노드
- vagrant ssh k8s-node1
- sudo kubeadm join 192.168.56.30:6443 --token d83umc.2np9o0jlof3xgkk3 --discovery-token-ca-cert-hash sha256:5e2e352edeb043a3d343d3e9f6655f733d3f736d2689d0b2f167d7be9c722140 (마스터 노드에서 복사했던 명령어)
*해당 환경은 교육용 자료를 기반으로 제작됐다. 특히 쿠버네티스 대시보드의 경우, 인프런 강의하시는 분 중에 일프로라는 분이 커스터마이징한 대시보드를 사용했다. 따라서 대시보드 환경 접속 시 별도의 인증 토큰이 필요 없고, 아무나 대시보드에 접근 가능한 설정이니 프로덕션에서는 절대 사용하지 말자.
환경 테스트
마스터 노드에서 아래와 같이 정상적으로 노드의 상태가 둘 다 Ready 인지 확인하자.

이제 호스트OS의 사파리 브라우저에서 https://192.168.56.30:8443 로 접속해 보자.
(필자의 경우 크롬에서 접근이 불가했다.)
이 웹 사이트에 방문 을 클릭하면 된다.

아래처럼 모니터링 되고있는지 확인해 보면 된다.

나중에 2) 부분도 자동화해서 명령어 입력해 놓고 커피 사오면 클러스터가 완성되도록 구현할 예정이다.
지금 당장은 쿠버네티스 기초 기능들을 복습하는 데 집중해야 하기 때문이다.
현재(2025년도 4월 11일 기준)는 하드코딩 종속성 제거 및 워커 노드 조인 자동화까지 완성된 상태이다.
(깃허브에 커밋해 놨으니 자유롭게 다운로드해서 사용하면 된다.)
다음 (2)편에는 해당 Vagrant 파일에 모든 명령어에 대해서 한줄 한줄 해석하는 시간을 가져볼 것이다.
https://iwantbaobab.tistory.com/596