vagrant与VirtualBox的使用(附加k8s测试机创建)
文章目录本地虚拟机环境下载VirtualBox下载vagrant安装后查看安装是否成功快速创建虚拟机如果命令行下载太慢解决方案虚拟机网络设置修改VagrantFile文件设置完成之后,与宿主机之间ping一下,于外网也ping一下,看看是否能ping通如果外网ping不通连接虚拟机修改开启root的密码访问权限本机搭建集群环境虚拟机k8s集群测试用利用下面是vagrantfile,使用它来创建三个
·
本地虚拟机环境
下载VirtualBox
下载vagrant
安装后查看安装是否成功
# 终端输入
vagrant
快速创建虚拟机
查看官方镜像仓库 查看可以下载的虚拟机版本
vagrant init centos/7
# 下载完成后启动虚拟机
vagrant up
# 终端连接
vagrant ssh
# 查看当前用户
whomai
# 重启
vagrant reload
如果命令行下载太慢解决方案
# cd 到下载好的文件目录
vagrant box add centos/7 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
# 重新加载镜像
vagrant up
系统root用户的密码为vagrant
虚拟机网络设置
⚠️先在主机网络管理器中新建一张网卡
修改VagrantFile文件
#|||找到|||
# config.vm.network "private_network", ip: "192.168.33.10"
设置成 这里的IP填虚拟网卡的56字段就可
config.vm.network "private_network", ip: "192.168.56.10"
# 重启虚拟机
vagrant reload
# 查看当前ip 登陆虚拟机
ip addr
设置完成之后,与宿主机之间ping一下,于外网也ping一下,看看是否能ping通
如果外网ping不通
# 进入以下目录
cd /etc/sysconfig/network-scripts/
# 会发现有 ifcfg-eth1 文件
ls
# 修改文件
vi ifcfg-eth1
#————————————————————原文件——————————————————————————
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
NM_CONTROLLED=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.56.10
NETMASK=255.255.255.0
DEVICE=eth1
PEERDNS=no
#VAGRANT-END
#—————————————————————修改为———————————————————————————
设置了一个网关,两个dns
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
NM_CONTROLLED=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.56.10
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=114.114.114.114
DNS2=8.8.8.8
DEVICE=eth1
PEERDNS=no
#VAGRANT-END
⚠️⚠️⚠️重启网卡
service network restart
连接虚拟机修改开启root的密码访问权限
# 切换root用户
su root
# 密码是
vagrant
# 编辑文件
vi etc/ssh/sshd_config
#--------修改为yes---------
PubkeyAuthentication yes
# 重启虚拟机
service sshd restart
本机搭建集群环境
虚拟机k8s集群测试用
利用下面是vagrantfile,使用它来创建三个虚拟机,分别为k8s-node1,k8s-node2和k8s-node3.
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "k8s-node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "centos/7"
# 设置虚拟机的主机名
node.vm.hostname="k8s-node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{99+i}", netmask: "255.255.255.0"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "k8s-node#{i}"
# 设置虚拟机的内存大小
v.memory = 4096
# 设置虚拟机的CPU个数
v.cpus = 4
end
end
end
end
创建NatNetwork网络
设置每个虚拟机的网络
查看默认网卡
ip route show
查看ip地址
ip addr
然后互相测试一下能否ping通
为了测试好用,请一定要进行如下设置
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭Linux默认安全策略
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
关闭swap内存交换
# 可以先查看
cat etc/fstab
swapoff -a #临时关闭 用👇关闭永久的
#------------------------------------
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭
free -g #验证,swap必须为0
添加主机名与ip的对应关系
查看主机名:
hostname
如果主机名不正确,可以通过“hostnamectl set-hostname :指定新的hostname”命令来进行修改。
修改每一个虚拟机的hosts文件,让其互相可以通过域名访问
vi /etc/hosts
10.0.2.15 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3
这里的ip地址请自己查看虚拟机 使用 ip addr 查看eth0的默认地址
将桥接的IPV4流量传递到iptables的链(如果不设置可能会有流量统计指标的消失)
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
应用规则
sysctl --system
疑难问题:遇见提示是只读的文件系统,运行如下命令
mount -o remount rw /
date 查看时间(可选)
yum -y install ntpupdate
ntpupdate time.window.com #同步最新时间
附:如有不懂得欢迎加 2395001475 咨询
更多推荐
已为社区贡献2条内容
所有评论(0)