◾️ Utility 설치
◾️ VDDK 설치
◾️ 구성도
◾️ 설치
Vagrant 설치 진행 후 grafana Pod 생성 시 pending 이후 해당 파드의 describtion을 살펴보면
"Warning InvalidDiskCapacity 39m kubelet invalid capacity 0 on image filesystem" 이런 에러가 발생하는데 이건 VM의 disk partion size가 10G으로 고정되어있어 발생하는 이슈이다.
VMWare Development kit으로 스크립트를 사용하여 vmdk의 사이즈를 수동으로 조정해줄 수 있다.
vmwware_desktop은 virtualbox 처럼 vagrant option을 통해 disk 사이즈 조정이 불가능하다.
아래 스크립트를 실행시켜 vmdk 사이즈를 임의로 조절하고 Vagrantfile 내에서 $install_partion_update
SHELL을 실행시키게 끔 수정해주면 된다.
▪️ diskSizeUpdate.sh
$ vagrant init
$ vmware-vdiskmanager -x 50Gb $(find . -type f -name "vmdk$")
$ vagrant up
▪️ Vagrantfile
- config.trigger.after :up 추가
- trigger에서 돌아가는 $install_partition_update추가
- provider virtualbox -> vmware_desktop으로 변경
- cf.customize주석 처리
- disk 사이즈 관련 내용 주석처리
위 내용을 제외하고 기존 Vagrantfile 코드과 동일하다.
Vagrantfile
# VAGRANT_EXPERIMENTAL을 사용하면
# config.vm.disk :disk, size: "50GB", primary: true 와 같이 디스크 사이즈를 조절 할 수 있다고 나왔지만 vmware_desktop에서는
# 동작하지 않음.
# VirtualBox만 동작
# ENV["VAGRANT_EXPERIMENTAL"] = "disks"
Vagrant.configure("2") do |config|
config.vm.box = "rockylinux/8"
# Disk 확장 설정 추가
# 아래 내용은 vmware_desktop에서는 동작하지 않는다.
# 항상 10GB로 partion 크기가 잡히게 됨.
# config.disksize.size = "50GB"
# config.vm.disk :disk, size: "50GB", primary: true
config.vbguest.installer_options = { allow_kernel_upgrade: true }
config.vbguest.auto_update = false
# trigger가 추가됐습니다
# vagrant up 하고 나서 partion_size를 업데이트 해주기 위해서 사용했습니다.
# remote에서 $install_partion_update가 실행됩니다.
config.trigger.after :up do |trigger|
trigger.info = "*** Running after up ***"
trigger.run_remote = {inline: $install_partition_update}
end
# 모든 node에 실행될 스크립트
config.vm.provision "shell", path: "config.sh", args: [N, Ver]
#==================
# Master Node
#==================
config.vm.define "master-node" do |master|
master.vm.hostname = "k8s-master"
master.vm.network "private_network", ip: "192.168.57.30"
master.vm.network "forwarded_port", guest: 22, host: 20010, auto_correct: true, id: "mac-ssh", host_ip: "192.168.219.171"
# master.vm.provider :vmware_desktop do |vb| virtualbox -> vmware_desktop로 변경됐음.
master.vm.provider :vmware_desktop do |vm|
vm.memory = 6144
vm.cpus = 4
# vmware_desktop은 아래 customize 설정시 오류가 발생합니다.
# vm.customize ["modifyvm", :id, "--firmware", "efi"]
end
master.vm.provision "shell", path: "master_node.sh"
end
#==================
# Worker Nodes
#==================
(1..N).each do |i|
config.vm.define "k8s-node#{i}" do |node|
node.vm.hostname = "k8s-node#{i}"
node.vm.network "private_network", ip: "192.168.56.10#{i}"
node.vm.network "forwarded_port", guest: 22, host: "2010#{i}", auto_correct: true, id: "mac-ssh", host_ip: "192.168.219.171"
node.vm.provider :vmware_desktop do |vm|
vm.memory = 4096
vm.cpus = 1
end
end
end
end
# 추가된 install_partion_update
$install_partition_update = <<-SHELL
echo '======== [*] Disk 확장 / Bug: soft lockup 설정 추가========'
yum install -y cloud-utils-growpart
growpart /dev/sda 4
xfs_growfs /dev/sda4
SHELL
config.sh 파일과 master-node.sh 파일의 내용은 [k8s] 쿠버네티스 무게감 있게 설치하기 (Virtual Box)#config.sh을 참고하면 된다.