【转载】VirtualBox搭建3个虚拟机(本地搭建k8s的基础)

原文链接:https://blog.csdn.net/code_agent/article/details/111747853

用VirtualBox搭建三个虚拟机

1)先设置VirtualBox全局参数,网络设置

在这里插入图片描述
在这里插入图片描述

2)利用Vagrantfile批量创建3个虚拟机并配置好

Vagrantfile代码如下:

Vagrant.configure("2") do |config|
   (1..3).each do |i|
        config.vm.define "k8s-node#{i}" do |node|
            # 设置虚拟机的Box
            node.vm.box = "centos/7"
        <span class="token comment"># 设置虚拟机的主机名</span>
        node<span class="token punctuation">.</span>vm<span class="token punctuation">.</span>hostname=<span class="token string">"k8s-node#{i}"</span>

        <span class="token comment"># 设置虚拟机的IP</span>
        node<span class="token punctuation">.</span>vm<span class="token punctuation">.</span>network <span class="token string">"private_network"</span><span class="token punctuation">,</span> ip: <span class="token string">"192.168.56.#{99+i}"</span><span class="token punctuation">,</span> netmask: <span class="token string">"255.255.255.0"</span>

        <span class="token comment"># 设置主机与虚拟机的共享目录</span>
        <span class="token comment"># node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"</span>

        <span class="token comment"># VirtaulBox相关配置</span>
        node<span class="token punctuation">.</span>vm<span class="token punctuation">.</span>provider <span class="token string">"virtualbox"</span> <span class="token keyword">do</span> <span class="token punctuation">|</span>v<span class="token punctuation">|</span>
            <span class="token comment"># 设置虚拟机的名称</span>
            v<span class="token punctuation">.</span>name = <span class="token string">"k8s-node#{i}"</span>
            <span class="token comment"># 设置虚拟机的内存大小</span>
            v<span class="token punctuation">.</span>memory = 4096
            <span class="token comment"># 设置虚拟机的CPU个数</span>
            v<span class="token punctuation">.</span>cpus = 4
        <span class="token keyword">end</span>
    <span class="token keyword">end</span>

在这里插入图片描述
在这里插入图片描述
开启三台虚拟机的账号密码访问权限,这样就可用Xshell等第三方工具来连接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于3台虚拟机的默认网络都一样,需要设置NAT网络

查看访问的网卡,查看地址

ip route show
ip addr

 
 
  • 1
  • 2

在这里插入图片描述
增加NAT网络
在这里插入图片描述
在这里插入图片描述
设置后可发现每台虚拟机地址都不一样,并且互相能ping通,并且能ping通www.baidu.com,能连接外网。

使用NAT模式,虚拟机可以共享主机的vpn(如要使用vpn,网卡1“混杂模式”要改为“全部允许”),如果不是用vagrant创建的,没有指定ip则此时不知道xshell连接虚拟机的ip地址,可以使用此方法为虚拟机增加固定ip:
在这里插入图片描述

开启虚拟机,执行如下命令:

cd /etc/sysconfig/network-scripts
# 拷贝文件
cp ifcfg-enp0s3 ifcfg-enp0s8
sudo vi ifcfg-enp0s8

 
 

修改如下几处:

  • BOOTPROTO=“static”
  • NAME=“enp0s8”
  • DEVICE=“enp0s8”
  • 修改UUID的最后一位,改成任意的其他数字或字母都可
  • 在最后一行添加 IPADDR=192.168.56.XX
    在这里插入图片描述
    保存后,然后重启网络
service network restart

 
 

再ping www.baidu.com试一下,ifconfig也能看到新加的网络,然后用Xshell连接此ip即可:
在这里插入图片描述

关闭防火墙(3个节点都执行):

systemctl stop firewalld
systemctl disable firewalld

 
 

关闭selinux安全策略:

cat /etc/selinux/config //可以查看一下

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对应关系

vi /etc/hosts
10.0.2.6 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3

hostnamectl set-hostname <newhostname>:指定新的hostname(vagrant创建时已经指定了)
su 切换过来

将桥接的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 / //遇到提示是只读文件系统时运行

可选配置

data //查看时间
yum install -y ntpdate
ntpdate time.windows.com //同步最新时间

 
 

全部准备好后可以将3台虚拟机备份一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值