【免费下载链接】orchard
The native UI for Apple Containers and (o)MLX sandboxes, written in swift as a replacement for docker desktop
Orchard 是一款 macOS 原生应用,基于 Apple container 技术,为 Docker Desktop 用户提供替代方案。通过内置的 k8s 插件,你可以在 Orchard 里一键创建本地 Kubernetes 集群,并自动完成 kubectl 配置——无需手动编辑 kubeconfig,无需折腾端口映射。
📋 准备工作:安装 Orchard 与 k8s 插件
开始之前,确认你的环境满足以下要求:
| 项目 | 要求 |
|---|---|
| 操作系统 | macOS 26 (Tahoe) |
| Apple container | 1.5.0(k8s 插件自 1.2.2 起随附) |
| 安装方式 | Homebrew 或官方 Release 下载 |
通过 Homebrew 一键安装 Orchard:
brew install orchard💡 集群功能依赖 Apple container 自带的
k8s插件。如果你的 container 版本过旧(1.2.2 之前),Orchard 会在 Clusters 页面显示 "Kubernetes Plugin Not Installed" 提示并引导你升级,不会让你盲目操作。
🚀 一键创建本地 K8s 集群:完整步骤
1. 打开创建集群对话框
在 Orchard 侧边栏点击K8s Clusters,再点中间的+按钮(或空列表中的 "Create Cluster" 按钮),弹出创建面板。
2. 配置集群参数
面板提供 4 组核心选项:
- Name(集群名称):默认
k8s-dev,只支持小写字母、数字和连字符。这个名字会直接成为 control-plane 容器的 ID - Override resource defaults(资源覆盖,可选):关闭时由运行时自动决定;打开后可指定 CPUs 和内存(GB),面板会显示你 Mac 的可用上限
- Kubernetes Version(版本选择):
- Recommended(推荐):k8s 插件自带并经过测试的
kindest/node节点镜像 - 其他版本:自动拉取 1.31 及以上各小版本最新补丁的
kindest/node列表 - Custom Image:手动填写完整镜像引用,如
docker.io/kindest/node:v1.34.11(必须带 tag,container 1.5.0 从 tag 读取 K8s 版本,无 tag 会被拒绝)
- Recommended(推荐):k8s 插件自带并经过测试的
- Advanced → CNI Manifest(可选):选择自定义 CNI 清单文件(yaml/json),替代默认的 kindnet。注意 CNI 必须与集群的 pod 子网匹配,否则集群将无法就绪
3. 点击 Create Cluster 开始创建
创建过程会依次进行:
- 首次使用时拉取
kindest/node节点镜像 - 通过 kubeadm 引导 control-plane
⏱️预计耗时数分钟,创建过程中按钮显示 "Creating…" 并伴随进度指示,集群就绪后自动出现在列表中,无需手动刷新。
集群就绪后,节点信息、角色和实时资源用量一目了然:
⚙️ kubectl 配置实战:3 个按钮搞定
集群创建完成后,Orchard 提供 3 个一键操作(位于详情页顶部按钮区或右键菜单):
Write Kubeconfig
把集群的 context 写入或合并进你的 kubeconfig(默认路径~/.kube/config)。context 以 control-plane 容器命名,多个集群可共存、随时切换。点击后按钮短暂显示 "Kubeconfig ✓" 表示写入成功。
Copy Kubeconfig Path
一键复制 kubeconfig 文件路径到剪贴板,方便在脚本或工具中引用。
Terminal (kubectl):最推荐的方式 ⭐
点击后自动打开终端,并预先执行kubectl config use-context <集群名>,直接把你带入已选中的集群上下文——如果切换失败(比如 kubeconfig 尚未写入)会明确报错,而不是静默留在旧集群上。接着运行kubectl get nodes即可验证:
# Orchard 在终端中已自动执行: kubectl config use-context k8s-dev && exec ${SHELL:-/bin/zsh} # 验证集群节点 kubectl get nodes部署工作负载仍然使用你熟悉的工具:kubectl、k9s、Lens——Orchard 交付配置好的 context,然后退居幕后。
📊 集群详情与节点监控
点击集群列表中的条目进入详情页,可以看到:
- Resource Usage:CPU、Memory、Network、Disk 四条时间线图表,支持 5m / 15m / 1h / 24h 时间窗口切换
- Nodes 表格:每个节点的 role(control-plane / worker)、状态、IP、CPU 数、内存、发布端口
- 交叉跳转:点击节点名直接跳到 Containers 页签查看对应容器;容器列表中 k8s 节点带有 "k8s · control-plane" 徽标,两个视图双向联动
当前限制说明:
- k8s 插件目前只创建单节点集群——control-plane 节点同时运行工作负载,worker 节点支持仍在上游开发中
- container 1.5.0 移除了
container k8s start,已停止的集群无法重启,只能删除后重建;Orchard 的 Recreate 操作会保留你原来的创建配置,省去重新填写
🐳 把本地镜像加载进集群
用 Orchard 构建或拉取的镜像,可以通过详情页的Load Image…按钮直接加载到集群的 containerd 中——镜像从本地存储导出并导入集群节点,Pod 无需 registry 即可直接引用。
❓ 常见问题速答
| 问题 | 解决方案 |
|---|---|
| 提示 "Kubernetes Plugin Not Installed" | 升级 Apple container 到 1.2.2 以上,页面自带升级指引链接 |
| 创建失败出现 "node prep failed" | 节点准备阶段(sysctl/网络配置)异常,删除集群后重试 |
| 如何切换集群 | 在 Terminal (kubectl) 打开的终端中运行kubectl config use-context <其他集群名> |
| 集群名称重复被拒绝 | 集群名即 control-plane 容器 ID,不可重复,请换一个名字 |
📁 相关源码参考
想深入了解实现细节,可以阅读这些文件:
- 集群生命周期核心服务:ClusterService.swift
- 节点镜像版本目录(kindest/node):K8sNodeImages.swift
- 创建集群界面:CreateCluster.swift
- 集群列表与右键菜单:ListClusters.swift
- 集群详情页:ClusterDetail.swift
- 功能总览:README.md
总结
Orchard 让在 Mac 上运行本地 Kubernetes 集群变得前所未有地简单:
- 安装:
brew install orchard+ 保持 Apple container 为最新版 - 创建:K8s Clusters 页签 → + → 填名字 → 选版本 → Create
- 配置 kubectl:Write Kubeconfig,或直接用 Terminal (kubectl) 一键进入已选中的上下文
- 日常使用:加载本地镜像、监控节点资源、用 kubectl / k9s / Lens 部署工作负载
从安装到kubectl get nodes看到 Ready 状态,全程不超过 10 分钟。🎉
【免费下载链接】orchard
The native UI for Apple Containers and (o)MLX sandboxes, written in swift as a replacement for docker desktop
相关推荐
k8s-tutorials 环境准备指南:Docker、minikube 与 kubectl 一站式搭建本地 Kubernetes 实战环境
k8s tutorials 环境准备指南:Docker、minikube 与 kubectl 一站式搭建本地 Kubernetes 实战环境 本篇文章是 k8s
文档教程云原生ArcBox玩转本地Kubernetes:abctl k8s一键拉起k3s集群,kubectl即刻上手
ArcBox玩转本地Kubernetes:abctl k8s一键拉起k3s集群,kubectl即刻上手 想在自己的 Mac 上跑 Kubernetes 却不想折
GoFrame:功能完整的 Go 后端框架,快速搭起 RESTful 服务
GoFrame:功能完整的 Go 后端框架,快速搭起 RESTful 服务 GoFrame 是一个功能完整的 Go 后端框架:HTTP 服务、路由、参数绑定与校
Web框架后端CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考