Zeaburv0.1.0

在自己的集群上,用项目和服务管理 Kubernetes

Zeabur 直接读取 Kubernetes 对象,把 Namespace 整理成项目和服务,说明哪里出了问题。改配置前,先列出这次会写入哪些字段,确认后才应用。

看全部 88 项功能

没有自己的数据库,也没有自己的权限

从集群读取,确认后才写回去

  1. 读取

    按 selector、Service、HTTPRoute 和 volume 的关系,把 Deployment、PVC、Secret 这些对象组成服务。

  2. 呈现

    项目就是加了标签的 Namespace。需要处理的服务排在最前面,旁边就是日志和事件。

  3. 写入

    每一次写入先发给 kube-apiserver dry run,全部通过才真正写入。对象被别人改过,就不会写入。

从部署到出问题

部署与配置

改之前,先看会发生什么

镜像、Compose、Git 或 YAML 都能部署。每次修改先列出会写入的字段、哪些服务会重启、会不会丢数据,确认后才应用。

这组的 18 项功能
保存 web 的变更前先检查:2 个副本会逐一替换,服务不会中断,资源也够保存 web 的变更前先检查:2 个副本会逐一替换,服务不会中断,资源也够

网络与域名

域名、证书和连接规则

加域名时列出要配置的 DNS 记录,证书自动续期。网址打不开时,连接检查会指出卡在 DNS、入口还是服务。

这组的 12 项功能

数据与备份

数据库和备份放在一起

选一种数据库,由它自己的 operator 管理。定时备份到 S3,需要时恢复成新的数据库,确认没问题再把服务指过去。

这组的 13 项功能
只有一个实例的 PostgreSQL。它故障时没有其他实例接手,所以 Zeabur 提醒你设置备份。只有一个实例的 PostgreSQL。它故障时没有其他实例接手,所以 Zeabur 提醒你设置备份。

看出哪里出错

用平常的话说哪里坏了

服务不健康时,页面说明原因,附上依据和下一步,不靠 AI。同一个原因拖垮好几个服务时,只算一件事。

这组的 13 项功能
worker 重启了 14 次。错误在重启前那一次运行的日志里,旁边就是打开日志的按钮。worker 重启了 14 次。错误在重启前那一次运行的日志里,旁边就是打开日志的按钮。

团队与权限

通行密钥,加上你自己的权限

成员用通行密钥登录,每个请求都带着自己的令牌,能做什么由 Kubernetes RBAC 决定。管理员另有专用账号,只能用通行密钥,令牌 5 分钟就到期。

这组的 8 项功能
日常登录:通行密钥按钮和“使用 GitHub 继续”日常登录:通行密钥按钮和“使用 GitHub 继续”

集群与节点

集群本身也看得到

Kubernetes 支持到什么时候、版本差多少、哪些组件落后,都在总览上。加节点、维护、移除都有步骤,维护时会遵守 PodDisruptionBudget。

这组的 8 项功能
集群页:Kubernetes 1.34 即将停止支持,节点内存用到 91%,磁盘用到 88%。集群页:Kubernetes 1.34 即将停止支持,节点内存用到 91%,磁盘用到 88%。

全部功能

Zeabur main 上现在有的功能,每项一行。还没做完的,后面写着缺什么。

