当前位置: 首页 > news >正文

麒麟V10-SP2-x86_64架构系统下通过KVM创建虚拟机及配置虚机的NAT、Bridge两种网络模式全过程

文章目录

    • 一、什么是虚拟化?
      • 虚拟化具有哪些优势
    • 二、常见的虚拟化技术
      • 1、kvm介绍
      • 2、kvm工作原理
      • 3、kvm功能
    • 三、安装kvm并启动第一个kvm机器
      • 1、环境准备
      • 2、安装kvm工具
      • 3、启动并设置开机自启 libvirtd 服务
      • 4、验证 KVM 模块是否加载
      • 5、上传系统镜像到指定目录
      • 6、网络
      • 7、 以NAT网络模式虚拟化机器
        • 7.1、创建存放虚拟机硬盘镜像文件
        • 7.2、使用命令virt-install创建并安装虚拟机
          • 7.2.1、参数解释
        • 7.3、使用vnc工具给虚机安装操作系统
      • 8、补充、通过console通道给虚机安装操作系统
      • 9、以桥接网络模式虚拟化机器
        • 9.1、创建bridge
        • 9.2、修改网卡配置文件
        • 9.3、创建存放虚拟机硬盘镜像文件
        • 9.4、使用命令virt-install创建并安装虚拟机
        • 9.5、通过VNC进行操作系统安装

一、什么是虚拟化?

说通俗一点,自己的windows笔记本为一台物理机,然后你想在你这个windows上运行多个操作系统,
并且每个操作系统之间互不干扰,那么就可以采取虚拟化技术,将你的windows机器虚拟为多个逻辑计算机。这个过程就可以称为为虚拟化

虚拟化具有哪些优势

借助虚拟化可在单一硬件上快速启动和停止不同的操作系统环境,从而为 IT 生态系统带来诸多益处。
1、灵活适变可以将主机分为多个虚拟机,并根据需要为这些虚拟机分配资源。这样,就可以在单个物理硬件上托管多个虚拟机,从而最大限度地利用空间、功耗和维护资源。2、速度虚拟机配置由软件定义,因此可以快速创建、移除、克隆和迁移虚拟机。可以远程控制虚拟机,还可以实现虚拟机的自动化管理。3、兼容性可以利用虚拟机运行未针对的操作系统发布的软件。例如可以在虚拟机中启动旧版操作系统,以便现有软件继续在现代硬件上运行。4、稳定性和安全性每个虚拟机都是独立运行,因此,虚拟机还具有安全方面的优势。虚拟机可能会出现的不稳定性不会影响主机操作系统或同一主机上的其他虚拟机。可以在不影响整个系统的前提下测试新配置。

二、常见的虚拟化技术

vmware vspere: 付费,图形界面,管理简单方便kvm: 免费的,纯命令行,LINUX内核原生集成。KVM、vmware与虚拟化是什么关系?kvm和vmwrae都可看做是一个可以实现虚拟化的软件。[root@ops ~]# lscpu 
Virtualization:        VT-x
Hypervisor vendor:     VMware   #显示虚拟化平台是vmware
Virtualization type:   full
通过vmware workstation打开的的虚拟机是上述这样的,如果是服务器厂商的就会显示是kvm了

1、kvm介绍

	KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术,通过 intel VT-x 和 AMD-V 等 CPU 虚拟化指集的支持,将虚拟化性能提升到接近原生性能。它使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。KVM 使用了 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。除此之外,KVM 还支持多种嵌入式和云计算场景,并且得到了广泛的应用

2、kvm工作原理

	KVM 的工作原理是使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。具体来说,它在 Linux 内核之上构建一个虚拟化层,该虚拟化层允许多个虚拟机共享物理服务器上的计算资源(如 CPU、内存和磁盘设备)。在此虚拟化层中,每个虚拟机都被视为单独的计算机,每个虚拟机可以运行不同的操作系统和应用程序。 

3、kvm功能

