招募 Play Store 测试版测试者:加入 Discord 或通过邮件报名。

Ichor 面向 Talos Linux 和 Kubernetes
1.41 适用于任意 CRD 的插件、在手机上发起拉取请求、容量和运行手册 →

你运行的每个集群,尽在手机上。

Ichor 为 Talos Linux 而生,至今仍使用与 talosctl 相同的客户端与其通信。如今它也能打开任意 kubeconfig:EKS、GKE、AKS、DigitalOcean、Rancher、Sidero Omni 或 OIDC 登录,无需在集群上安装任何组件,也没有任何中间层。若缺少某个 Operator,一个 YAML 文件写成的插件即可为它提供界面。

手头没有集群?在首屏点按试用演示:五个示例节点、实时图表和日志,完全离线。免费开源,Apache-2.0 许可,默认只读。

生于 Talos · 处处适用

它最初是一款 Talos 应用,如今可以打开任意 kubeconfig。

通过文件、粘贴、QR 码或分享菜单导入 kubeconfig。预览会列出每个上下文及其登录方式,并添加你选中的那些。每个集群都有 Kubernetes 主页、全部 Kubernetes 界面、后台告警和专属颜色,重启操作绝不会指向错误的集群。

  • Talos Linux

    一个 talosconfig,角色已写入其证书:节点健康状况、日志、etcd、KubeSpan、升级,端到端覆盖 Talos API。

  • Sidero Omni

    像 omnictl 一样登录实例,选择它列出的集群。Omni 为你的身份分配的角色决定了应用可执行的操作。

  • 托管 Kubernetes

    EKS、GKE、AKS、DigitalOcean 和 Rancher:列出账号下的集群并添加,或导入 CLI 生成的 kubeconfig。exec 插件由手机上的登录替代:通过起始 URL 登录 IAM Identity Center,使用你的 Google 账号或组织的 OAuth 客户端,或 Entra ID。

  • 其他一切

    客户端证书、ServiceAccount 令牌,或通过 kubelogin 进行 OIDC 登录(在浏览器中或使用设备码)。k3s、RKE2、kubeadm、OpenShift:kubectl 能访问的,Ichor 也能访问。

登录如同在笔记本电脑上,保管如同一把钥匙

手机上不运行任何 aws、gcloud 或 az 二进制文件:Ichor 完成 exec 插件的工作,登录状态保留在设备上并自动续期。令牌和密钥加密保存在 StrongBox 或安全隔区中,受应用锁保护。

“这个集群用的是哪个账号?”→ 显示在它的主页上。

  • Talos Linux
  • Sidero Omni
  • Amazon EKS
  • Google GKE
  • Azure AKS
  • DigitalOcean
  • Rancher
  • OIDC · kubelogin
  • Client certificate
  • ServiceAccount token
  • Argo CD
  • Flux
  • Argo Rollouts
  • Cilium · Calico
  • CAST AI
  • Cluster API
  • Crossplane
  • Tailscale
  • KubeVirt
  • Longhorn · Rook Ceph
  • CloudNativePG
  • Velero
  • Kyverno · Gatekeeper
  • Alertmanager
  • Any CRD, as a plugin

在云集群上,Kubernetes 主页还会显示云平台把每个节点放在了哪里:Karpenter 节点池、托管节点组、计算类或代理池,机器类型,以及是竞价实例还是按需实例。Talos 集群也可以使用这些身份之一来访问其 Kubernetes 界面,而不使用管理员 kubeconfig。

1.22 至 1.41 新功能

你的 Operator、你的 Git、你的日常运维,全在手机上。

两周内发布二十个版本:为任意 CRD 提供界面的插件,在手机上从差异直接发起拉取请求,可模拟节点丢失的容量界面,Alertmanager 及 Kubernetes 主页的其余部分,全集群 Talos 升级,以及熄屏后仍继续运行的运行手册。

任意 Operator,皆可成为插件

一个插件就是一个 YAML 文件:要读取的资源、何为健康、卡片、操作和发现项。内置十二个插件:kube-green、External Secrets、ExternalDNS、Sealed Secrets、Rook Ceph、MariaDB、Percona、Dragonfly、Temporal、Numaflow 和 Dataflow。可通过粘贴、文件、URL 或 QR 码导入你自己的插件,并在启用前查看它会读取和更改哪些内容。它的发现项会进入集群检查和后台告警。

“应用认识我的 Operator 吗?”→ 现在认识了,无需发布新版应用。

在手机上编辑 Git

浏览 Argo CD 或 Flux 应用所部署的文件,版本与集群当前运行的一致。编辑某个文件,或快速修改镜像标签或副本数,在 kustomize 构建通过检查后审查差异,然后在 GitHub、GitLab、Gitea 或 Forgejo 上发起拉取请求。在集群中手动修改的值,或保留下来的 Talos 机器配置更改,都会被提议回写到对应文件。拉取请求合并时以及集群开始运行它时,应用都会通知你。

