找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2541

积分

0

好友

365

主题
发表于 前天 16:29 | 查看: 0| 回复: 0

我经常需要搭建Kubernetes环境进行测试,由于使用的是ARM架构的MacBook,因此一直在寻找一种能够快速启动和销毁K8s环境的方法。下面分享我最近在使用的一套方案:Vagrant结合VMware Fusion。

一、安装VMware Fusion

  1. 打开博通官网:https://www.broadcom.com/

Broadcom官网首页,展示AI基础设施解决方案

  1. 注册账号登录之后进入 my downloads: https://support.broadcom.com/group/ecx/downloads

Broadcom用户下载中心界面

点击跳转链接: https://support.broadcom.com/group/ecx/free-downloads

  1. 搜索 fusion 之后选择相应的版本下载

在免费下载页面搜索VMware Fusion

VMware Fusion产品版本下载列表

  1. 安装就是双击了,不赘述。

二、安装Vagrant

  1. 打开下载地址,选择 arm64 的安装包 https://releases.hashicorp.com/vagrant

Vagrant版本发布页面,选择arm64版本

  1. 安装 vagrant,双加下一步下一步就行,不赘述。

Vagrant安装包文件

Vagrant安装成功确认界面

三、安装Vagrant VMware Utility

安装它的原因:vagrant默认不支持 vmware,支持的是 virtualbox,为了支持 vmware,需要Vagrant VMware Utility,它是系统级辅助服务程序,是插件与 VMware API 通信的「安全桥梁层」,默认监听 9922 端口。

  1. 下载对应的 arm64 架构版本 https://releases.hashicorp.com/vagrant-vmware-utility

Vagrant VMware Utility下载列表

  1. 安装,直接双击安装即可,不赘述。

Vagrant VMware Utility安装包

Vagrant VMware Utility安装向导

Vagrant VMware Utility安装成功确认

  1. 验证
    sudo netstat -an | grep 9922

验证9922端口监听状态

四、安装VMware provider plugin

该插件的作用:Vagrant 的功能扩展插件,替代默认的 VirtualBox 驱动,让 Vagrant 能够创建、管理、控制 VMware 格式的虚拟机(VM)。是 Vagrant 与 VMware 交互的业务接口层。

  1. 命令行安装插件 VMware provider plugin
    vagrant plugin install vagrant-vmware-desktop \
        --plugin-clean-sources \
        --plugin-source https://gems.ruby-china.com

安装vagrant-vmware-desktop插件过程

  1. 验证
    vagrant plugin list

列出已安装的Vagrant插件

五、下载ubuntu虚拟机模板 box

box可以理解为系统镜像,box浏览地址:https://portal.cloud.hashicorp.com/vagrant/discover

  1. 下载对应版本的 box 文件 https://portal.cloud.hashicorp.com/vagrant/discover/bento/ubuntu-24.04/versions/202510.26.0

Ubuntu 24.04 box文件下载页面

  1. 添加,比如我这里的 box 文件是 ubuntu24.04.box
    vagrant box add bento/ubuntu-24.04 ubuntu24.04.box
  2. 查看
    vagrant box list

添加并查看Vagrant box列表

六、编写vagrant启动配置文件

这里主要有三个文件,由于内容比较多,这里就不放具体内容了,讲下里面的内容和功能。

Vagrant配置文件目录结构

settings.yml - 配置参数文件

功能:集中管理所有可配置参数

  • 软件配置:镜像仓库地址、软件源等
  • VMware配置:虚拟机存储位置、共享目录、克隆方式、GUI设置等
  • 节点配置:主节点和工作节点的名称、CPU、内存等资源分配
  • 网络配置:IP地址段、DNS服务器、Pod和Service网络等

Vagrantfile - 主配置文件

参考文档: https://www.vagrantup.com/docs/vagrantfile/

可以通过下面的命令来生成一个,然后去自定义:

vagrant init bento/ubuntu-24.0

功能:这是Vagrant的主配置文件,定义虚拟机集群的基础架构和配置

  • 读取配置:从settings.yml加载所有配置参数
  • 虚拟机定义:创建1个主节点(k8s-master)和2个工作节点(k8s-node1、k8s-node2)
  • 网络配置:为每个虚拟机分配私有网络IP
  • 资源分配:根据配置设置CPU、内存等硬件资源
  • 调用初始化脚本:通过provision机制调用bootstrap.sh

bootstrap.sh - 自动化安装脚本

功能:完整的 Kubernetes 集群自动化部署脚本

  • 系统配置:时区、密码、DNS、软件源等基础设置
  • 容器运行时:安装Docker或containerd
  • Kubernetes组件:安装kubeadm、kubelet、kubectl
  • 集群初始化:主节点初始化集群,工作节点加入集群
  • 网络插件:安装Calico或Cilium CNI

七、启动虚机集群

  1. 启动
    cd vagrant-k8s
    vagrant up
    vagrant up

    注意事项: 需要执行两遍 vagrant up, 网卡 vmnet2 会在第一次 up 时创建。

首次启动虚拟机集群时的网络设备错误及第二次成功启动

Kubernetes节点成功加入集群的日志

  1. 查看
    vagrant status

查看虚拟机集群当前状态

  1. 连接
    vagrant ssh <主机名>

SSH连接至K8s主节点并查看集群节点状态

  1. 其他常用管理命令

    暂停/恢复:

    # 暂停
    vagrant suspend
    # 恢复
    vagrant resume

暂停虚拟机集群并查看状态

恢复虚拟机集群运行

**关机/启动:**
```bash
# 关机
vagrant halt
# 启动
vagrant up
```

关闭虚拟机集群并查看状态

**重启:**
```bash
vagrant reload
```
如果不想用了直接destroy就行(注意:destroy会删除所有创建的虚机文件):
```bash
vagrant destroy -f
```

通过以上步骤,你就可以在ARM架构的Mac上,利用Vagrant和VMware Fusion快速搭建起一个用于测试的Kubernetes环境,并根据需要随时进行暂停、恢复或销毁,非常适合开发和测试场景。这种基于声明式配置和自动化脚本的搭建方式,也是现代云原生基础设施管理的典型实践。如果你在搭建过程中遇到问题,或者有更优的配置方案,欢迎在云栈社区的技术论坛与更多开发者交流讨论。




上一篇:Spring Boot 3集成QLExpress:从入门到实战的轻量规则引擎指南
下一篇:PostBot:开源多平台内容同步助手,一键分发文章与动态
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 02:49 , Processed in 0.242936 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表