Vagrant.configure("2") do |config| config.vm.box = "rockylinux/8" # Disk 확장설정 추가 config.disksize.size = "50GB" #https://cafe.naver.com/kubeops/26 config.vbguest.auto_update = false config.vm.synced_folder "./", "/vagrant", disabled: true config.vm.provision :shell, privileged: true, inline: $install_default config.vm.define "master-node" do |master| master.vm.hostname = "k8s-master" master.vm.network "private_network", ip: "192.168.56.30" master.vm.provider :virtualbox do |vb| vb.memory = 6144 vb.cpus = 4 vb.customize ["modifyvm", :id, "--firmware", "efi"] vb.customize ["modifyvm", :id, "--nested-hw-virt", "on"] end master.vm.provision :shell, privileged: true, inline: $install_master end end $install_default = <<-SHELL echo '======== [4] Rocky Linux 기본 설정 ========' echo '======== [4-1] 패키지 업데이트 ========' # 강의와 동일한 실습 환경을 유지하기 위해 Linux Update 주석 처리 # yum -y update # 초기 root 비밀번호 변경을 원하시면 아래 주석을 풀고 [새로운비밀번호]에 비번을 입력해주세요 # echo "root:새로운비밀번호" | chpasswd echo '======== [4-2] 타임존 설정 및 동기화========' timedatectl set-timezone Asia/Seoul timedatectl set-ntp true echo '======== [4-3] Disk 확장 / Bug: soft lockup 설정 추가========' # https://cafe.naver.com/kubeops/25 yum install -y cloud-utils-growpart growpart /dev/sda 4 xfs_growfs /dev/sda4 echo '======== [4-4] [WARNING FileExisting-tc]: tc not found in system path 로그 관련 업데이트 ========' yum install -y yum-utils iproute-tc echo '======= [4-4] hosts 설정 ==========' cat << EOF >> /etc/hosts 192.168.56.30 k8s-master EOF echo '======== [5] kubeadm 설치 전 사전작업 ========' echo '======== [5] 방화벽 해제 ========' systemctl stop firewalld && systemctl disable firewalld echo '======== [5] Swap 비활성화 ========' swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab echo '======== [6] 컨테이너 런타임 설치 ========' echo '======== [6-1] 컨테이너 런타임 설치 전 사전작업 ========' echo '======== [6-1] iptable 세팅 ========' cat < /etc/containerd/config.toml sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml systemctl restart containerd echo '======== [7] kubeadm 설치 ========' echo '======== [7] repo 설정 ========' cat <> ~/.bashrc echo 'alias k=kubectl' >>~/.bashrc echo 'complete -o default -F __start_kubectl k' >>~/.bashrc echo '======== [9-2] Dashboard 설치 ========' kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/dashboard-2.7.0/dashboard.yaml echo '======== [9-3] Metrics Server 설치 ========' kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/metrics-server-0.6.3/metrics-server.yaml SHELL