“能把那个标签升一下吗?”→ 在火车上就发起了拉取请求。

容量,以及失去一个节点的代价

每个集群的空闲 CPU、内存和磁盘,按 QoS 类别和优先级列出每个工作负载的 OOM 和驱逐风险,还有模拟功能:移除一个或多个节点,查看 Pod 会调度到哪里、哪些被抢占、哪些保持 Pending,以及应缩减什么。CPU 和内存用量来自 metrics-server,与 kubectl top 相同。

“今晚能排空 w-3 吗?”→ 四个 Pod 说不行。

完整的 Kubernetes 主页

工作负载、网络、存储、观测和浏览:Service 与负载均衡、Job、存储声明及其使用率,基于 HPA、KEDA、VPA 和 Karpenter 的自动扩缩容,Kyverno 和 Gatekeeper 策略,KubeVirt 虚拟机,Velero 备份,Helm 发行版,实时事件,以及可在手机上设置静默的 Alertmanager。每个对象都有摘要、带架构提示的 YAML、扩缩、删除以及你的 RBAC 允许的操作,列表实时更新。

“凌晨 3 点是谁在告警?”→ 一点即可静默该告警。

在手机上完成 Talos 日常运维

逐个升级每个节点,在升级本身不排空时先行排空,并在试运行后升级 Kubernetes。添加节点:在维护模式下检查它,基于现有成员生成其配置,发送配置并跟踪直到它加入集群。按引导计划替换控制平面节点,从快照恢复 etcd,一点修复其 NOSPACE 告警,重置或擦除节点;若会破坏 etcd,操作将被拒绝。

“1.13 升级呢?”→ 八个节点全部完成,在沙发上就搞定了。

运行手册,以及熄屏后仍在继续的长时间任务

运行手册是由应用自身操作组成的有序列表,导入时先展示其计划,运行时每个破坏性步骤都需确认。同步、协调、重启、多节点配置应用和网络测试都在后台运行,并显示进度和停止按钮:在 Android 上集中于一个“操作”通知渠道,在 iOS 上显示于锁定屏幕和灵动岛。

“周五的运行手册跑完了吗?”→ 第 3 步在等你。

  • 无需 CLI 即可登录云平台

    GKE 使用你的 Google 账号或组织的 OAuth 客户端,EKS 仅凭起始 URL 即可通过 IAM Identity Center 登录。粘贴或扫描 aws 配置、gcloud 凭据或 omniconfig,登录信息即自动预填。

  • 镜像漏洞扫描

    Grype 或 Trivy 可扫描 Pod、工作负载的镜像或节点的 Talos 系统镜像。报告保存在手机上,并标记自上次扫描以来新出现的问题。

  • 三十天历史记录

    每个节点的运行时间,自你上次查看以来的变化,使用率和内存迷你趋势图,提示“约 9 天后写满”的存储预测,以及可作为 Markdown 分享的匿名化故障摘要。

  • 搜索、Siri 和手腕

    可在主页搜索所有集群的节点、Pod、工作负载和应用,在 iOS 上也可通过聚焦搜索、Siri 和快捷指令搜索。Apple Watch 应用和 Wear OS 磁贴会显示每个集群的健康状况。

  • 平板电脑和 iPad

    节点和 GitOps 应用在列表旁打开,概览以两栏显示,iPad 侧边栏在当前界面旁列出你的集群及集群的各个分区。

  • 设置、备份和密钥

    设置按页面分组。备份为 age 文件,使用口令或你的 age 公钥加密,现在会保留固定项、Git 主机和 AI 设置,并可在 Android 和 iPhone 之间迁移。

  • 更多掌控

    支持 hooks 和等待的 Helm 回滚,扩缩任何提供 /scale 的资源,带试运行计划的污点和标签,带试运行差异的粘贴 YAML,用于无 shell 镜像的调试容器,在每个节点上预拉取镜像,清理已终止的 Pod。

  • 节点工具和硬件

    从节点发起 DNS、ping、端口、traceroute 和 HTTP/TLS 检查,传感器,CPU 频率和降频,每块磁盘的分区和加密,以及服务器的备件,均可在其硬件界面查看。

不只是观察,更能操作

每次更改都有记录,每个操作都先检查。

用安全密钥解锁应用,加密记录应用所做的更改及操作者,Argo CD 将应用的差异,指标界面上的 PromQL 助手,双平台上的 CAST AI 节省分析,以及能预先知道你的账号是否有权执行的 Kubernetes 操作。

记录手机所做操作的审计日志