部署与配置18

  • 部署容器镜像填上镜像就能运行,会读出端口,也能用私有 registry。
  • 导入 Docker Compose粘贴 compose.yaml,逐项列出会改变或跳过的配置,数据库可换成 operator 管理的版本。还没做完: 只有 build: 的服务、UDP 和主机路径会跳过
  • 从 Git 构建用 Railpack 或 Dockerfile 构建,可指定子目录,构建变量不会留在镜像里。还没做完: 需要安装 Zeabur Builder
  • 上传文件夹不用 Git 仓库,把文件夹或 .zip 拖进网页,或用 zeaburctl up 上传,再构建。还没做完: 需要安装 Zeabur Builder
  • 用 GitHub App 部署私有仓库给集群创建 GitHub App,成员直接挑仓库部署,不用另外配置部署密钥。还没做完: 需要安装 Zeabur Builder
  • 新提交自动部署每分钟看一次分支,有新提交就构建并换上新镜像。还没做完: 需要另外安装 Keel
  • 定时任务按 cron 和时区执行命令,可以立即执行、暂停,也能决定保留几条记录。
  • 用 YAML 创建和编辑对象表单没有的配置直接写 YAML,创建或编辑任何类型,包括自定义资源。
  • 回滚到之前的版本部署记录列出每个版本,可以比较差异,再回到其中一版。
  • 先检查变更再应用列出要写进集群的差异再应用。有人先改过就拒绝,请你重新检查。
  • 副本、资源与健康检查调整副本、CPU 和内存,配置就绪、存活和启动检查。
  • 暂停或重启整个项目一次停掉项目所有服务再恢复,或分批重启。
  • 环境变量逐行或用 .env 格式编辑,值默认放在 Secret。
  • 共享变量一组变量给多个服务读,看得到谁在读。
  • 配置改了自动重启共享配置或密钥一改,读它的服务自动重启。还没做完: 需要集群装有 Reloader
  • 严格或兼容的安全配置服务选严格时,以非 root 运行、不能提升权限、移除所有 capabilities。
  • 把已有的 Namespace 加进 Zeabur集群里的 Namespace 点一下就变成项目。Helm、Argo CD、Flux 管理的服务不让你改错。
  • 应用程序模板从 Zeabur Catalog 挑一个应用程序,填好域名和字段,检查后部署。

网络与域名12

  • 公开域名与 HTTPS列出要加的 DNS 记录,证书自动签发与续期。
  • 通配符证书用 DNS-01 签发,支持 Cloudflare、Route 53、Google Cloud DNS、DigitalOcean、Azure DNS。
  • 上传自己的证书粘贴 PEM,先核对日期、域名和密钥是否匹配。
  • 域名重定向用 301 或 302 转到另一个域名,路径保留。还没做完: 只在 Traefik 上
  • 访客密码给域名加账号密码,登录后才看得到。还没做完: 只在 Traefik 上
  • 维护模式域名暂时显示维护页,服务照常运行,关掉后流量自动回来。
  • 自定义错误页服务返回 502、503、504 时,显示项目自己的 HTML。还没做完: 只在 Traefik 上
  • Gateway API域名可以用 HTTPRoute 提供。
  • 开放端口到互联网不经过域名,直接开放一个 TCP 端口,例如让数据库对外。
  • 连接规则隔离服务,或只让特定服务连进来,连入和连出分开列出。
  • 连接检查网址打不开时,从集群内和你的浏览器两边查,指出卡在哪一段。
  • 限制能连入和连出的 IP只让指定的 IP 打开域名,也限制服务能连到哪些 IP。还没做完: 域名限制只在 Traefik 上

数据与备份13

  • 数据库PostgreSQL、MongoDB、MySQL、MariaDB、Dragonfly,各由自己的 operator 管理。
  • 多实例数据库MongoDB、MySQL 可以运行 1、3 或 5 个实例。
  • 把数据库连到服务勾选服务就加上 DATABASE_URL 这类变量,密码留在 Secret。
  • 数据库定时备份每天或每周备份到 S3,看得到每次的结果。还没做完: MySQL、Dragonfly 不能立即备份
  • 恢复成新数据库从备份恢复出新的数据库,确认没问题再把服务指过去。
  • PostgreSQL WAL 归档持续把 WAL 存到 S3。还没做完: 恢复只能选某一份备份,不能选时间点
  • 下载数据库转储文件在浏览器下载 pg_dump、mongodump、mysqldump 的结果。
  • S3 对象存储创建 SeaweedFS 和存储桶,一键把端点和密钥加到服务。还没做完: Beta,只有一份数据
  • 存储卷挂载、选本地或复制存储、扩容、设为只读。
  • 存储卷备份用 K8up 定期备份到 S3,可调保留规则。还没做完: 恢复需要管理员自己做
  • 集群备份与恢复用 Velero 备份整个集群或选定的项目,从界面恢复 Namespace。还没做完: 只有管理员能恢复
  • 共享 S3 目的地登记一次,三种备份都能选。换密钥时一起更新。
  • 浏览文件在浏览器看容器和存储卷的文件,上传、下载、预览、改名、删除。

