虚拟机克隆

虚拟机克隆

VMware 虚拟机克隆完整指南

K8s 集群搭建前置篇 | 2026-08-03


为什么需要克隆虚拟机

搭建 Kubernetes 集群至少需要三台节点——一台 Master 和两台 Worker。如果用传统方式逐台安装操作系统、配置环境,不仅耗时费力,还容易产生配置偏差,导致后续集群组件无法正常工作。

VMware 的克隆功能可以完美解决这个问题:先精心配置一台"模板"虚拟机,安装好操作系统、基础工具和公共依赖,然后一键克隆出多台完全一致的节点。克隆完成后,只需修改每台节点的主机名和 IP 地址就能投入使用。

本文在 VMware Workstation 17 环境下,以 Rocky Linux 10.2 作为模板系统,演示克隆三台 K8s 节点的完整流程。文末附有克隆后必须修改的关键配置项,让你一步到位完成集群节点准备。


前置条件:关闭虚拟机

克隆操作有一个硬性要求——目标虚拟机必须处于关机状态。如果在虚拟机开机或挂起状态下尝试克隆,VMware 会直接拒绝操作。

0-无法为处于开启或挂起状态的虚拟机或快照创建克隆.jpg


克隆步骤详解

第一步:右键菜单启动克隆向导

在 VMware 左侧虚拟机列表中,右键点击模板虚拟机,选择 管理 → 克隆。克隆向导将引导你完成后续配置。

0-克隆.png

第二步:选择克隆源

克隆向导会询问克隆来源——从"虚拟机中的当前状态"还是"现有快照"创建。对于大多数场景,选择从当前状态创建克隆即可。

0-2-克隆.jpg

第三步:选择克隆类型

VMware 提供两种克隆方式,各有适用场景:

克隆类型 原理 磁盘占用 独立性 适用场景
链接克隆 基于父虚拟机创建增量快照 极小(初始几 MB) 依赖父虚拟机 临时测试、CI/CD 流水线
完整克隆 复制父虚拟机的完整磁盘副本 等于模板磁盘大小 完全独立 生产环境、K8s 集群

K8s 集群节点需要长期稳定运行,且三台节点互不依赖,必须选择完整克隆。

0-3-克隆.jpg

第四步:命名并指定存储位置

为克隆虚拟机命名(建议有意义、能区分角色的名称,如 Rocky-master、Rocky-node1),并选择存储目录。建议将克隆虚拟机放在与模板不同的子目录下,便于后续管理和备份。

0-3.5.jpg

注意每个虚拟机都需要有一个专门的文件夹存放,不能把多个虚拟机文件放在同一个目录下。

0-4-文件目录.jpg

第五步:等待克隆完成

完整克隆会复制模板的整个虚拟磁盘,耗时取决于磁盘大小和硬盘读写速度。一个 40GB 的虚拟机大约需要 2-5 分钟。

克隆完成后,VMware 会在指定目录生成全新的虚拟机文件(.vmx、.vmdk 等),与模板完全独立。

0-5-完成.jpg

第六步:重复克隆,凑齐全部节点

K8s 集群需要 1 Master + 2 Worker(加上 Harbor 仓库共 4 台),重复上述步骤克隆出所有节点。最终虚拟机列表应如下:

0-6-虚拟机列表.jpg


克隆后必做的配置

克隆会自动生成新的 MAC 地址,但以下配置项必须逐台修改:

1. 修改主机名

# Master 节点
hostnamectl hostname k8s-master01 && bash

# Worker 节点分别执行
hostnamectl hostname k8s-node01 && bash
hostnamectl hostname k8s-node02 && bash

2. 配置静态 IP

# 查看当前网卡名
ls /etc/NetworkManager/system-connections/

# 按规划修改为静态 IP(以 Master 为例)
nmcli connection modify ens160 ipv4.method manual \
  ipv4.addresses 192.168.142.150/24 \
  ipv4.dns "223.5.5.5 8.8.8.8" \
  ipv4.gateway 192.168.142.2 \
  connection.autoconnect yes