在应用中对集群所做的每项更改(重启节点、重启工作负载、同步、回滚、删除)都会连同结果一起记录在设备上的加密日志中,即使后台运行崩溃也不例外。在 Android 和 iOS 上均可通过“活动”界面查看。

“下午 2 点是谁重启了 grafana?”→ 这台手机,在这个界面上。

Argo CD:先看差异,再同步

“显示差异”基于控制器已完成的比对,逐个对象展示同步将更改的内容,Secret 的值会被隐藏。修订版本、每条历史记录以及正在进行的同步都链接到其在 GitHub、GitLab、Gitea、Forgejo、Codeberg 或 Bitbucket 上的提交。现在回滚需要输入应用名称。

“这次同步会影响什么?”→ 点按之前就能看到那三个对象。

使用安全密钥解锁

YubiKey 或任意 FIDO2 密钥可通过 NFC 或 USB 替代 PIN 和生物识别作为应用锁,并加密存储的配置,没有密钥就无法读取,即使复制了手机存储也不行。

“手机丢了?”→ 配置由一把不在手机里的密钥加密。

指标界面上的 PromQL 助手

说出你想看的内容;助手会编写查询,在你的 Prometheus 上运行以确认有返回结果,然后添加面板。可选功能,默认关闭,使用你自己的 Claude 或 OpenAI 密钥,支持 Android 和 iOS。

“w-2 上每个 Pod 的内存,堆叠显示”→ 一个已验证的面板。

双平台支持 CAST AI

工作负载建议及其可节省的费用,节点整合计划,以及失败计划错失的节省,全部呈现在重新设计的工作负载视图中,现已同时支持 iOS 和 Android。

“哪些资源过度配置了?”→ 已排序,并附上可节省的费用。

任意对象的摘要,以及你可执行的操作

现在每个对象都有一个摘要标签页,类似 kubectl describe 的开头部分:条件、所有者、过去一小时的事件。其操作一点即达,你的账号无权执行的操作会被禁用并注明原因,这在你尝试之前就已向 API 服务器查询过。

“我能在这里重启它吗?”→ 能,或者告诉你为什么不能。

  • 每个集群都有告警

    后台告警、数据服务和可自定义排列的主页现在也适用于通过 kubeconfig 添加的集群,而不仅限于 Talos 集群。

  • 直达对应界面的告警

    点按通知即可直达相关的节点、Pod 或备份;Android 上每种类型对应一个通知渠道,可按需静音。

  • 输入确认

    删除所有集群或回滚 Argo CD 应用时需要输入其名称。一键操作就放在其对象所在之处。

  • 双平台,同样的设置

    Android 和 iOS 共用同一套设置布局,显示更新来源,并通过了无障碍检查,密集文本依然清晰易读。

网络、存储和压力

是网络、存储还是节点的问题?测一测就知道。

某些东西变慢了,而每个节点都显示 Ready。Ichor 直接在手机上测量两个节点之间的链路,检查你的应用所依赖的存储和数据库,并显示节点正在让哪个工作负载资源不足。

网络测试

从列表中选择两个节点(在 Android 上也可直接在集群地图上选择),Ichor 会像 cilium connectivity perf 一样使用 netperf 进行测量,适用于任意 CNI:先测 TCP 吞吐量,再测 p50、p90 和 p99 延迟,Pod 到 Pod,如有需要也可测主机到主机。结果会被保存并绘制成随时间变化的图表。

“新交换机更快了吗?”→ 已测量。

数据服务

Ichor 会识别集群中的 Longhorn、CloudNativePG、Garage、Rook Ceph、MariaDB、Percona 和 Dragonfly 并进行检查:降级的卷及其副本,Postgres 实例以及过期或失败的备份,CSI 快照和备份 CronJob,Garage 节点,Dragonfly 的主节点和副本。每个问题都会指明其背后的节点。可直接在该行提升副本、故障转移、抢救卷或创建快照;启用可选告警后,卷出现故障、磁盘写满或备份停止时会通知你。

“昨晚的备份跑了吗?”→ 跑了,或者告诉你为什么没跑。

Argo CD

当集群中运行 Argo CD 时,Ichor 会列出其应用及健康状况和同步状态,逐波跟踪同步过程,并支持同步、刷新、终止同步、暂停自动同步或回滚。它使用 Talos 签发的管理员 kubeconfig 访问 Application 资源:无需 Argo CD 令牌,由 ApplicationSet 管理的应用也绝不会被背地里修改。

Ichor 无法识别的应用(例如个人项目)可以通过 ichor.levis.name/icon 注解自带图标:一个 Dashboard Icons 名称、一个指向 PNG 或 WebP 的 https 链接(仅在你允许下载图标时下载),或以 base64 内嵌的图片本身。

kubectl -n argocd annotate application my-site \
  ichor.levis.name/icon=https://example.org/logo.png

