KVM虚拟化与企业应用实践——通过网络介质配合ks自动应答文件实现自动安装KVM虚拟机

KVM虚拟化与企业应用实践------创建KVM虚拟机实践教程https://coffeemilk.blog.csdn.net/article/details/161932482

一、准备网络引导介质与ks自动应答环境

国产服务器系统的PXE无人值守自动化安装部署------以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例https://blog.csdn.net/xiaochenxihua/article/details/155678972

DevOps自动化运维实践_搭建UEFI网络引导的自动安装Ubuntu20及其更高版本系统https://blog.csdn.net/xiaochenXIHUA/article/details/159546930

基于Cobbler的系统自动化安装部署------原理https://blog.csdn.net/xiaochenxihua/article/details/159200419

若不想安装部署如上两个链接提供完整的PXE网络引导环境,只是需要提供此次KVM所需的自动安装系统网络环境,则可简化为【安装nginx并开启目录浏览功能】即可,详细操作如下:

实现给Nginx的指定站点开启目录浏览功能https://blog.csdn.net/xiaochenxihua/article/details/140509316

bash 复制代码
#1-在红帽系系统(如:Almalinux9.3)安装nginx并开启目录浏览
#1.1-在线安装nginx
yum -y install nginx

#1.2-开启nginx的目录浏览配置
cd /etc/nginx/
vi nginx.conf
#【vi nginx.conf】文件中的【server】段内新增如下内容
        # 指定一个不存在的默认首页(避免开启全局浏览的目录下含有index.html就直接显示这个页面内容了)
        index non-exist.html;
        # 指定全局的目录浏览的根路径
        root    /usr/share/nginx/html;
        # 设置字符集,避免中文显示乱码
        charset utf-8,gbk;
        # 开启目录浏览功能
        autoindex on;
        # 显示文件的修改时间
        autoindex_localtime on;
        # 显示的格式,可选项为(html、xml、json、jsonp)
        autoindex_format html;
        # 显示文件大小的时候带上方便人类阅读的文件单位(如:KB、MB、TB)
        autoindex_exact_size off;
        
#1.3-nginx的配置文件修改完成后让配置文件生效,且nginx网站持续运行
nginx -t && nginx -s reload
systemctl enable nginx.service 



#2-配置需要自动安装的系统(如:openeuler24.03-LTS-SP3)
#2.1-下载所需的系统镜像
mkdir -p /data/os/iso
wget https://repo.openeuler.openatom.cn/openEuler-24.03-LTS-SP3/ISO/x86_64/openEuler-24.03-LTS-SP3-x86_64-dvd.iso -c -P /data/os/iso

#2.2-将系统镜像临时挂载到指定目录下
mkdir -p /data/tmpos
mount -o loop,rw /data/os/iso/openEuler-24.03-LTS-SP3-x86_64-dvd.iso /data/tmpos

