본문 바로가기

개발 관련/Docker

2장. 테스트 환경 구축하기

1장에서 설명한 것과 같이 개인 노트북이나 PC에 가상 환경을 구축하고 그 안에 인프라 환경을 구성하는 순서로 실습이 진행된다.

2장에서는 가상 환경을 구성하는 데 사용하는 도구를 살펴보고, 직접 가상 환경을 구축한다. 이때 일관성 있는 결과를 얻기 위해 프로젝트 환경이 가능한 한 일정하게 생성되고 유지돼야 한다. 그래서 여기서는 코드로 하드웨어를 설정하고, 운영 체제를 설치하고, 네트워크를 구성하고, 개발 환경을 구축해주는 코드형 인프라(IaC; Infrastructure as Code)로 인프라 환경을 일정하게 유지하고 구성한다.

코드형 인프라를 지원하는 소프트웨어는 여러 개이지만, 그 중 베이그런트(Vagrant)가 가장 배우기 쉽고 사용 방법도 간단하다. 베이그런트는 버추얼박스(VirtualBox)와도 호환성이 좋기 때문에 이 둘을 설치할 것이다.


⚙️ 버추얼박스(VirtualBox) 설치하기

책에서는 윈도우 기준으로 설명을 하고 있으므로, 필자의 PC 환경에 맞게 mac 기준으로 설치 방법을 설명하고자 한다.

 

혹시라도 이 블로그를 보는 윈도우 유저가 있다면, 다음의 URL에 접속한다.

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt

www.virtualbox.org

페이지 상단에서 자신의 운영체제에 맞는 버전을 내려받고, 기본 옵션으로 설치하면 된다.

 

맥 유저는 다음과 같이 설치한다. Homebrew가 설치되어 있다고 가정하고 시작한다. 다음과 같은 명령어를 입력한다.

brew install --cask virtualbox

잘 깔렸다면, 터미널에 다음을 입력한다.

virtualbox

 

virtualbox 프로그램이 실행된다면 성공이다.

하지만..필자는 mac m1인데, virtualbox는 아직 m1칩을 지원하지 않는다...난감하다.

 

때문에 윈도우 노트북으로 이어서 진행하려고 한다.

위와 같이 실행되면 성공이다.


⚙️ 베이그런트(Vagrant) 설치하기

다음은 베이그런트를 설치한다. 베이그런트는 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요할 때 시스템을 사용할 수 있는 상태로 만들어준다. 이것을 프로비저닝(provisioning)이라 하고, 이는 환경을 매우 쉽고 간단하게 구현할 수 있다.

다음 주소에 접속한다. 

https://www.vagrantup.com/downloads

 

Vagrant by HashiCorp

Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

www.vagrantup.com

프로그램을 다운받고 설치한 후, 명령 프롬프트를 실행한다.

설치 디렉터리로 이동 후, 베이그런트 초기화 명령을 실행해 프로비저닝에 필요한 기본 코드를 생성한다.

cd C:\HashiCorp
vagrant init

다음 C:\HashiCorp 폴더의 베이그런트 스크린트 파일인 Vagrantfile을 열고, config.vm.box = "base"라는 내용이 있는지 확인한다.

다음은 설치하려는 이미지가 'base'로 명시되어 있으나, 베이그런트가 해당 이미지를 찾기 못한다. 때문에 운영 체제 이미지를 선택한다. 

다음에 접속한다.

책의 저자가 올려 둔 파일들이 보이는데, 실습에 필요한 설정 변경 사항이 포함되어 있다고 한다.

Vagrantfile을 다시 열어 다음과 같이 변경 후 저장한다.

config.vm.box = "sysnet4admin/CentOS-k8s"

 

명령 프롬프트에서 vagrant up을 실행한다. 

가상머신이 잘 생성이 되었다.

 


베이그런트로 테스트 환경 구축하기

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
	config.vm.define "m-k8s" do |cfg|
		cfg.vm.box = "sysnet4admin/CentOS-k8s"
		cfg.vm.provider "virtualbox" do |vb|
			vb.name = "m-k8s(github_SysNet4Admin)"
			vb.cpus = 2
			vb.memory = 2048
			vb.customize ["modifyvm", :id, "--groups", "/k8s-SM(github_SysNet4Admin)"]
		end
		cfg.vm.host_name = "m-k8s"
		cfg.vm.network "private_network", ip: "192.168.1.10"
		cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true, id: "ssh"
		cfg.vm.synced_folder "../data", "/vagrant", disabled: true
	end
end

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 책 2장을 보고 정리한 내용이다.

더 자세한 내용은 다음의 책을 구입하길 바란다.

http://www.yes24.com/Product/Goods/102099414

 

컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - YES24

실무에 바로 적용할 수 있는 컨테이너 인프라 환경 기술!IT 자원을 효율적으로 빠르게 사용할 수 있는 방법으로 컨테이너 환경이 거론되었으나 그동안 관리가 어렵고 복잡해서 상용되기 어려웠

www.yes24.com