“这个应用为什么降级了?”→ 指出对应的 Pod 和节点。

节点压力和 cgroups

以图表展示最近五分钟内节点上的任务等待 CPU、内存或磁盘的时长,并列出等待最多的工作负载、OOM kill 以及接近内存限制的容器。Cgroups 标签页与 talosctl cgroups 类似,按服务、Pod 和容器逐一细分。

“谁在吃 w-2 的资源?”→ 点名了。

这些功能需要 os:admin 证书。网络测试在专用命名空间中以 restricted Pod 安全配置运行其 Pod,结束后删除该命名空间;每次测量会占满链路 5 到 20 秒。保存的结果加密存放在手机上,不包含在备份中;数据服务告警默认关闭,需手动开启。

  • 集群地图

    在 Android 上,KubeSpan 界面会绘制你的站点、节点和隧道,标出正常、降级或宕机状态,并为每个区域显示旗帜。点按两个节点即可测试它们之间的链路。

  • 在浏览器中打开应用

    应用详情页会列出其网址(取自指向它的 Ingress 和 Gateway API HTTPRoute),一点即可打开。

  • 在局域网中发现你的集群

    从这里连不上任何端点?在 Android 上,Ichor 会在本地网络中搜索接受你凭据的节点,并允许你手动编辑端点。

  • 现成的调试命令

    调试 shell 中提供约 40 条 netshoot 命令,涵盖 DNS、MTU、TLS、KubeSpan 等,一点即可运行,几乎不需要使用手机键盘。

应用和 Kubernetes

了解集群上运行着什么,卡住时推它一把。

Talos 告诉你节点一切正常。但 Grafana 是最新版吗?为什么有一个 Cilium agent 还停留在旧版本?哪个 Pod 在反复崩溃?Ichor 现在会显示集群中运行的软件,并且在拥有管理员证书时,无需笔记本电脑即可重启工作负载或删除卡住的 Pod。

应用清单

每个节点上的每个容器都会按你熟悉的应用分组,并配上图标:Home Assistant、Immich、*arr 系列、Longhorn、Cilium 以及约 400 款其他应用。Sidecar 和 init 容器归入其所属应用,Ichor 还会标记同时运行两个版本的应用或未固定版本的 :latest 镜像。

“全都升到新版本了吗?”→ 一眼便知。

工作负载和滚动重启

Deployment、StatefulSet 和 DaemonSet 及其就绪和发布状态,需要关注的排在最前。可像 kubectl rollout restart 一样通过滚动更新重启其中一个,确认时若它只运行单个 Pod 会给出警告。随后实时显示发布过程中的新旧 Pod,直到所有新 Pod 就绪;随时可以关闭,发布会继续进行。

“它只是需要踢一脚。”→ 躺在床上就踢了。

Pod,不健康的优先

每个 Pod 都显示与 kubectl get pods 相同的状态(CrashLoopBackOff、Init:Error、Terminating)、重启次数和所在节点。删除卡住的 Pod,让其控制器启动一个新副本;确认时会告诉你是否有控制器会重新创建它。

“它怎么还在重启?”→ 已删除,已重建。

CronJob,按需运行

每个 CronJob 及其计划、下次运行时间和最近几次运行的结果,失败和运行中的排在最前。确认后即可像 kubectl create job --from 一样立即运行:该 Job 仍归属于其 CronJob,因此历史记录和清理规则依然适用。

可通过标签或注解为每个 CronJob 设置图标、名称和一行描述;未设置图标时,Ichor 会使用其镜像所属应用的图标,否则显示时钟。设置 ichor.levis.name/trigger=false 可让任务仅按计划运行。

kubectl label cronjob db-backup ichor.levis.name/icon=postgresql
kubectl annotate cronjob db-backup ichor.levis.name/title="Database backup"
kubectl annotate cronjob db-backup ichor.levis.name/description="Nightly dump to S3"
kubectl label cronjob wipe-staging ichor.levis.name/trigger=false

“昨晚备份失败了。”→ 在沙发上就重新运行了。

应用清单只需只读的 os:reader 证书,图标内置于应用中,无需在线查询。工作负载和 Pod 使用 Talos 签发的管理员 kubeconfig,仅保存在内存中。截图模式会隐藏所有图标以及地址和节点名称。

  • “无法访问集群”,原因一目了然

    VPN 没开或连错了网络?不再是满屏的红色节点,而是一条提示说明原因,自动重试,并在连接恢复的瞬间恢复正常。

  • 每次故障都有证据

    记录的故障现在会保留当时采集的服务状态和网络链路变化,技术细节一点即可查看。

  • 其余应用的图标,按需获取

    对于内置 400 款之外的应用,Ichor 可以从开放的 Dashboard Icons 图标集下载图标。此功能默认关闭,且仅发送图标的公开名称。

  • 版本漂移,及时发现

    某个节点还在用旧版 Cilium,某个被遗忘的 :latest 标签:需要关注的应用数量直接显示在概览上。

