쿠버네티스 테스트 환경 구축을 위해 가상 머신을 생성하고 접속하는 방법과 가상 머신을 삭제하는 방법을 알아보자. VirtualBox와 Vagrant를 통해 가상 머신을 생성/삭제할 수 있고, SuperPuTTY를 통해 가상 머신에 접속할 수 있다.


내용

  • 테스트 환경
  • VirtualBox, Vagrant 설치
  • PuTTY, SuperPuTTY 설치
  • Vagrant를 이용한 가상 머신 생성
  • SuperPuTTY를 이용한 가상 머신 접속
  • Vagrant를 이용한 가상 머신 삭제


테스트 환경

  • OS: Windows 10
  • RAM: 16GB


VirtualBox, Vagrant 설치

아래 링크를 통해 VirtualBox와 Vagrant를 다운로드 받은 후 순서대로 설치한다.


PuTTY, SuperPuTTY 설치

아래 링크를 통해 PuTTY와 SuperPuTTY를 다운로드 받은 후 순서대로 설치한다.

  • PuTTY - putty-64bit-0.77-installer.msi
  • SuperPuTTY - **Stable SuperPuTTY 1.4.0.9 Release**


Vagrant를 이용한 가상 머신 생성

베이그런트를 이용해 가상 머신을 프로비저닝하기 위해 필요한 코드 파일을 관리할 임의의 경로를 하나 만든다. (ex. D:/workspace/) 이 경로에서 명령 프롬프트를 실행하여 가상 머신을 생성한다.

가상 머신 생성

vagrant init 을 실행하여 Vagrantfile 코드 파일을 만든다.

vagrant init

Vagrantfile 을 코드 편집기로 열고, 아래 내용으로 수정한다. m-k8s 라는 이름으로 마스터 노드를 정의하고, w1-k8s, w2-k8s 그리고 w3-k8s 라는 이름으로 워커 노드를 정의한다.

# -*- 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   
    cfg.vm.provision "shell", path: "install_pkg.sh"
    cfg.vm.provision "file", source: "ping_2_nds.sh", destination: "ping_2_nds.sh"
    cfg.vm.provision "shell", path: "config.sh"
  end
  
  #=============#
  # Added Nodes #
  #=============#

  (1..3).each do |i|
    config.vm.define "w#{i}-k8s" do |cfg|
      cfg.vm.box = "sysnet4admin/CentOS-k8s"
      cfg.vm.provider "virtualbox" do |vb|
        vb.name = "w#{i}-k8s(github_SysNet4Admin)"
        vb.cpus = 1
        vb.memory = 1024
        vb.customize ["modifyvm", :id, "--groups", "/k8s-SM(github_SysNet4Admin)"]
      end
      cfg.vm.host_name = "w#{i}-k8s"
      cfg.vm.network "private_network", ip: "192.168.1.10#{i}"
      cfg.vm.network "forwarded_port", guest: 22, host: "6010#{i}",auto_correct: true, id: "ssh"
      cfg.vm.synced_folder "../data", "/vagrant", disabled: true
      cfg.vm.provision "shell", path: "install_pkg.sh"
    end
  end
end

Vagrantfile 이 위치한 경로에 config.sh 파일을 만들고, 아래 내용으로 수정한다. 마스터 노드에 복사한 ping_2_nds.sh 파일에 대해 권한을 부여하는 명령이 담긴 스크립트 파일이다.

#!/usr/bin/env bash
# modify permission  
chmod 744 ./ping_2_nds.sh

Vagrantfile 이 위치한 경로에 install_pkg.sh 파일을 만들고, 아래 내용으로 수정한다. 외부 패키지를 설치하는 명령이 담긴 스크립트 파일이다.

#!/usr/bin/env bash
# install packages 
yum install epel-release -y
yum install vim-enhanced -y

Vagrantfile 이 위치한 경로에 ping_2_nds.sh 파일을 만들고, 아래 내용으로 수정한다. 워커 노드들의 네트워크 상태를 확인하는 명령이 담긴 스크립트 파일이다.

# ping 3 times per nodes
ping 192.168.1.101 -c 3
ping 192.168.1.102 -c 3
ping 192.168.1.103 -c 3

vagrant up 명령으로 가상 머신 프로비저닝을 진행한다.

vagrant up

vagrant ssh m-k8s 명령으로 마스터 노드에 ssh로 접속한다.

vagrant ssh m-k8s

./ping_2_nds.sh 파일을 실행해 워커 노드들의 네트워크 상태를 확인한다.

./ping_2_nds.sh


SuperPuTTY를 이용한 가상 머신 접속

SuperPuTTY를 실행한 후 putty.exe location 을 PuTTY 가 설치된 경로로 설정한다. SuperPuTTY 창의 오른쪽 Sessions 에서 PuTTY Sessions 폴더 하위에 k8s 라는 폴더를 생성한다. 이 폴더를 우클릭 후 New를 누른다. 아래와 같이 가상 머신의 정보를 입력한다.

  • 마스터 노드 가상 머신 정보
    • m-k8s
    • Host IP: 127.0.0.1
    • TCP Port: 60010
    • Extra Putty Arguments: -pw vagrant
  • 워커 노드1 가상 머신 정보
    • w1-k8s
    • Host IP: 127.0.0.101
    • TCP Port: 60101
    • Extra Putty Arguments: -pw vagrant
  • 워커 노드2 가상 머신 정보
    • w2-k8s
    • Host IP: 127.0.0.102
    • TCP Port: 60102
    • Extra Putty Arguments: -pw vagrant
  • 워커 노드3 가상 머신 정보
    • w3-k8s
    • Host IP: 127.0.0.103
    • TCP Port: 60103
    • Extra Putty Arguments: -pw vagrant

모든 가상 머신의 접속 정보를 위와 같이 설정한 후 k8s 폴더를 우클릭하여 Connect All 을 누르면 모든 노드에 접속할 수 있다. 상단의 Commands에 명령을 입력하면 모든 노드에 동시에 명령을 실행할 수 있다.


Vagrant를 이용한 가상 머신 삭제

접속 중인 마스터 노드에서 exit 명령을 통해 Host로 빠져나온다.

exit

vagrant destroy -f 명령으로 가상 머신을 삭제한다.

vagrant destroy -f

댓글남기기