看出哪里出错13

  • 出了什么问题服务有问题时,一句话说原因和怎么处理,附上依据,按钮直接带你去改。
  • 需要处理首页列出停摆的服务,集群概览列出 Kubernetes 版本、节点和组件的问题。
  • 缺少的配置指出没有就绪检查、没有内存上限、没有备份的配置,附上修正按钮。
  • 日志可以筛选、排除、看上一次运行、下载。
  • 日志的历史记录看所有副本写过的日志,包括已被替换的。还没做完: 需要开启 Zeabur Proxy 并安装日志存储服务
  • 终端在浏览器打开 shell,容器没有 shell 时自动加一个调试容器。
  • kubectl 终端内置 kubectl 和 helm 的临时终端,用你自己的权限。
  • 用量每个副本当前的 CPU 和内存,对照上限,历史图标出内存不足和重启。还没做完: 需要安装 metrics-server,历史需要指标存储服务
  • 事件副本调度到哪个节点、健康检查失败、内存超过上限,这类 Kubernetes 事件最新的在前。还没做完: Kubernetes 只保留大约一小时
  • 通知渠道Slack、Discord、Telegram、Email、Webhook、ntfy、Gotify,集群和项目分开配置。
  • 异常告警部署失败、反复崩溃、内存不足、备份失败、证书快到期都会通知。
  • 运行时告警(Falco)装了 Falco 时,在界面看告警,也能发到通知渠道。
  • zeaburctl doctor从自己的电脑检查集群版本、组件和登录配置。

团队与权限8

集群与节点8

  • 集群组件检查集群装了哪些组件,由 Zeabur 安装,或生成 Helm、HelmChart、Flux、Argo CD 格式自己装。
  • 集群名称、域名与用量历史改集群名称,选用量历史的来源,设置新服务用的域名。
  • 从外部密钥库同步密钥连接 OpenBao、Vault、1Password 或 AWS Secrets Manager,把密钥同步成集群里的 Secret。
  • 加入节点生成有时效的令牌和命令,在新机器执行就加入。还没做完: 只限 Zeabur Installer 装的集群
  • 节点维护模式停机前把副本移走,遵守 PodDisruptionBudget,列出移不走的。
  • 移除节点移走副本、删掉 Node,再给你在那台机器要运行的清理命令。
  • 节点终端管理员在浏览器拿到主机 shell,每次打开都留记录。
  • 多台控制平面三台以上的服务器,少一台照常运行。还没做完: 需要在主机上用命令加

安装12

移除 Zeabur4

能做什么,需要准备什么

功能范围集群里需要
从 Git 部署推送后自动构建并部署Zeabur Builder
镜像与 Compose部署容器镜像,导入 Docker Compose 服务不用另外安装
数据库创建、备份与恢复对应的数据库 Operator,例如 CloudNativePG
对象存储创建 S3 对象存储与存储桶SeaweedFS Operator
公开域名添加域名与 HTTPS,显示维护和错误页面Ingress Controller 或 Gateway,以及 cert-manager
管理集群成员权限、节点、告警通知、集群备份、组件管理员权限

从手头的环境开始

三种安装方式打开的是同一套界面,区别在于 Zeabur 运行在哪里、用谁的凭据。