集群洞察

别再猜测哪里变了,你的手机都看见了。

凌晨 3 点,一个节点状态反复横跳,而你的笔记本电脑在另一个房间。集群洞察让 Ichor 从状态页变成排障工具箱:找出发生漂移的节点,在故障发生时记录全过程,并查看到底是哪种资源成了瓶颈。全部只需只读的 os:reader 证书。

配置漂移

那个 MTU 与众不同的工作节点,那台被遗忘的 NTP 服务器,那个升级时被落下的扩展。Ichor 会在每个角色内部,或对照你保存的基线,比较 DNS、NTP、MTU、扩展版本、Secure Boot、UKI 和 Talos 版本,并指出异常的那一个。

“为什么只有 w-3 慢?”→ 找到了。

故障记录器

在问题发生时点击记录,Ichor 会构建最长十分钟的时间线:实时 Talos 事件,以及每五秒采样一次的节点就绪状态、服务、链路和网络计数器。时间线会被保存,可直接用于事后复盘。

“最先出问题的是什么?”→ 时间线上都有。

瓶颈指标

负载很高,但究竟是 CPU、磁盘、网络,还是虚拟化宿主机上的吵闹邻居?“实时”标签页现在显示 I/O 等待和虚拟机 steal 时间、每块磁盘的吞吐量和 I/O 时间,以及每个网络接口的吞吐量、错误和丢包,重启后也不会出现虚假尖峰。

“是磁盘的问题吗?”→ 现在你知道了。

基线和记录在手机上加密保存,按集群分开存放,且从不备份。不会收集机器配置、kubeconfig 或原始日志,你可以在洞察界面删除所有内容。

  • 找回被遗忘的节点

    你的 talosconfig 只列出了一个端点?Ichor 会向集群查询其成员,并提供一键添加缺失节点的选项。

  • Wake-on-LAN

    从操作菜单唤醒已关机的节点。Ichor 会在每个节点运行时记住其网卡信息,因此即使你从未配置过,也能唤醒它。

  • 无需集群即可试用

    内置演示可离线运行,包含五个示例节点、实时指标、日志、etcd 等。在导入任何配置之前就能体验全部功能。

  • 导入更安全,切换更快捷

    导入同名上下文绝不会覆盖已有集群。长按应用图标即可直接进入任意集群。

界面一览

来自运行中集群的真实界面,在截图模式下拍摄:地址和节点名称已替换为占位内容。

Ichor for Talos Linux 的集群概览界面
集群概览所有节点一目了然,有新版 Talos 发布时显示横幅提示。
Ichor for Talos Linux 的服务界面
服务每个 Talos 服务的健康状况,运维人员可直接重启。
Ichor for Talos Linux 的内核和服务日志界面
内核和服务日志按级别着色,折叠重复内容,可筛选警告或错误。
Ichor for Talos Linux 的事件界面
事件实时显示服务变化和节点状况。
Ichor for Talos Linux 的实时图表界面
实时图表每两秒刷新 CPU、内存、网络、磁盘和负载。
Ichor for Talos Linux 的抓包界面
抓包实时数据包列表,可保存为 .pcap 供 Wireshark 使用。
Ichor for Talos Linux 的 Talos 升级界面
Talos 升级通过预检后,使用新版本的安装镜像升级。

常用的 talosctl 命令,化为一个个界面

一切都通过官方 Talos Go 客户端运行,因此 talosconfig 上下文、mTLS 以及端点到节点的代理,行为与 talosctl 完全一致。

