正如上文所述,我们在公司采用虚拟化技术的主要诱因是备份便捷、高扩充性以及资源隔离。其实虚拟化技术可能会带来一定程度的性能耗损,但考虑到公司的业务需求和项目类型linux 输入法,这些耗损是可以接受的。接出来,我们将介绍怎样在公司施行虚拟化系统。
首先,我们选择了KVM(Kernel-basedVirtualMachine)作为虚拟化解决方案。KVM是基于Linux内核的开源虚拟化技术,具有优秀的性能和稳定性。据悉,KVM对CentOS操作系统的支持十分友好,可以挺好地满足我们的需求。
为了便捷管理和操作KVM虚拟机,我们还选择了WebVirtMgr作为虚拟机管理工具。WebVirtMgr是一个基于Web的KVM虚拟机管理界面linux虚拟机中dhcp服务器搭建,提供了友好的图形界面,让我们可以轻松地创建、配置和管理虚拟机。
接出来,我们将简略介绍怎样在CentOS上安装和配置KVM及WebVirtMgr。
安装KVM
在CentOS系统上安装KVM,首先须要确保服务器支持硬件虚拟化。可以通过以下命令检测:
bashCopy codegrep -E 'vmx|svm' /proc/cpuinfo
假如输出中包含vmx(Intel)或svm(AMD),则表示服务器支持硬件虚拟化。
接出来,执行以下命令安装KVM及相关组件:
Copy codesudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
安装完成后,启动并使能libvirtd服务:
bashCopy codesudo systemctl start libvirtd
sudo systemctl enable libvirtd
安装WebVirtMgr
首先,安装依赖包:
Copy codesudo yum install python-virtualenv git gcc python-devel libvirt-devel libxml2-devel libxslt-devel libffi-devel openssl-devel
接着,克隆WebVirtMgr源码并创建虚拟环境:
bashCopy codegit clone https://github.com/retspen/webvirtmgr.git
cd webvirtmgr
virtualenv venv
步入虚拟环境并安装WebVirtMgr:
bashCopy codesource venv/bin/activate
pip install -r requirements.txt
最后,启动WebVirtMgr服务:
bashCopy code./manage.py runserver 0.0.0.0:8000
至此,KVM和WebVirtMgr均已安装配置完成。通过浏览器访问服务器的8000端口,即可使用WebVirtMgr管理虚拟机。
通过以上步骤,我们成功地在公司施行了虚拟化系统。有了这套系统,我们可以更便捷地进行系统备份、扩展资源以及实现资源隔离。在实际应用中,我们发觉虚拟化系统为公司的业务发展带来了众多用处。
接出来,我们将介绍怎样使用WebVirtMgr创建和管理虚拟机linux虚拟机中dhcp服务器搭建,以满足不同业务需求。
创建虚拟机
登陆WebVirtMgr后,点击左上角的“创建实例”按钮。在弹出的窗口中,填写虚拟机的名称、内存大小、CPU核心数等基本信息。据悉,还可以选择虚拟机的c盘大小、网络配置以及安装镜像。
点击“创建实例”后硬盘安装linux,WebVirtMgr将手动为我们创建虚拟机,并开始安装操作系统。在安装过程中,可以通过“控制台”选项卡查看虚拟机的实时状态。
管理虚拟机
在虚拟机创建完成后,我们可以通过WebVirtMgr对其进行各类操作,如启动、关闭、重启、挂起等。据悉,还可以对虚拟机进行快照备份和恢复。
点击虚拟机名称步入详情页面,可以查看和编辑虚拟机的详尽配置信息,如显存大小、CPU核心数、磁盘大小等。在须要时,可以按照业务需求对虚拟机的资源进行调整。
虚拟机迁移
当服务器资源不足或须要负载均衡时,我们可以将虚拟机迁移到其他服务器上。在WebVirtMgr中,只需点击虚拟机详情页面的“迁移”按钮,选择目标服务器,并点击“迁移实例”即可。
须要注意的是,为确保迁移过程中的数据一致性,建议在迁移前关掉虚拟机。
通过以上步骤,我们可以便捷地在公司内部施行和管理虚拟化系统。有了虚拟化技术的支持,我们可以更灵活地应对各类业务场景,提升公司的运维效率和开发速率。在未来的工作中,我们将继续探求和应用虚拟化技术,为公司的发展提供更强悍的技术支持。
接下是我们的虚拟化建设步骤
第一步创建模版系统,模版系统安装目录是/data/centos。模板系统中做好了以下几项工作:
c盘挂载一下每位挂载点单独设置kvmc盘文件。c盘文件使用qcow2格式。此格式支持c盘快照。
挂载点:/大小100G
挂载点:/data大小200G
挂载点:/var/lib/docker大小60G
更改linux文件句柄限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf
echo "fs.file-max = 65535" >> /etc/sysctl.conf
调整网路参数:编辑/etc/sysctl.conf文件并添加以下内容以优化网路性能
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 2500
更改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens3"
UUID="da38f7ad-8276-4049-b3d1-70077715655c"
DEVICE="ens3"
ONBOOT="yes"
# 需要修改{{IPADDR}}
IPADDR="10.20.0.1"
PREFIX="8"
GATEWAY="10.0.0.1"
IPV6_PRIVACY="no"
更改hostname
vi /etc/hostname
centos
更改dns(路由器上也须要设置通常是在DHCP服务器设置中的DNS服务器改为我们的NAS地址)
vi /etc/resolv.conf
nameserver 10.10.20.22
nameserver 223.5.5.5
nameserver 223.6.6.6
yum更改为国外镜像
按照文档指示操作
https://developer.aliyun.com/mirror/centos
安装docker
安装官网文档执行即可
https://docs.docker.com/engine/install/centos/
docker加速
1. 注册阿里云账号
2. 登录控制台
3. 搜索容器镜像服务
4. 在镜像加速器中找到CentOS命令
关掉虚拟机
# 在虚拟机内部执行
shutdown
对虚拟机做快照
# 在宿主机上执行
virsh list --all
# 确认虚拟机关闭
# 对虚拟机进行快照操作
virsh snapshot-create-as {{虚拟机的名字}} {{快照的名字}} {{快照的备份}}
复制虚拟机
dell-1服务器
k8s-work-1
k8s-work-3
k8s-work-5
k8s-etcd-1
k8s-control-1
dell-2服务器
k8s-etcd-2
k8s-work-4
k8s-work-6
load-balance
k8s-control-2
k8s-work-2
联想服务器
k8s-control-3
k8s-etcd-2
rancher
复制建议通过脚本完成
# filename: kvm.xml.py
#encoding=utf-8
import sys
if __name__ == '__main__':
file = sys.argv[1]
src = sys.argv[2]
tag = sys.argv[3]
body = "";
with open(file,'r') as f:
for line in f:
body = body + line.replace(src, tag)
with open(file,"w") as f:
f.write(body)
#!/bin/bash
# filename: kvm.create.sh
path=$1
name=$2
vcpu=$3
memory=$[$4*1024*1024]
mkdir -p $path
rsync --progress /data/centos/centos-root.qcow2 $path/$name-root.qcow2
rsync --progress /data/centos/centos-docker.qcow2 $path/$name-docker.qcow2
rsync --progress /data/centos/centos-data.qcow2 $path/$name-data.qcow2
virsh dumpxml centos > $path/$name.xml
python kvm.xml.py $path/$name.xml /data/centos/centos-root.qcow2 $path/$name-root.qcow2
python kvm.xml.py $path/$name.xml /data/centos/centos-docker.qcow2 $path/$name-docker.qcow2
python kvm.xml.py $path/$name.xml /data/centos/centos-data.qcow2 $path/$name-data.qcow2
python kvm.xml.py $path/$name.xml "centos" "$name"
python kvm.xml.py $path/$name.xml "4194304" "$memory"
python kvm.xml.py $path/$name.xml "4194304" "$memory"
python kvm.xml.py $path/$name.xml "4" "$vcpu"
python kvm.xml.py $path/$name.xml "08a78d83-cadd-4220-8266-a04682390425" ""
python kvm.xml.py $path/$name.xml "" ""
virsh define $path/$name.xml
#virsh start $name
使用该脚本
#./kvm.create.sh /data/k8s/rancher rancher 2 4
./kvm.create.sh /data/k8s/k8s-control-1 k8s-control-1 2 4
./kvm.create.sh /data/k8s/k8s-control-2 k8s-control-2 2 4
./kvm.create.sh /data/k8s/k8s-control-3 k8s-control-3 2 4
./kvm.create.sh /data/k8s/k8s-etcd-1 k8s-etcd-1 2 4
./kvm.create.sh /data/k8s/k8s-etcd-2 k8s-etcd-2 2 4
./kvm.create.sh /data/k8s/k8s-etcd-3 k8s-etcd-3 2 4
#./kvm.create.sh /data/k8s/k8s-work-1 k8s-work-1 8 64
#./kvm.create.sh /data/k8s/k8s-work-2 k8s-work-2 8 64
#./kvm.create.sh /data/k8s/k8s-work-3 k8s-work-3 8 64
#./kvm.create.sh /data/k8s/k8s-work-4 k8s-work-4 8 64
#./kvm.create.sh /data/k8s/k8s-work-5 k8s-work-5 8 64
#./kvm.create.sh /data/k8s/k8s-work-6 k8s-work-6 8 64
启动虚拟机后的更改
vi /etc/hostname
## 内容需要修改成虚拟机的名称
vi /etc/sysconfig/network-scripts/ifcfg-ens3
对load-balance和ranchen的特殊配置
1.建议直接使用化学机的网路插口
2.取消/data的挂载,并删掉c盘文件
缘由是这两个系统会有大量的网路IO并且基本上不会在安装其他应用系统了。没必要保留/data目录。
安装rancher服务
建议使用2.5.x个人觉得2.5版本的界面比较容易理解。
或则去他的官网:
docker run -d
--name rancher
--restart=unless-stopped
-p 80:80 -p 443:443
--privileged
rancher/rancher:v2.5.9
通过rancher布署其他系统