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.