#2.3-将临时文件挂载的系统镜像复制一份到nginx浏览目录下
mkdir -p /usr/share/nginx/html/openeuler2403ltssp3x86-64/
cp -rp /data/tmpos/* /usr/share/nginx/html/openeuler2403ltssp3x86-64/
#若想复制时实时显示复制进度可使用如下命令
rsync -a --progress --ignore-existing /data/tmpos/* /usr/share/nginx/html/openeuler2403ltssp3x86-64/
ll -a /usr/share/nginx/html/openeuler2403ltssp3x86-64/
umount /data/tmpos



#3-在浏览器访问nginx所在服务器IP即可看到共享的目录内容
ip a



#4-编写红帽系的自动应答文件(Kickstart)
vi /usr/share/nginx/html/openeuler2403ltssp3x86-64/ks.cfg

#4.1-纯BIOS兼容的 ks.cfg
#【ks.cfg】文件的完整内容如下
eula --agreed
url --url=http://192.168.1.137/openeuler2403ltssp3x86-64/

# 安装界面、首次启动、防火墙、SELinux
graphical
firstboot --disable
firewall --disabled
selinux --disabled
reboot

# 语言、键盘、时区
keyboard --xlayouts='cn'
lang zh_CN.UTF-8
timezone Asia/Shanghai

# 网络
network --bootproto=dhcp --hostname=openeuler2403sp3 --activate

# 服务
services --disabled="chronyd"

# root 加密密码(可用SHA-512 哈希算法【openssl passwd -6 你需要设置的root密码】生成;如下明文密码是qwer1234)
rootpw --iscrypted $6$Oue/iG4Xd7hc6ENV$x7iwQGW9MvpwyD1Po24R1pjQUvOsnEwg6E5PGn6oY57Uw3HQYnnzDg4u4w8E4T4l.y0Nu/9oKELh9pqt.7iVU/

# 引导:BIOS + MBR(修正磁盘名为vda)
bootloader --location=mbr --driveorder=vda --append="crashkernel=auto"

# 清空磁盘、分区表(修正磁盘名为vda)
ignoredisk --only-use=vda
zerombr
clearpart --all --initlabel --drives=vda

# 自定义标准分区方案(3个主分区+扩展分区+逻辑分区)
part biosboot --fstype="biosboot" --size=1 --ondisk=vda
part /boot --fstype=ext4 --size=1024 --ondisk=vda
part swap --fstype=swap --size=4096 --ondisk=vda
part / --fstype=xfs --size=20480 --ondisk=vda
part extended --grow --ondisk=vda
#part /data --fstype=xfs --grow --ondisk=vda
part /data --fstype=xfs --size=1024 --grow --ondisk=vda


# 软件包
%packages
@core
@development
gcc
gdb
make
%end

# 后置脚本
%post --interpreter=/bin/bash
touch /root/test.tt1
%end



#4.2-纯UEFI的 ks.cfg
#【ks.cfg】文件的完整内容如下【root的默认账号密码生成MD5命令:openssl passwd -1 -salt `openssl rand -hex 4`'qwer1234'】
eula --agreed
url --url=http://192.168.1.137/openeuler2403ltssp3x86-64/
graphical
firstboot --disable
firewall --disabled
selinux --disabled
reboot

# 语言、键盘、时区
keyboard cn
lang zh_CN.UTF-8
timezone Asia/Shanghai

# 网络
network --bootproto=dhcp --hostname=openeuler2403sp3 --activate

# root 加密密码(可用SHA-512 哈希算法【openssl passwd -6 你需要设置的root密码】生成;如下明文密码是qwer1234)
rootpw --iscrypted $6$Oue/iG4Xd7hc6ENV$x7iwQGW9MvpwyD1Po24R1pjQUvOsnEwg6E5PGn6oY57Uw3HQYnnzDg4u4w8E4T4l.y0Nu/9oKELh9pqt.7iVU/

# 禁用 chronyd 时间服务
services --disabled="chronyd"

# ========== UEFI + GPT 引导配置 ==========
bootloader  --boot-drive=vda

# 清空全盘 + 初始化分区表为 GPT
clearpart --all --initlabel --drives=vda

# UEFI 必需 ESP 分区
part /boot/efi --fstype=efi --ondisk=vda --size=1024 --fsoptions="umask=0077"
# /boot 分区 ext4
part /boot --fstype=ext4 --size=1024 --ondisk=vda
# swap
part swap --fstype=swap --size=4096 --ondisk=vda
# 根分区
part / --fstype=xfs --size=20480 --ondisk=vda
# 数据分区占用剩余空间
part /data --fstype=xfs --grow --ondisk=vda

%packages
@core
@development
gcc
gdb
make
%end

%post --interpreter=/bin/bash
touch /root/test.tt1
# UEFI环境兜底重装EFI GRUB,防止Anaconda自动安装遗漏
if [ -d /boot/efi ];then
    grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=openEuler
    grub2-mkconfig -o /boot/grub2/grub.cfg
fi
%end

二、通过网络介质配合ks自动应答文件实现自动安装KVM虚拟机

bash 复制代码
#通过网络介质配合ks自动应答文件实现自动安装KVM虚拟机

#1-前置检查
#1.1-安装 UEFI 启动必需OVMF 固件(重中之重)
dnf install -y edk2-ovmf

#1.2-检查 KVM 虚拟化是否开启(输出大于 0 表示已开启 VT-x/AMD-V)
virt-host-validate
egrep -c '(vmx|svm)' /proc/cpuinfo

#1.3-检查目录是否存在
mkdir -p /data/vmdisk

#1.4-检查网桥 br0 状态
nmcli d status
brctl show

#1.5-测试 ks 文件与安装源可访问
curl -I http://192.168.1.137/openeuler2403ltssp3x86-64/ks.cfg

#1.6-防火墙放行 VNC 5904 端口
firewall-cmd --permanent --add-port=5904/tcp
firewall-cmd --reload
firewall-cmd --list-ports

#1.7-确认 Libvirt 服务正常运行(显示active (running)才表示正在运行)
systemctl status libvirtd
# 未启动则执行
systemctl start libvirtd
systemctl enable libvirtd



#2-通过网络介质配合ks自动应答文件自动安装KVM虚拟机【有两种方式:BIOS模式、UEFI模式】
#2.1-使用virt-install命令创建虚拟机后【自动】安装配置【BIOS模式】
virt-install \
--virt-type=kvm \
--os-variant=rhel9.3 \
--name=openeuler2403sp3 \
--description="开发使用的OpenEuler24.03-LTS-SP3服务器" \
--vcpus=2 \
--cpu host-model \
--memory 4096 \
--disk path=/data/vmdisk/openeuler2403sp3.qcow2,bus=virtio,cache=none,size=40 \
--location http://192.168.1.137/openeuler2403ltssp3x86-64/,kernel=images/pxeboot/vmlinuz,initrd=images/pxeboot/initrd.img \
--extra-args="inst.ks=http://192.168.1.137/openeuler2403ltssp3x86-64/ks.cfg rng_core.default_quality=0 random.trust_cpu=on" \
--network bridge=br0,model=virtio \
--noautoconsole \
--graphics vnc,port=5904,listen=0.0.0.0,password=qwer1234 \
--rng /dev/urandom,model=virtio


#2.2-使用virt-install命令创建虚拟机后【自动】安装配置【UEFI模式】
cp /usr/share/edk2/ovmf/OVMF_VARS.fd /data/vmdisk/openeuler2403sp3_VARS.fd

virt-install \
--virt-type=kvm \
--os-variant=rhel9.3 \
--name=openeuler2403sp3 \
--description="开发使用的OpenEuler24.03-LTS-SP3服务器" \
--vcpus=2 \
--cpu host-model \
--memory 4096 \
--disk path=/data/vmdisk/openeuler2403sp3.qcow2,bus=virtio,cache=none,size=40 \
--location http://192.168.1.137/openeuler2403ltssp3x86-64/,kernel=images/pxeboot/vmlinuz,initrd=images/pxeboot/initrd.img \
--extra-args="inst.ks=http://192.168.1.137/openeuler2403ltssp3x86-64/ks.cfg rng_core.default_quality=0 random.trust_cpu=on" \
--network bridge=br0,model=virtio \
--noautoconsole \
--graphics vnc,port=5904,listen=0.0.0.0,password=qwer1234 \
--rng /dev/urandom,model=virtio \
--boot uefi,firmware=/usr/share/edk2/ovmf/OVMF_CODE.fd,nvram=/data/vmdisk/openeuler2403sp3_VARS.fd


 
#3-执行完成virt-install命令后,会有提示:【域仍在运行。安装可能正在进行中。可以重新连接到控制台以完成安装过程。】
#此时,可通过vnc viewer连接此安装进程开启的vnc连接端口5904



#4-若在生产环境使用了vnc,建议在防火墙添加规则限制
# 仅允许 192.168.1.0/24 网段访问 5904 端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="5904" accept'
firewall-cmd --reload


#6-注意:若是安装时有问题,则可以关闭后清除干净修改后重试
#6.1强制关闭正在运行的虚拟机(如果存在)
virsh destroy openeuler2403sp3 2>/dev/null
 
#6.2-彻底注销虚拟机、删除UEFI固件变量、删除关联存储卷
virsh undefine openeuler2403sp3 --nvram --remove-all-storage 2>/dev/null
 
#6.3-删除之前创建的空虚拟磁盘,避免残留
rm -f /data/vmdisk/openeuler2403sp3.qcow2
 
#6.4-检查虚拟机列表(正常结果:无任何输出,代表虚拟机配置已彻底删除)
virsh list --all | grep openeuler2403sp3
 
#6.5-兜底检查残留文件(UEFI + XML + 磁盘【如下三条命令全都没有输出,才算 100% 清理干净】)
#检查虚拟机XML配置文件
ls /etc/libvirt/qemu/ | grep openeuler2403sp3
#检查UEFI的NVRAM变量文件
ls /var/lib/libvirt/qemu/nvram/ | grep openeuler2403sp3
#再次确认虚拟磁盘
ls /data/vmdisk/ | grep openeuler2403sp3

rm -f /data/vmdisk/openeuler2403sp3.qcow2 /data/vmdisk/openeuler2403sp3_VARS.fd

执行完成virt-install命令后,此时,可通过vnc viewer连接到192.168.1.29的5904端口,查看引导界面,进行系统安装。

等待进入这个图形化的安装界面后就会自动配置安装系统了,如下图所示:

耐心等待自动安装完成即可,安装完成后需要使用【virsh start openeuler2403sp3 】命令启动,然后通过vnc viewer连接到192.168.1.29的5904打开虚拟机界面,输入账号【root】密码【qwer1234】登录到系统中:

【UEFI】的操作图如下:

若在安装虚拟机时一直卡在OpenSSH ecda Server key Generation... OpenSSH ed25519 Server key Generation...界面不动,如下图所示,这是由于虚拟机的熵源不足导致的如下图所示:

bash 复制代码
#解决KVM虚拟机的熵源不足,导致虚拟机一直卡在【一直卡在OpenSSH ecda Server key Generation...     OpenSSH ed25519 Server key Generation...界面不动】
#1-在【--extra-args】后面添加【rng_core.default_quality=0 random.trust_cpu=on】
--extra-args="inst.ks=http://192.168.1.137/openeuler2403ltssp3x86-64/ks.cfg rng_core.default_quality=0 random.trust_cpu=on" \

#2-配置宿主机向虚拟机投喂源源不断的熵流
--rng /dev/urandom,model=virtio \
参数 生效对象 核心用途
rng_core.default_quality=0 本机(宿主机 / 虚拟机)内核 放宽熵质量校验,减少随机读取阻塞
random.trust_cpu=on 本机(宿主机 / 虚拟机)内核 启用 CPU 硬件随机指令补充熵
--rng virtio 虚拟机(客户机) 宿主机向虚拟机投喂源源不断的熵流
  • rng_core.default_quality=0 random.trust_cpu=on宿主机内核优化,保证宿主机自身有充足随机熵

  • --rng /dev/urandom,model=virtio打通宿主机→虚拟机的熵通道,给虚拟机持续供给随机数;

    三者配套使用,彻底解决 Linux 虚拟机熵枯竭、加密程序卡顿问题。

解决熵源不足参数 归属 说明 适用场景
rng_core.default_quality=0(内核启动参数 /grub cmdline) Linux 内核 rng_core 子系统全局配置 quality 含义:衡量随机源熵值可信度,范围 0~1000 * 硬件 RNG(TPM/virtio-rng)默认 1000,可信度最高 * CPU 随机指令(rdrand)默认接近 1000 * 纯软件熵池默认偏低 =0 效果:降低系统对随机源质量要求 虚拟机无硬件 RNG、熵源不足,允许内核更快从 /dev/urandom 读取随机数,避免阻塞应用。
random.trust_cpu=on(内核启动参数) Linux random 子系统 作用:信任 CPU 硬件随机指令集(Intel RDRAND/RDSEED、AMD equivalent) * on:内核直接采信 CPU 生成的硬件随机熵,补充系统熵池 * off:忽略 CPU 硬件随机,仅采集键盘、磁盘、网络等外部事件凑熵 搭配虚拟机场景:虚拟机 CPU 指令可能被宿主机虚拟化拦截,此时即使开 trust_cpu 效果有限,建议配合 virtio-rng。
--rng /dev/urandom,model=virtio(QEMU/KVM 虚拟机启动参数) QEMU 虚拟机硬件设备参数,给 客户机(虚拟机)提供 virtio 随机设备 * model=virtio:虚拟设备类型为 virtio-rng(半虚拟化高速随机设备) * /dev/urandom宿主机侧熵源 ,宿主机读取自身 /dev/urandom,通过 virtio 通道投喂给虚拟机 工作流程: 宿主机内核 → /dev/urandom 取随机数据 → virtio 总线 → 虚拟机内核 → 虚拟机 /dev/random//dev/urandom 填充熵池

三、virt-install中的一些细节

3.0、查看KVM虚拟化工具支持的操作系统信息

bash 复制代码
#列出 KVM/virt-install 等虚拟化工具支持的操作系统信息,方便在创建虚拟机时为 --os-variant 参数选择正确值,从而优化虚拟机性能。
osinfo-query os

3.1、--disk的子项bus类型对比

总线类型 代表设备名 性能 兼容性 功能支持 适用场景
ide /dev/hda 极高(所有系统都支持) 老旧协议,无热插拔 老旧系统、安装时兼容启动
sata /dev/sda 支持热插拔、NCQ 兼容 + 性能平衡场景
scsi /dev/sda 支持多设备、SCSI 命令 传统服务器系统
virtio(virtio-blk) /dev/vda 需安装 VirtIO 驱动 高性能、低开销 现代 Linux 虚拟机
virtio-scsi /dev/sda 极高 需安装 VirtIO 驱动 多队列、热插拔、TRIM、多设备 企业级 / 高性能虚拟机
nvme /dev/nvme0n1 极高 需新内核 / 驱动 模拟 NVMe 设备,低延迟 现代系统、SSD 场景

3.2、--disk的重点子项bus详解

--disk的子项bus名称 原理 特点 典型场景
ide(IDE 总线) 模拟传统 IDE 控制器,是最古老的磁盘接口。 * 兼容性极强,几乎所有操作系统(包括无驱动的老系统)都能识别。 * 性能差,单线程瓶颈明显,最大只能挂 4 个设备。 * 安装老旧系统(如 Windows XP、CentOS 5)。 * 作为安装时的兼容引导设备,安装完成后建议更换。
sata(SATA 总线) 模拟 SATA 控制器,是 IDE 的升级版。 * 性能比 IDE 高,最多支持 6 个设备。 * 兼容性好,现代 Linux/Windows 都自带驱动。 * 不想折腾 VirtIO 驱动,但又需要比 IDE 更好的性能。 * 部分系统默认使用 SATA 作为光盘 / 磁盘控制器。
virtio(virtio-blk,VirtIO 块设备) 基于 VirtIO 半虚拟化标准的专用磁盘驱动,是 KVM 的经典高性能方案。 * 性能高,开销低,是大多数 Linux 虚拟机的默认选择。 * 设备名以 vdX 开头(如 /dev/vda),你前面 lsblk 看到的 vda 就是这个。 * 需要虚拟机系统内安装 VirtIO 驱动(现代 Linux 内核默认自带)。 * 大多数 Linux 虚拟机(如 openEuler、CentOS、Ubuntu)。 * 对性能有要求的通用场景。
virtio-scsi(VirtIO SCSI 控制器) 用 VirtIO 封装标准 SCSI 协议,是 virtio-blk 的升级版。 * 功能最全:支持多队列(提升并发性能)、热插拔、TRIM、SCSI 高级命令。 * 扩展性强:单个控制器可挂载数十个设备,适合多盘场景。 * 设备名以 sdX 开头(和物理 SCSI/SATA 设备一致),管理更方便。 * 企业级云主机、高并发业务。 * 需要挂载多块磁盘、动态扩容的场景。
nvme(NVMe 总线) * 模拟 NVMe 设备,直接走 PCIe 通道。 * 延迟极低,性能接近物理 NVMe 盘。 * 需要新内核 / 驱动支持(Linux 3.10+、Windows 10+)。 * 对 IO 延迟敏感的业务(如数据库)。 * 现代 SSD 直通 / 模拟场景。

3.3、OVMF 四类 fd 文件完整详解

QEMU 使用 UEFI 固件时,必须分开两块 pflash 存储,不能混用、不能错配容量

OVMF 双分区架构 说明
CODE 固件(只读模板) 存放完整 UEFI 执行代码、驱动、设置界面、安全启动证书库。 系统全局公用,所有虚拟机共用同一个 CODE 文件,必须加 readonly=on
VARS 变量盘(可读写私有盘) 存放单台虚拟机专属 UEFI 持久化数据:启动顺序、BIOS 设置、TPM 状态、安全启动密钥、硬件配置记录。 每台虚拟机独立一份,可读写,复制 / 克隆虚拟机必须连带复制对应 VARS 文件。
后缀区分 * 无 _4m:2MB 固件镜像(传统小容量) * _4m:4MB 扩容固件镜像(现代系统推荐)
OVMF文件详解 核心属性 能力 适用场景与约束
/usr/share/edk2/ovmf/OVMF_CODE.fd * 类型:2MB 标准 UEFI CODE 固件模板 * 来源:系统包(edk2-ovmf)自带公共只读固件 * 大小:2MiB 能力限制: * 固件存储空间小,安全启动证书分区容量不足,Win11 /openEuler 2403 SP3 开启 SecureBoot 容易异常; * 内置驱动精简,部分新型网卡、GPU、TPM2 兼容性差; * UEFI 设置界面功能阉割。 适用场景 老旧轻量虚拟机、32 位系统、无安全启动需求、极低内存宿主机。 使用约束 只能搭配 2MB VARS 文件 ,混用 4M VARS 直接报 flash size mismatch 启动崩溃。
/usr/share/edk2/ovmf/OVMF_CODE_4m.fd * 类型:4MB 完整版 UEFI CODE 固件模板 * 来源:系统 edk2 包公共固件,只读共享 * 大小:4MiB 优势(openEuler 2403 SP3 首选) 1. 更大 Flash 分区,内置完整微软 / 红帽 /openEuler 安全启动证书,原生支持 SecureBoot; 2. 内置完整 TPM2、virtio、vga、vfio 设备初始化驱动; 3. 支持多语言 UEFI 设置、自定义启动项、硬件高级配置; 4. 完美兼容 x86_64 openEuler 2403 SP3、Windows 10/11。 使用约束 必须搭配 4M 规格 VARS 变量盘
/data/vmdisk/openeuler2403sp3_VARS.fd * 类型:单虚拟机私有 2MB UEFI 变量存储盘 * 生成方式:从系统模板 /usr/share/edk2/ovmf/OVMF_VARS.fd 复制而来 * 作用:专属存储这台 openEuler 2403 SP3 虚拟机的 UEFI 持久变量 配套关系 仅能和 OVMF_CODE.fd(2M CODE) 成对使用。 风险点 1. 单独删除此文件:虚拟机 UEFI 设置、启动顺序全部重置,每次开机进 UEFI 安装界面; 2. 拷贝虚拟机时不带此文件:新虚拟机丢失原有启动项,无法自动进系统; 3. 开启安全启动极易出现证书空间不足、引导失败。
/data/vmdisk/openeuler2403sp3_VARS_4m.fd * 类型:单虚拟机私有 4MB UEFI 变量存储盘 * 生成方式:复制系统模板 /usr/share/edk2/ovmf/OVMF_VARS_4m.fd 自定义重命名 * 作用:4M 固件配套大容量变量存储,给 openEuler 2403 SP3 持久保存 UEFI 配置、安全启动密钥、TPM 凭证 配套关系 仅能和 OVMF_CODE_4m.fd(4M CODE) 成对使用。 适配优势 1. 充足空间存放多套安全启动签名证书; 2. 多硬盘、多系统多启动项可完整保存; 3. TPM2 加密状态、虚拟机 BIOS 自定义参数长期留存,不会丢失。
bash 复制代码
#QEMU参数示例【2MB 老旧组合】
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/ovmf/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/data/vmdisk/openeuler2403sp3_VARS.fd


#QEMU参数示例【4MB 推荐组合】
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/ovmf/OVMF_CODE_4m.fd \
-drive if=pflash,format=raw,file=/data/vmdisk/openeuler2403sp3_VARS_4m.fd
相关推荐
爱吃龙利鱼1 小时前
k8s1.36部署helm和storageclass
云原生·容器·kubernetes
又是进步的一天1 小时前
一台虚拟机学习CI流程
学习·ci/cd·云原生·容器·kubernetes·devops
java_cj2 小时前
从kubectl源码学Cobra:打造专业级Go命令行工具的完整实践
运维·开发语言·后端·云原生·golang·kubernetes·k8s
冰山一脚201316 小时前
kvm驱动学习笔记
qemu
杰克逊的日记1 天前
如何在不影响业务的情况下对K8S集群升级
云原生·容器·kubernetes
nvd111 天前
Terraform 避坑:模块下线时,如何不破坏已有的 Instance Template?
云原生·terraform
子牙老师1 天前
你管这破玩意叫ChatGPT?
云原生·chatgpt·容器
梦想的颜色1 天前
Docker 知识全貌:一份体系化的知识结构报告
docker·云原生·容器·eureka
zhangfeng11331 天前
国家超算中心K8s 容器服务,新版容器和老版本的一些坑
云原生·容器·kubernetes