在 KVM 中,虚拟机是一个 Linux 进程,由内核进行调度和管理。利用 KVM 运行的虚拟机可受益于 Linux 的性能特性,
且用户可以利用 Linux 调度程序提供的精细控制。KVM 还提供了与安全、存储、硬件支持和实时迁移相关的功能。1、通过 SELinux 和 sVirt 实现安全边界KVM 利用安全增强型 Linux(SELinux)和安全虚拟化(sVirt)组合来加强虚拟机的安全性和隔离性。SELinux 在虚拟机周围建立安全边界,sVirt 则扩展 SELinux 的功能,使强制访问控制(MAC)安全机制应用于客户虚拟机,并防止手动标记错误。2、存储灵活性KVM 能够使用 Linux 支持的任何存储,包括某些本地磁盘和网络附加存储(NAS)。KVM 还支持共享文件系统,因此虚拟机镜像可以由多个主机共享。3、支持多种硬件架构KVM 可在多种硬件平台上运行。作为红帽企业 Linux 9 的一部分使用时,KVM 支持 64 位 AMD、英特尔和 ARM 架构以及 IBM z13 系统及更高版本。4、实时迁移KVM 支持实时迁移,即能够在物理主机之间移动运行中的虚拟机,而不会出现明显的服务中断。迁移虚拟机的过程中,虚拟机仍保持开机状态,网络连接保持有效状态,且应用可继续运行。KVM 还会保存虚拟机的当前状态并对其进行存储,以便日后进行恢复。

三、安装kvm并启动第一个kvm机器

1、环境准备

本次实验以VMware为主,操作系统选择麒麟V10 SP2 x86_64架构
服务器配置如下:ip: 192.168.56.100  (VMWare NAT连接)内存: 4GCPU: 4磁盘: 20G(系统盘)+20G(数据盘)必须开启虚拟化实现功能:1、在该机器上通过kvm虚拟化出网络模式为NAT、磁盘类型为qcow2的虚机2、在该机器上通过kvm虚拟化出网络模式为、磁盘类型为qcow2的虚机

在这里插入图片描述

2、安装kvm工具

