一、vagrant目录结构
image.png
二、Vagrantfile
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "k3s-master",
:eth1 => "10.0.20.110",
:mem => "2048",
:cpu => "2"
},
{
:name => "k3s-node1",
:eth1 => "10.0.20.111",
:mem => "2048",
:cpu => "2"
},
{
:name => "k3s-node2",
:eth1 => "10.0.20.112",
:mem => "2048",
:cpu => "2"
},
]
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", opts[:mem]]
v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
config.vm.synced_folder "./labs", "/home/vagrant/labs"
config.vm.provision "shell", privileged: true, path: "./setup.sh"
end
setup.sh
# install some tools
sudo yum install -y git vim gcc glibc-static telnet
三、执行命令
vagrant up
四、进入到vagrant虚拟机安装
因为vagrant的eth0 是给vagrant ssh用的,所以需要指定k3s-master的
--advertise-address 10.0.20.110 --node-ip 10.0.20.110 --flannel-iface eth1
k3s-node(k3s-node1和k3s-node2)的参数为 --node-ip 10.0.20.110 --flannel-iface eth1