1장에서 설명한 것과 같이 개인 노트북이나 PC에 가상 환경을 구축하고 그 안에 인프라 환경을 구성하는 순서로 실습이 진행된다.
2장에서는 가상 환경을 구성하는 데 사용하는 도구를 살펴보고, 직접 가상 환경을 구축한다. 이때 일관성 있는 결과를 얻기 위해 프로젝트 환경이 가능한 한 일정하게 생성되고 유지돼야 한다. 그래서 여기서는 코드로 하드웨어를 설정하고, 운영 체제를 설치하고, 네트워크를 구성하고, 개발 환경을 구축해주는 코드형 인프라(IaC; Infrastructure as Code)로 인프라 환경을 일정하게 유지하고 구성한다.
코드형 인프라를 지원하는 소프트웨어는 여러 개이지만, 그 중 베이그런트(Vagrant)가 가장 배우기 쉽고 사용 방법도 간단하다. 베이그런트는 버추얼박스(VirtualBox)와도 호환성이 좋기 때문에 이 둘을 설치할 것이다.
⚙️ 버추얼박스(VirtualBox) 설치하기
책에서는 윈도우 기준으로 설명을 하고 있으므로, 필자의 PC 환경에 맞게 mac 기준으로 설치 방법을 설명하고자 한다.
혹시라도 이 블로그를 보는 윈도우 유저가 있다면, 다음의 URL에 접속한다.
https://www.virtualbox.org/wiki/Downloads
페이지 상단에서 자신의 운영체제에 맞는 버전을 내려받고, 기본 옵션으로 설치하면 된다.
맥 유저는 다음과 같이 설치한다. Homebrew가 설치되어 있다고 가정하고 시작한다. 다음과 같은 명령어를 입력한다.
brew install --cask virtualbox
잘 깔렸다면, 터미널에 다음을 입력한다.
virtualbox
virtualbox 프로그램이 실행된다면 성공이다.
하지만..필자는 mac m1인데, virtualbox는 아직 m1칩을 지원하지 않는다...난감하다.
때문에 윈도우 노트북으로 이어서 진행하려고 한다.
위와 같이 실행되면 성공이다.
⚙️ 베이그런트(Vagrant) 설치하기
다음은 베이그런트를 설치한다. 베이그런트는 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요할 때 시스템을 사용할 수 있는 상태로 만들어준다. 이것을 프로비저닝(provisioning)이라 하고, 이는 환경을 매우 쉽고 간단하게 구현할 수 있다.
다음 주소에 접속한다.
https://www.vagrantup.com/downloads
프로그램을 다운받고 설치한 후, 명령 프롬프트를 실행한다.
설치 디렉터리로 이동 후, 베이그런트 초기화 명령을 실행해 프로비저닝에 필요한 기본 코드를 생성한다.
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
'개발 관련 > Docker' 카테고리의 다른 글
4장. 쿠버네티스를 이루는 컨테이너 도우미, 도커 (0) | 2022.08.27 |
---|---|
3장. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스 (0) | 2022.08.13 |
1장. 컨테이너 인프라 환경이란? (0) | 2022.07.28 |
쿠버네티스(Kubernetes) (0) | 2022.07.15 |
도커 컴포즈 (0) | 2022.07.09 |