注意事项:1、关闭selinux2、关闭firewalld3、开启内核转发参数net.ipv4.ip_forward = 14、确保系统支持虚拟化技术,可以通过以下命令来检查,只有返回结果大于0表示该系统支持虚拟化:
[root@ops ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
4

通过yum在线安装kvm工具

#通过yum在线安装kvm工具
[root@ops ~]# yum install libvirt* virt-* qemu-kvm* -y
#安装软件说明内容:libvirt    # KVM 虚拟化的守护进程,负责管理 KVM 虚拟机的运行virt-*     # 用于创建和管理虚拟机的强大命令行工具,通过它可以方便地创建、启动、停止虚拟机等qemu-kvm   # 基于 QEMU 的 KVM 虚拟机管理程序,为虚拟机提供硬件模拟和虚拟化支持
#注意:
安装kvm之后会多出两个网卡: virbr0和virbr0-nic

3、启动并设置开机自启 libvirtd 服务

[root@ops ~]# systemctl start libvirtd && systemctl enable libvirtd

4、验证 KVM 模块是否加载

[root@ops ~]# lsmod | grep kvm
kvm_intel             241664  0
kvm                   753664  1 kvm_intel
irqbypass              16384  1 kvm
#如果输出包含kvm和kvm_intel(Intel CPU)或kvm_amd(AMD CPU),则表示KVM模块已成功加载;否则可能需要检查内核配置或重新安装KVM。

5、上传系统镜像到指定目录

[root@ops img]# ls
Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso

6、网络

KVM网络的两种模式

#KVM网络的两种模式:NAT 默认设置,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络网桥 这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)
#查看主机网上相关信息
[root@ops vmIsoDisk]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:58:b0:c5 brd ff:ff:ff:ff:ff:ffinet 192.168.56.100/24 brd 192.168.56.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe58:b0c5/64 scope link valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:42:58:c7:cc brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 52:54:00:13:e9:62 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:13:e9:62 brd ff:ff:ff:ff:ff:ff
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN group default qlen 1000link/ether fe:54:00:07:f5:ae brd ff:ff:ff:ff:ff:ffinet6 fe80::fc54:ff:fe07:f5ae/64 scope link valid_lft forever preferred_lft forever
上图可以看到,有4块网卡(不同的设备不同),分别为docker0、virbr0、virbr0-nic、vnet0其中
#注意:
virbr0: KVM安装完后自带的网桥,主要供NAT网络使用。
virbr0-nic: virbr0网桥上的一个子接口,相当与NAT网络里的网关接口。
vnet0: 是虚拟化环境中重要的网络接口,用于实现虚拟机与宿主机、其他虚拟机或外部网络之间的网络通信

7、 以NAT网络模式虚拟化机器

此次演示使用KVM自带的virbr0网桥进行测试,因为自带的virbr0实际就是NAT模式.
7.1、创建存放虚拟机硬盘镜像文件
[root@ops export]# mkdir vmIsoDisk
[root@ops export]# cd vmIsoDisk/
[root@ops vmIsoDisk]# ls#raw磁盘格式(了解即可)
[root@ops vmIsoDisk]# qemu-img create -f raw KySP2.raw 10G
Formatting 'KySP2.raw', fmt=raw size=10737418240#此次演示使用qcow2
[root@ops vmIsoDisk]# qemu-img create -f qcow2 KySP27.qcow2 20G #qcow2磁盘格式
Formatting 'KySP27.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16[root@ops vmIsoDisk]# ls
KySP2.raw KySP27.qcow2#查看虚拟机硬盘镜像文件信息
[root@ops vmIsoDisk]# qemu-img info KySP2.raw 
image: KySP2.raw
file format: raw        #虚拟机硬盘使用格式
virtual size: 10 GiB (10737418240 bytes) #虚拟机硬盘容量
disk size: 4 KiB[root@ops vmIsoDisk]# qemu-img info KySP27.qcow2 
image: KySP27.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: falserefcount bits: 16corrupt: false
7.2、使用命令virt-install创建并安装虚拟机

#创建raw磁盘类型的虚机(了解即可)

[root@ops vmIsoDisk]#  virt-install --virt-type kvm --os-type=linux --os-variant centos7.0 --name kytest01 --memory 2048 --vcpus 2  --disk  /export/vmIsoDisk/KySP2.raw,format=raw,size=10 --cdrom /export/img/Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsoleStarting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

#创建qcow2磁盘格式的虚机(此次演示使用qcow2,网络使用kvm自带的virbr0,即NAT网络模式)

[root@ops vmIsoDisk]# virt-install --virt-type kvm --os-type=linux --os-variant centos7.0 --name kytest02 --memory 2048 --vcpus 2  --disk  /export/vmIsoDisk/KySP27.qcow2,format=qcow2,size=10 --cdrom /export/img/Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.
7.2.1、参数解释
virt-install --virt-type kvm 指定安装的虚拟机类型是kvm--os-type=linux 指定系统的类型是linux--os-variant centos7.0 指定系统的版本是centos7,可以使用osinfo-query os命令查看支持的系统版本--name kytest01 指定虚拟机的名字为kytest01--memory 2048 指定内存为2G--vcpus 2 指定cpu为2颗--disk /export/vmIsoDisk/KySP2.raw 指定磁盘的路径是/export/vmIsoDisk/KySP2.rawformat=raw 指定磁盘的格式,常用的有两种格式,下方有解释size=10 指定磁盘的大小为10G,默认单位为G--cdrom /export/img/Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso 指定光盘镜像的位置#区别之处 是否采用图形化
--network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole 网络使用NAT网络,通过VNC图形界面安装,侦听到0.0.0.0,最后一个选项的意思是运行完当前使命令之后返回终端,而不是一直占用--network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 网络使用桥接网络,通过VNC图形界面安装,侦听到0.0.0.0,最后一个选项的意思是运行完当前使命令之后返回终端,而不是一直占用--network bridge=br0  --nographics --console pty,target_type=serial --extra-args 'console=ttyS0,115200n8 serial' #网络使用桥接网络,通过命令行console控制台进行操作系统安装
磁盘格式对比:raw 这种类型的磁盘不支持快照,但是性能好,用的比较少。qcow2 这种类型的磁盘支持快照,性能相对raw差一点,用的比较多。

当创建好虚机后,会默认启动一个5900端口,以此类推
在这里插入图片描述

7.3、使用vnc工具给虚机安装操作系统

在这里插入图片描述

在这里插入图片描述

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

其余步骤就是跟在VMware中安装虚拟机操作一致,选择最小化安装,不再过多描述
当安装完成并重启后,通过宿主机连接当前kvm虚拟化出来的机器,如下所示
#注意:此时该虚拟的ip是通过DHCP自动分配获取的,因此,改为静态获取

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,NAT网络模式下的KVM虚拟化演示完成,但是只能通过宿主机访问到,其余外部机器会访问不到该虚机

在这里插入图片描述

8、补充、通过console通道给虚机安装操作系统

https://blog.csdn.net/shaock2018/article/details/117511250
https://www.cnblogs.com/caijt/p/11174676.html

9、以桥接网络模式虚拟化机器

9.1、创建bridge
[root@ops vmIsoDisk]# brctl addbr br0[root@ops vmIsoDisk]# brctl addif br0 ens33[root@ops vmIsoDisk]# brctl show br0 
bridge name    bridge id        STP enabled    interfaces
br0        8000.000c2958b0c5    no        ens33[root@ops vmIsoDisk]# brctl stp br0 on[root@ops vmIsoDisk]# brctl show br0 
bridge name    bridge id        STP enabled    interfaces
br0        8000.000c2958b0c5    yes        ens33[root@ops vmIsoDisk]# ifconfig ens33
ens3:  flagS=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.56.100 netmask 255.255.255.0 broadcast 192.168.56.255ether 00:0c:29:58:b0:c5 txqueuelen 1000 (Ethernet)Rx packets 40959 bytes 13269505(12.6 MiB)RX errors 0 dropped 2298 overruns 0 frame 0TX packets 3618 bytes 369812(361.1 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@ops vmIsoDisk]# ifconfig br0
br0: flags=4163<BROADCAST,MULTICAST>  mtu 1500ether 00:0c:29:58:b0:c5  txqueuelen 1000  (Ethernet)RX packets 21128  bytes 1200022 (1.1 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 6270  bytes 46323515 (44.1 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@ops vmIsoDisk]# ifconfig ens33 0 up
[root@ops vmIsoDisk]# ifconfig br0 up
[root@ops vmIsoDisk]# dhclient br0
9.2、修改网卡配置文件
创建磁盘类型及虚拟化命令跟NAT一致
#桥接模式--手动创建br0网桥
[root@ops vmIsoDisk]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.56.100
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
DNS1=8.8.8.8
DNS2=114.114.114.114[root@ops vmIsoDisk]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # static是静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0 #添加这个,删除掉之前配置的静态ip#重启网络
[root@ops vmIsoDisk]# systemctl restart network-online.target
[root@ops vmIsoDisk]# systemctl restart NetworkManager#重启 libvirt 服务
[root@ops vmIsoDisk]# systemctl restart libvirtd

在这里插入图片描述

在这里插入图片描述

9.3、创建存放虚拟机硬盘镜像文件
[root@ops vmIsoDisk]# qemu-img create -f qcow2 KySP27.qcow2 20G
Formatting 'KySP27.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
9.4、使用命令virt-install创建并安装虚拟机

#注意: 将--network bridge=virbr0替换为--network bridge=br0

[root@ops vmIsoDisk]# virt-install --virt-type kvm --os-type=linux --os-variant centos7.0 --name kytest03 --memory 2048 --vcpus 2  --disk  /export2/vmIsoDisk/KySP27.qcow2,format=qcow2,size=10 --cdrom /export/img/Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsoleStarting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.
9.5、通过VNC进行操作系统安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其余步骤就是跟在VMware中安装虚拟机操作一致,选择最小化安装,不再过多描述
当安装完成并重启后,通过xshell连接当前kvm虚拟化出来的机器,如下所示
#注意:1、此时该虚拟的ip是通过DHCP自动分配获取的,因此,改为静态获取2、使用xshell连接该虚机3、验证物理机192.168.56.100是否与虚机网络相通

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,文章开头提到的两种虚拟化方式都已实现

相关文章:

麒麟V10-SP2-x86_64架构系统下通过KVM创建虚拟机及配置虚机的NAT、Bridge两种网络模式全过程

文章目录 一、什么是虚拟化&#xff1f;虚拟化具有哪些优势 二、常见的虚拟化技术1、kvm介绍2、kvm工作原理3、kvm功能 三、安装kvm并启动第一个kvm机器1、环境准备2、安装kvm工具3、启动并设置开机自启 libvirtd 服务4、验证 KVM 模块是否加载5、上传系统镜像到指定目录6、网络…...

watchEffect的用法

watchEffect的用法 watchEffect的回调方法里&#xff0c;用到了哪个属性&#xff0c;就监视哪个属性 let temp 0; let height 0; watchEffect(()>{if(temp.value > 60 || height.value > 80){console.log(给服务器发请求)} })...

第15届 蓝桥杯 C++编程青少组中级省赛 202408 真题答案及解析

第 1 题 【 单选题 】 定义 char a[]="hello\nworld",执行 cout<<a,输出结果是( ) A:helloworld B: hello world C:hellonworld D:hello\nworld 解析: 转义字符的作用 \n 是换行符,会被编译器解析为换行操作,而非直接输出字符 \n。 输出…...

扫描纸质文件转pdf---少页数+手机+电脑协作

针对手机上扫描软件扫描文件转pdf要收费的问题&#xff0c;提供一种在页数较少时的免费替代方案 。 实现方法&#xff1a;手机软件的免费功能将文件扫描并保存为图片电脑端在word中将图片拼成文档word转pdf 1.借助于“扫描全能王”APP可以免费扫描文件为图片的功能&#xff0…...

大模型巅峰对决:DeepSeek vs GPT-4/Claude/PaLM-2 全面对比与核心差异揭秘

文章目录 一、架构设计深度解剖1.1 核心架构对比图谱1.2 动态MoE架构实现架构差异分析表 二、训练策略全面对比2.1 训练数据工程对比2.2 分布式训练代码对比DeepSeek混合并行实现GPT-4 Megatron实现对比 2.3 关键训练参数对比 三、性能表现多维评测3.1 基准测试全景对比3.2 推理…...

运维实战---多种方式在Linux中部署并初始化MySQL

运维实战—多种方式在Linux中部署并初始化MySQL 前言实验环境介绍一、源码包安装MySQL 1、配置MySQL&编译安装2、初始化数据库3、配置环境变量 二、yum安装MySQL三、rpm安装MySQL 前言 MySQL是常用的关系型数据库&#xff0c;具有以下特点&#xff1a; 1、开源&#xff…...

SQL注入攻击

SQL注入攻击的原理 原理&#xff1a;将SQL命令插入到web表单递交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器&#xff0c;执行恶意的SQL命令 SQL注入攻击的主要原因 SQL注入主要原因是程序员在开发用户和数据库的系统时没有对用户输入的字符串进行过滤…...

面试常问的压力测试问题

性能测试作为软件开发中的关键环节&#xff0c;确保系统在高负载下仍能高效运行。压力测试作为性能测试的重要类型&#xff0c;旨在通过施加超出正常负载的压力&#xff0c;观察系统在极端条件下的表现。面试中&#xff0c;相关问题常被问及&#xff0c;包括定义、重要性、与负…...

云原生事件驱动架构:构建实时响应的数字化神经系统

引言&#xff1a;重塑企业实时决策能力 Uber实现事件驱动架构升级后&#xff0c;实时供需匹配延迟降至8ms&#xff0c;动态定价策略响应速度提升1200倍。Netflix通过事件流处理实现个性化推荐&#xff0c;用户点击率提高34%&#xff0c;事件处理吞吐量达2000万/秒。Confluent基…...

css3d放置的面板方向不对问题排查

以往在threejs左手坐标系下&#xff0c;cameranew THREE.Vector3(0, 0, 1)&#xff0c;好像在贴css3d的时候从来不会出问题。而这次接到一个朋友是用右手坐标系的&#xff0c;camera默认不设置方向&#xff0c;则应该是&#xff08;0&#xff0c;1&#xff0c;0&#xff09; c…...

K8S学习之基础七:k8s中node污点和pod容忍度

污点和容忍度 污点就是定义在节点上的键值属性数据&#xff0c;可以决定拒绝哪些pod taints是键值数据&#xff0c;用在节点上&#xff0c;定义污点。 tolerations是键值数据&#xff0c;用在pod上&#xff0c;定义容忍度&#xff0c;能容忍哪些污点。 查看node污点&#x…...

python流水线自动化项目教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. 项目环境准备Python安装选择Python开发环境安装必要库 2. 数据获取与理解4. 模型训练流水线6. 模型保存7. 模型部署&#xff08;简单 Web 服务&#xff09;8…...

机器学习算法——分类任务

算法&#xff1a; 1、决策树 2、随机森林 3、梯度提升树 4、逻辑回归 5、支持向量机SVM 6、K近邻 KNN 7、朴素贝叶斯 8、多层感知机 9、统一分类 10、比较总结 11、完整代码 1、决策树 1.1 Decision Tree Analysis (C4.5,CART,CHAID)决策树 算法树结构特征选择连续值处理缺失…...

AJAX复习记录

一、什么是AJAX AJAX&#xff08; Asynchronous JavaScript And XML&#xff09;就是异步的 JS 和 XML 通过 AJAX 可以在浏览器中向服务器发送异步请求 最大的优势&#xff1a;无刷新获取数据&#xff0c;就是可以在不刷新网页的情况下向服务器发送请求&#xff0c;用于实现…...

内网穿透的应用-企业级远程办公方案:NAS部署网页版Linux,HTTPS加密访问全配置

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 今天要给大家分享一个超炫酷的技能——如何在你的群晖NAS设备上部署Do…...

《白帽子讲 Web 安全》之移动 Web 安全

目录 摘要 一、WebView 简介 二、WebView 对外暴露 WebView 对外暴露的接口风险 三、通用型 XSS - Universal XSS 介绍 四、WebView 跨域访问 五、与本地代码交互 js 5.1接口暴露风险&#xff1a; 5.2漏洞利用&#xff1a; 5.3JavaScript 与 Native 代码通信 六、Chr…...

CSS_复合选择器

目录 7. 复合选择器 7.1 交集选择器 7.2 并集选择器 7.3 后代选择器 7.4 子代选择器 7.5 兄弟选择器 7.6 属性选择器 7.7 伪类选择器 7.7.1动态伪类 7.7.2结构伪类 7.7.3否定伪类 7.7.4 UI伪类 7.7.5 目标选择器 7. 复合选择器 7.1 交集选择器 作用&#xff1a;…...

测试工程师Ai应用实战指南简例prompt

以下是一个真实具体的案例,展示测试工程师如何在不同阶段结合DeepSeek提升效率。案例基于电商平台"订单超时自动关闭"功能测试: 案例背景 项目名称:电商平台订单系统V2.3 测试目标:验证"用户下单后30分钟未支付,订单自动关闭并释放库存"功能 技术栈:…...

贪心人生,贪心算法

引言 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优&#xff08;或最有利&#xff09;的选择&#xff0c;从而希望导致全局最优解的算法。贪心算法的核心思想是局部最优解能够导致全局最优解。 贪心算法通常用于解决最优化问题…...

【论文阅读笔记】用于恶劣天气条件下的目标检测的IA-YOLO(Image-Adaptive YOLO) | 适合雾天和低光照场景

目录 摘要 1 方法 ■ DIP模块 ▲像素级滤波器 ▲锐化滤波器 ▲去雾滤波器 ■ CNN-PP Module ■ 检测网络模块 ■ 混合数据训练 2 实验 ■ 实现细节 ■ 有雾图像上的实验 ■ 低照度图像上的实验 ■ 消融研究 ■ 有效分析 结论 论文题目&#xff1a;Image-Adapti…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...