nmcli connection up ens160

要点: IP 网段必须与 VMnet 子网保持一致。可以在 VMware 的 编辑 → 虚拟网络编辑器 中查看 NAT 子网地址。

3. 配置主机映射

cat > /etc/hosts <<EOF
192.168.142.150 k8s-master01 m1
192.168.142.151 k8s-node01 n1
192.168.142.152 k8s-node02 n2
192.168.142.129 hb.reg.com harbor
EOF

4. 验证 SSH 连通性

配置完静态 IP 后,用终端工具连接各节点,确保网络可达。

0-7-远程连接虚拟机.jpg


常见踩坑与建议

  • 开机前先关机模板: 克隆出来的虚拟机会复制模板的 MAC 地址缓存,如果模板仍在运行,可能造成 IP 冲突。
  • 修改 UUID: 克隆完成后首次开机,VMware 会弹出"已移动/已复制"提示。务必选择 "我已复制该虚拟机",让系统重新生成唯一标识。
  • 打好快照: 全部配置完成后,给每台虚拟机拍摄快照。万一后续操作出错,可以一键恢复。
  • 网络模式统一: 所有节点使用同一种网络连接模式(NAT 或桥接),避免集群内部通信失败。

建议: 在模板虚拟机中提前装好 Docker、常用工具(vim、curl、wget 等)并关闭防火墙和 SELinux,这样克隆出的节点可以跳过大量重复配置,直接进入 K8s 安装流程。


总结

虚拟机克隆是 K8s 集群搭建中最容易被低估的一步。一次精心准备的模板 + 三次克隆 + 三组配置修改,就能在 15 分钟内准备好全部节点,比手动安装节省 80% 以上的时间。更重要的是,克隆保证了集群节点的环境一致性,大大降低了后续组件安装过程中出现"这台能跑、那台报错"的概率。

克隆完成后,接下来就可以配置 Harbor 私有镜像仓库,然后使用 kubeadm 初始化集群并加入工作节点了。

Read more

青藤云一面

青藤云一面

1、自我介绍 面试官您好,我叫XX,来自重庆。本科就读于重庆城市科技学院信息安全专业,是27届应届毕业生。今天应聘的是贵公司的技术支持工程师岗位。 我的技术方向主要围绕网络运维和云原生这一块。在校系统学过计算机网络、操作系统、数据库、云计算这些课程。技能上,我熟悉RedHat、Ubuntu这些主流Linux发行版,能独立完成服务器的系统部署、权限管理、日志分析和安全加固;数据库方面会 MySQL的基本的增删改查操作;自动化这块,我会用Shell写运维脚本,能用Ansible做批量运维,也了解CI/CD流水线的搭建。另外我也熟悉Docker的基本操作,也了解 Kubernetes 核心资源的基础应用与日常排查。 我做事有规划,责任心强,有较好的执行力,希望能够加入贵公司,把自己的专业技能转化为实际工作能力。 2、大学参加的社团活动中,让你意向深刻的 XXX 3、如果你和其他部门约定好在会议室一起规划活动时,对方迟迟没有来的话你会怎么解决 一、主动沟通。 先确认时间和地点有没有沟通清楚,然后主动联系对方,礼貌问一下是不是有什么事情耽搁了、大概多久能到,不干等、也不

By Admin
Linux 运维文件写入操作

Linux 运维文件写入操作

面向 Linux 运维/SRE 的文件写入操作参考手册。既讲每条命令怎么用,也讲它背后的机制(为什么这么行为),配真实输出示例与边界情况,最后给出常见陷阱速查表与标准动作模板。 目录 1. 总览:运维"写文件"的全景 2. Shell 重定向:机制与基础符号 3. 重定向顺序的坑:为什么 2>&1 > f 不行 4. 文件描述符与 exec:持久打开、交换、关闭 5. 防止误覆盖:noclobber 与 >| 6. Here 文档与 Here 字符串 7. tee:

By Admin