Setup Virtual Machines - RCOSDP/weko GitHub Wiki

create a Vagrantfile with following for setup Kubernetes cluster.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "generic/centos7"

  config.disksize.size = "100GB"

  config.vm.provider "virtualbox" do |vb|
     vb.gui = false 
     vb.cpus = 2
     vb.memory = "8192"
  end
  
  config.vm.define :k8smaster do | k8smaster |
    k8smaster.vm.hostname = "k8smaster.local"
    k8smaster.vm.network :private_network, ip: "192.168.33.101"
    k8smaster.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2212
  end

  config.vm.define :k8snode1 do | k8snode1 |
    k8snode1.vm.hostname = "k8snode1.local"
    k8snode1.vm.network :private_network, ip: "192.168.33.102"
    k8snode1.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2213
  end

  config.vm.define :k8snode2 do | k8snode2 |
    k8snode2.vm.hostname = "k8snode2.local"
    k8snode2.vm.network :private_network, ip: "192.168.33.103"
    k8snode2.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2214
  end

   config.vm.provision "shell", inline: <<-SHELL
      setenforce 0
      sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
      sed -i 's/quiet"/quiet divider=10"/g' /etc/default/grub
      #echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
      #echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
      echo "vm.max_map_count=262144" >> /etc/sysctl.conf
      sed -i '/ swap / s/^\\(.*\\)$/#\\1/g' /etc/fstab
      systemctl stop firewalld
      systemctl disable firewalld
      swapoff -a
      echo 1 > /proc/sys/net/ipv4/ip_forward
      echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
      sysctl -p /etc/sysctl.conf
      yum -y remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
      yum install -y yum-utils device-mapper-persistent-data lvm2 git
      yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
      yum -y install docker-ce docker-ce-cli containerd.io
      systemctl enable docker
      systemctl start docker
      curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      chmod +x /usr/local/bin/docker-compose
      ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
      usermod -aG docker vagrant
      cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
      sysctl --system
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
      yum update -y
      yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
      systemctl enable --now kubelet
      sysctl -p /etc/sysctl.conf 
      echo "192.168.33.101 k8smaster k8smaster.local" >> /etc/hosts
      echo "192.168.33.102 k8snode1 k8snode1.local" >> /etc/hosts
      echo "192.168.33.103 k8snode2 k8snode2.local" >> /etc/hosts
      reboot
   SHELL

end

run vagrant up command and wait for building virtual machines.

⚠️ **GitHub.com Fallback** ⚠️