链接:https://www.jianshu.com/p/58978fa73551
来源:简书
工具准备
1. 安装 VirtualBox
2. 安装 Vagrant
Vagrantfile
比如:~/Document/vagrant
使用命令:vagrant init初始化,会自动生成Vagrantfile文件
vagrant box add centos/7
Vagrant Box的中央仓库地址
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "centos/7"
# 设置虚拟机的主机名
node.vm.hostname="node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{100+i}"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "node#{i}"
# 设置虚拟机的内存大小
v.memory = 2048
# 设置虚拟机的CPU个数
v.cpus = 1 ##如果搭建k8s集群此处最小设置为2
end
end
end
end
启动虚拟机
之前介绍的,就是本地搭建集群所需掌握的 Vagrantfile 文件格式的基本内容了。下面介绍如何从这个配置文件来启动这组虚拟机。
将上面的文件保存为 Vagranfile,然后在 Vagranfile 文件所在目录执行:
vagrant up
这时候整个集群启动完毕了。
使用虚拟机
前面说过要连接虚拟机,是要使用虚拟机的 hostname,比如:
vagrant ssh node1
这句命令会以 vagrant 的用户登录到 deploy 虚拟机节点,然后可以用 sudo su 命令获得 root 权限。
用一下指令可以查看虚拟机的 ssh 配置详细情况:
vagrant ssh-config
当我们想暂时关闭虚拟机时可以:
vagrant halt
这个命令会关掉整组虚拟机,要是我们只想关掉 deploy 可以用:
vagrant halt node1
当我们玩腻了,想要删掉虚拟机可以:
vagrant destroy
Vagrant 会每台机子询问一遍,你需要打 3 个 y 来删除这四台机子。
。。。。。
免密登陆
具体请查看最开始的链接
搭建k8s集群
https://blog.csdn.net/qq_30062181/article/details/110095133
创建一个简单的虚拟机
vagrant创建虚拟机-较详细
1. 安装VirtualBox
2. 安装Vagrant
3. 创建虚拟机
mkdir vagrant-ubuntu
cd vagrant-ubuntu
vagrant box add ubuntu/trusty64
vagrant init ubuntu/trusty64
vagrant up --provider virtualbox
vagrant ssh
vagrant box add: 下载创建虚拟机所依赖的box
vagrant init: 生成创建虚拟机的所依赖的Vagrantfile
vagrant up: 创建虚拟机
vagrant ssh: SSH登陆虚拟机
不妨查看一下Vagrant自动生成的Vagrantfile, 我删除了所有注释:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
end
Vagrantfile的内容非常简单,仅定义虚拟机所依赖的Box为ubuntu/trusty64。Box相当于虚拟机所依赖的镜像文件。因此,这里创建的虚拟机是ubuntu trusty(14.04)。如果你需要创建其他Linux发行版例如Debian或者CentOS,可以在这里搜索对应的Box.
Vagrant虚拟机的默认配置:
用户/密码: vagrant/vagrant
共享目录: 主机上的vagrant-ubuntu目录与虚拟机内的/vagrant目录内容实时同步
内存:512MB
CPU: 1
默认配置并不一定满足开发需求,下一小节将介绍如何进行自定义配置。
vagrant登陆后,切换到root账号,设置root的密码
sudo -i
passwd
修改 /etc/ssh/sshd_config 文件,(注意,vagrant用户下这个文件是只读的,可能什么也看不见)
修改 ssd_config 里 PermitRootLogin属性 改为yes ,
ssh密码校验开启,可以如下操作:
vi /etc/ssh/sshd_config
开启如下配置:
PasswordAuthentication yes
systemctl restart sshd
还可以免密登陆ssh-keygen
ssh-copy-id
ssh-keygen 产生公钥与私钥对.
ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home,
~./ssh ,和 ~/.ssh/authorized_keys的权利
第一步:生成——在本地机器上使用ssh-keygen产生公钥私钥对 $ ssh-keygen -t rsa
第二步:复制——用ssh-copy-id将公钥复制到远程机器中 $ ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx
注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key文件中
最后: 验证——登录到远程机器不用输入密码 $ ssh 用户名字@192.168.x.xxx Last login: Sun Nov. 16 17:22:33 2008 from 192.168.1.2
vim /etc/hosts
xxxxx node1
xxxxx node2
xxxxx node3
ssh-copy-id -i xx.pub root@node2