替代 打开 角色
talosctl get machinestatus 集群概览每个节点的状态:就绪、未就绪或无法访问,并显示未满足的条件、时钟偏差和可用的 Talos 升级。 reader
talosctl services, talosctl logs -f 服务和日志服务健康状况,以及按级别着色的服务或内核日志,折叠重复内容,并支持实时跟随模式。 reader
talosctl events 事件时间线实时显示整个集群的服务变化、启动阶段和地址变化。 reader
talosctl dashboard, talosctl processes 实时图表和进程每两秒刷新 CPU、内存、网络、磁盘和负载,进程列表可按 CPU 或内存排序。 reader
talosctl get members 节点发现你的 talosconfig 尚未包含的集群成员,一键添加到上下文;在 Android 上,没有端点响应时还会搜索本地网络。 reader
diff of talosctl get … on every node 配置漂移在同一角色内或对照已保存的基线,比较 DNS、NTP、MTU、扩展、Secure Boot、UKI 和 Talos 版本。 reader
talosctl events + watch, in a terminal 故障记录器将事件与采样的节点、服务和网络状态合并为一条已保存的时间线。 reader
talosctl read /proc/stat, /proc/diskstats 瓶颈指标实时显示 I/O 等待、steal 时间、每块磁盘的 I/O 以及每个网络接口的错误和丢包。 reader
talosctl containers -k Pod按 Pod 分组的容器,显示 CPU 和内存。 reader
talosctl containers -k on every node 应用清单集群中运行的软件,按应用分组,显示图标、版本、版本漂移和未固定版本的镜像。 reader
talosctl get links, talosctl netstat 网络网络接口、地址、路由、DNS 和时间服务器,以及已打开的连接。 reader
talosctl apply-config --mode try 机器配置逐字段或以 YAML 查看节点配置,密钥默认隐藏,需手动显示。编辑后可试用更改:若不保留,节点会自动恢复原配置。 admin
talosctl etcd status, etcd snapshot etcd成员、leader、大小和告警,碎片整理,以及保存到手机的快照。 reader / backup
talosctl get kubespanpeerstatuses KubeSpan每个节点的对等节点:状态、端点、最近一次握手和流量;在 Android 上还有站点、节点和隧道的地图。 reader
talosctl service restart 服务控制启动、停止或重启服务,对关键服务会给出警告。 operator
talosctl reboot -m powercycle 重启、关机和唤醒正常、断电重启或强制方式,需输入主机名确认。可通过 Wake-on-LAN 唤醒已关机的节点。 operator
talosctl pcap 抓包带解码详情的实时数据包列表,可保存为 .pcap 在 Wireshark 中打开。 operator
talosctl upgrade Talos 升级一次升级一个节点,若会导致 etcd 失去法定人数则拒绝执行,并显示进度直到节点恢复。 admin
kubectl get deploy,sts,ds, kubectl rollout restart Kubernetes 工作负载每个 Deployment、StatefulSet 和 DaemonSet 的就绪和发布状态,确认后可滚动重启。 admin
kubectl get cronjobs, kubectl create job --from Kubernetes CronJob每个 CronJob 的计划、下次运行和最近运行情况,显示你为其设置的图标和名称,确认后可手动运行。 admin
kubectl get pods, kubectl delete pod Kubernetes PodPod 状态、就绪情况、重启次数和所在节点,不健康的优先;删除卡住的 Pod,让其控制器重新创建。 admin
cilium connectivity perf, netperf 网络测试两个节点之间的 TCP 吞吐量和 p50 至 p99 延迟,Pod 到 Pod 或主机到主机,结果保存并绘制成随时间变化的图表。 admin
kubectl get volumes.longhorn.io, clusters.postgresql.cnpg.io 数据服务Longhorn 卷、CloudNativePG 集群及其备份、Garage、Rook Ceph、MariaDB、Percona 和 Dragonfly,指明每个问题背后的节点,并可在该行直接修复。 admin
talosctl cgroups 节点压力和 cgroupsCPU、内存和磁盘压力,等待最多的工作负载,OOM kill,以及按服务、Pod 和容器划分的用量。 admin
talosctl config new 签发 talosconfig续期本手机的证书,或以 QR 码形式为其他设备创建只读证书。 admin
talosctl rotate-ca 轮换 Talos CA在旧 CA 撤下之前,每个节点都已信任新 CA,本手机的 talosconfig 也会随之更新。 admin
talosctl health 集群健康检查服务端检查,运行过程实时显示。 admin
talosctl debug 调试 shell在节点上运行 nicolaka/netshoot 等镜像并获得终端,附带约 40 条现成命令。 admin
dig, ping, nc -z, traceroute, curl -v 节点网络工具从节点发起 DNS、ping、端口、traceroute 和 HTTP/TLS 检查,结果按字段解析。 admin
talosctl upgrade on every node, talosctl upgrade-k8s 集群升级逐个升级每个节点,必要时先排空,并在试运行后升级 Kubernetes;若某个扩展没有适用于目标版本的构建,会给出警告。 admin
talosctl apply-config --insecure, talosctl reset 添加、替换、重置节点在维护模式下检查节点,向其发送基于现有成员生成的配置,并跟踪直到它加入集群;按引导计划替换控制平面节点;重置或擦除节点,若会破坏 etcd 则拒绝执行。 admin
talosctl etcd defrag, alarm disarm, bootstrap --recover-from etcd 修复一键修复 NOSPACE 告警(快照、碎片整理、解除告警、检查),并可从快照恢复 etcd。 admin
talosctl get disks, volumestatus 存储和硬件每块磁盘的分区、可用空间和加密,传感器,CPU 频率和降频,以及服务器的备件。 reader
kubectl get all -A, kubectl describe, kubectl scale 任意 Kubernetes 对象可浏览所有类型,每个对象都有条件、所有者和事件的摘要,带架构提示的 YAML,扩缩、删除以及你的 RBAC 允许的操作。 RBAC
kubectl get svc,jobs,pvc,hpa, kubectl top Service、Job、存储、自动扩缩容、容量地址与路由、负载均衡器地址池、Job 状态与所有者、存储声明及其用量、HPA、KEDA、VPA 和 Karpenter,每个集群的剩余空间,以及失去一个节点的代价。 RBAC
kubectl get events -w, amtool alert, amtool silence 实时事件与 Alertmanager实时查看整个集群的事件、触发中的告警和静默,在手机上设置静默,告警触发时手机即收到通知。 RBAC
kubectl get cpol,policyreports, constraints 策略Kyverno 和 Gatekeeper 策略、其检查结果及引擎的健康状况;可在 Audit 与 Enforce 之间切换策略。 RBAC
virtctl, kubectl get vm,vmi 虚拟机KubeVirt 虚拟机,支持启动、停止、重启、迁移、暂停,并可在应用的终端中打开串口控制台。 RBAC
helm rollback, velero restore, kubectl apply --dry-run Helm、Velero 与 YAML连同钩子回滚 Helm release,带预览和命名空间映射恢复 Velero 备份,立即运行一个计划,并在 dry-run 差异检查后应用粘贴的 YAML。 RBAC
kubectl argo rollouts, kubectl get managed, tailscale Argo Rollouts、Crossplane、Tailscale、Cluster API推进、中止或重试发布;暂停、恢复或协调 Crossplane 资源;连接器和代理组;集群、机器和 Sidero Metal 服务器。 RBAC
grype, trivy image 镜像扫描扫描 Pod、工作负载或节点 Talos 系统镜像的漏洞,保留报告并标出自上次扫描以来的新增项。 reader
git checkout -b, git commit, gh pr create Git 与拉取请求浏览和搜索应用部署的文件,编辑一个或多个文件,审阅差异及其 kustomize 构建结果,然后在 GitHub、GitLab、Gitea 或 Forgejo 上发起拉取请求。 Git token
a shell script of kubectl and talosctl calls 运行手册由应用自身操作组成的有序列表,导入时先展示执行计划,运行时每个破坏性步骤都需确认。 per step
kubectl get <your CRD> 插件十二个内置 operator,以及用一个 YAML 文件描述的自定义 CRD,带有卡片、操作和检查结果,并汇入集群检查与告警。 RBAC

