本地虚拟机环境

下载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 咨询

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