手机只拥有你授予它的权限

为手机生成一个专用的 talosconfig。应用会读取其中的角色,只显示该证书允许的操作。即使手机丢失,证书也不会授予更多权限,并且会自行过期。

操作员

os:operator

包含只读的全部功能,另加重启、关机、服务重启和抓包。

管理员

os:admin

另加健康检查、机器配置、Talos 和 Kubernetes 升级、添加、替换和重置节点、etcd 修复、签发 talosconfig、导出 kubeconfig、调试 shell、网络测试、节点压力测试,以及通过 Talos 签发的管理员 kubeconfig 访问所有 Kubernetes 页面。在 kubeconfig 集群上,可执行的操作由你的 RBAC 决定,点按之前即会检查。

talosconfig 使用存放在手机安全芯片中的密钥加密:Android 上为 StrongBox 或 TEE,iPhone 上为 Secure Enclave。可选的指纹、Face ID 或 PIN 锁保护应用和每一次重启操作。

成为 Play 商店 Beta 测试者

Ichor 正式发布前在 Google Play 上进行封闭测试。只有测试者名单中的账号才能安装,因此需要两步。

  1. 加入测试者名单

    在 Discord 上加入测试者,或发送手机上登录 Play 商店所用 Google 账号的邮箱地址。

    这会打开你的邮件应用,并准备好发送给 ichorformobile@proton.me 的邮件;任何内容都不经过本网站。

  2. 从 Google Play 安装

    账号加入名单后,在 Android 手机上打开 Play 商店链接并安装 Ichor。

    不在手机上?使用同一个 Google 账号在网页上加入测试。

根据 CRD 申请插件

任何拥有公开 CRD 的 operator 都可以成为 Ichor 插件。提供其 CRD 清单的链接:系统会据此创建一个草稿拉取请求,再由维护者审阅并翻译。请先查看已有的申请:给已有申请点赞与提交新申请同样有效。

这会在 GitHub 上打开一个预填好的 issue,你登录后即可提交;任何内容都不经过本网站。

安装

  1. 为手机创建 talosconfig

    在你的工作站上,在一个控制平面节点上签发只读证书,然后列出你的节点。

    talosctl -n <control-plane-ip> config new talosconfig-phone --roles os:reader --crt-ttl 8760h
    talosctl --talosconfig talosconfig-phone config node <node-1> <node-2> …
  2. 安装应用

    在 Android 上,加入 Play 商店 Beta 测试,然后从 Google Play 安装 Ichor。

  3. 导入配置

    选择文件、粘贴内容,或扫描 QR 码:

    qrencode -t ansiutf8 -r talosconfig-phone

    一个 QR 码放不下?先压缩,应用会自动解压:

    gzip -9 < talosconfig-phone | qrencode -8 -t ansiutf8

Android

Android 8 及更高版本,Beta 期间通过 Google Play 获取。更新通过 Play 商店推送。

加入 Beta 测试

iPhone

iOS 17 及更高版本。每个版本都附带一个未签名的 IPA:使用 Sideloadly 或 AltStore 安装,它们会用你的 Apple ID 进行签名。

最新版本

为什么选择 Ichor

一条血脉维系着青铜巨人的生命。守护好你的那一条。

在希腊神话中,Talos 是守护克里特岛的青铜巨人,每天绕岛巡行三次。一条血脉从他的颈部延伸至脚踝,流淌着 ichor——众神的金色血液。只要 ichor 仍在流动,Talos 就屹立不倒。

你的集群也有脉搏:节点就绪、服务健康、etcd 保有法定人数。Ichor 就是让你随时随地查看它的应用,也会在它出现异常时及时提醒你。

常见问题

没有 Talos 集群也能试用吗?

可以。在导入页面点按“试用演示”:这是一个包含五个示例节点的离线集群,带有实时指标、服务、日志、事件、etcd 和网络。它被明确标记为演示数据,可以与你的真实集群并存,并可在“管理集群”中移除。

不用 Talos,在 EKS、GKE 或 AKS 上也能用吗?

可以。通过 kubeconfig 添加集群,或列出 AWS、Google Cloud、Azure、DigitalOcean 或 Rancher 账号下的集群并添加所选集群。kubeconfig 的 exec 插件原本执行的登录改为在手机上完成:IAM Identity Center、Entra ID、服务账号密钥,或在浏览器中进行 OIDC 登录。Talos 相关页面会隐藏;所有 Kubernetes 页面、后台告警和数据服务均可使用,可执行的操作由你的 RBAC 决定。

我的 operator 不在列表中。应用能显示它吗?

可以。插件用一个 YAML 文件描述一种自定义资源:读取什么、怎样算健康、卡片、操作和检查结果。十二个 operator 以内置插件形式提供,你也可以通过粘贴、文件、https 链接或 QR 码导入自己的插件;在启用之前,“设置 → 插件”会显示每个插件读取和可更改的内容。插件参考介绍了格式,申请表单可将公开的 CRD 链接转换为草稿拉取请求。

Ichor 是 Sidero Labs 的官方应用吗?

不是。Ichor 是一个由社区开发的独立 Talos Linux 客户端。它使用 Sidero 的开源 Go 客户端库,但并非由 Sidero Labs 开发、认可或提供支持。

需要在集群上安装什么吗?

不需要。Ichor 使用 talosconfig 与每个节点已经暴露的 Talos API 通信,与 talosctl 完全相同。没有代理、operator 或中继服务器。Kubernetes 页面使用 Talos 为管理员证书签发的管理员 kubeconfig,且仅保存在内存中。唯一的例外是网络测试:它会在专用命名空间中启动短暂运行的 netperf Pod,完成后删除该命名空间。

我的数据会发送到哪里?

只发送到你的节点。应用会检查 GitHub 上的新版本,除非你主动开启,否则不会有其他数据离开手机。AI 诊断默认关闭,会先向你展示完整报告,只有在你点按“提问”时才发送,并可按需隐藏名称和地址。为内置图标以外的应用下载图标默认也处于关闭状态,且只发送图标的公开名称,绝不发送你的镜像名称。

它会搞坏我的集群吗?

使用只读证书时不会:Talos API 会拒绝一切更改。使用操作员或管理员证书时,高风险操作需要你输入节点的主机名,并且在 etcd 可能失去法定人数时会拒绝升级。

如何迁移到新手机?

在“设置”中备份你的集群和设置,并用密码短语加密。在新手机上,于首个页面点按“恢复备份”,或在 Android 上从文件管理器打开备份文件。备份可在 Android 和 iPhone 之间互通。

支持多个集群吗?

支持。你可以导入任意数量的 talosconfig 或上下文,在顶部栏中切换,并为每个集群设置专属颜色,随时清楚自己身处哪个集群。

你的集群有脉搏。随身带着它。

一分钟装好 Ichor,打开演示,然后用只读证书连接你自己的集群。免费、开源、无需账号。

支持本项目

Ichor 免费,没有广告,也不做跟踪。漂移检测、故障记录器以及本页介绍的所有功能都是公开开发的。如果 Ichor 让你免于跑去打开笔记本电脑,欢迎通过 GitHub Sponsors 或加密货币资助后续开发。