Ищем бета-тестеров в Play Store: присоединяйтесь в Discord или запишитесь по почте.

Ichor для Talos Linux и Kubernetes
1.41 Плагины для любого CRD, pull request с телефона, ёмкость и ранбуки →

Все ваши кластеры — на телефоне.

Ichor создавался для Talos Linux и по-прежнему общается с ним через тот же клиент, что и talosctl. Сегодня он открывает и любой kubeconfig: EKS, GKE, AKS, DigitalOcean, Rancher, Sidero Omni или вход через OIDC — ничего не нужно устанавливать в кластер, и никаких посредников. А если какого-то оператора не хватает, плагин в одном YAML-файле даст ему свой экран.

Нет кластера под рукой? Нажмите Попробовать демо на первом экране: пять демонстрационных узлов, графики и журналы в реальном времени, полностью офлайн. Бесплатно и с открытым исходным кодом, Apache-2.0, по умолчанию только чтение.

Родом из Talos · Как дома везде

Начиналось как приложение для Talos. Теперь открывает любой kubeconfig.

Добавьте kubeconfig — файлом, вставкой, по QR или через меню «Поделиться». В предпросмотре перечислены все контексты со способом входа, и добавляются выбранные вами. Каждый кластер получает главный экран Kubernetes, все экраны Kubernetes, фоновые оповещения и свой цвет — чтобы перезапуск никогда не попал не в тот кластер.

  • Talos Linux

    talosconfig с ролями, зашитыми в сертификат: состояние узлов, журналы, etcd, KubeSpan, обновления — Talos API от начала до конца.

  • Sidero Omni

    Войдите в инстанс так же, как omnictl, и выберите кластеры из списка. Роль Omni вашей учётной записи определяет, что может делать приложение.

  • Управляемый Kubernetes

    EKS, GKE, AKS, DigitalOcean и Rancher: получите список кластеров аккаунта и добавьте их или импортируйте kubeconfig, созданный CLI. Exec-плагины заменяются входом на телефоне: IAM Identity Center по стартовому URL, ваш аккаунт Google или OAuth-клиент вашей организации, Entra ID.

  • Всё остальное

    Клиентский сертификат, токен ServiceAccount или OIDC через kubelogin — в браузере или по коду устройства. k3s, RKE2, kubeadm, OpenShift: если до кластера дотягивается kubectl, дотянется и Ichor.

Вход как на ноутбуке, защита как у ключа

На телефоне не запускаются бинарники aws, gcloud или az: Ichor делает то же, что exec-плагин, а вход остаётся на устройстве и продлевается сам. Токены и ключи защищены в StrongBox или Secure Enclave, за блокировкой приложения.

«Под каким аккаунтом работает этот кластер?» → видно на его главном экране.

  • 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, управляемую группу узлов, класс вычислений или пул агентов, тип машины и spot это или on-demand. Кластер Talos тоже может использовать одну из этих учётных записей для своих экранов Kubernetes вместо административного kubeconfig.

Новое в версиях с 1.22 по 1.41

Ваши операторы, ваш Git, ваш day two. Всё на телефоне.

Двадцать релизов за две недели: плагины, дающие экран любому CRD, pull request прямо из различий на телефоне, экран ёмкости, моделирующий потерю узла, Alertmanager и остальной главный экран Kubernetes, обновления Talos для всего кластера и ранбуки, которые продолжают работать при погасшем экране.

Любой оператор — как плагин

Плагин — это один YAML-файл: какие ресурсы читать, что считать исправным, карточки, действия и находки. Двенадцать встроены: kube-green, External Secrets, ExternalDNS, Sealed Secrets, Rook Ceph, MariaDB, Percona, Dragonfly, Temporal, Numaflow и Dataflow. Импортируйте свой вставкой, файлом, по URL или QR-коду и посмотрите, что он читает и может изменить, прежде чем включить. Его находки попадают в проверку и фоновые оповещения.

«Приложение знает мой оператор?» → теперь да, без нового релиза приложения.

Правки в Git с телефона

Просматривайте файлы, которые разворачивает приложение Argo CD или Flux, в той ревизии, что работает в кластере. Отредактируйте файл или быстро поменяйте тег образа или число реплик, проверьте различия с проверенной сборкой kustomize и откройте pull request на GitHub, GitLab, Gitea или Forgejo. Значение, изменённое в кластере вручную, или сохранённое изменение конфигурации машины Talos предлагается обратно в свой файл. Приложение сообщит, когда pull request слит и когда кластер его применил.

«Можешь поднять этот тег?» → pull request прямо из поезда.

Ёмкость и цена потери узла

Свободные CPU, память и диск по каждому кластеру, риск OOM и вытеснения каждой рабочей нагрузки по классу QoS и приоритету, а также моделирование: уберите один или несколько узлов и посмотрите, куда переедут поды, какие будут вытеснены, какие останутся в Pending и что стоит уменьшить. Используемые CPU и память берутся из metrics-server, как в kubectl top.

«Можно освободить w-3 сегодня вечером?» → четыре пода говорят «нет».

Весь главный экран Kubernetes

Рабочие нагрузки, Сеть, Хранилище, Наблюдение и Обзор ресурсов: Service и балансировка нагрузки, Job, запросы хранилища и их заполненность, автомасштабирование через HPA, KEDA, VPA и Karpenter, политики Kyverno и Gatekeeper, виртуальные машины KubeVirt, резервные копии Velero, релизы Helm, события в реальном времени и Alertmanager с тишиной, заданной с телефона. У каждого объекта есть сводка, YAML с подсказками по схеме, масштабирование, удаление и действия, разрешённые вашим RBAC, а списки обновляются в реальном времени.

«Что сработало в 3 часа ночи?» → оповещение, заглушённое одним нажатием.

Day two на Talos с телефона

Обновляйте узлы один за другим, предварительно освобождая их, если обновление само этого не делает, и обновляйте Kubernetes после пробного запуска. Добавьте узел: изучите его в режиме обслуживания, создайте конфигурацию на основе участника кластера, отправьте её и следите, пока узел не присоединится. Заменяйте узел control plane по пошаговому плану, восстанавливайте etcd из снимка, устраняйте сигнал NOSPACE одним нажатием, сбрасывайте или очищайте узел — с отказом, если это сломает etcd.

«Обновление до 1.13?» → все восемь узлов, не вставая с дивана.

Ранбуки и долгие операции, переживающие экран

Ранбук — упорядоченный список действий самого приложения: при импорте сначала показывается его план, а при запуске каждый разрушающий шаг требует подтверждения. Синхронизации, согласования, перезапуски, применение конфигурации на нескольких узлах и сетевые тесты выполняются в фоне с прогрессом и кнопкой «Остановить»: в отдельном канале уведомлений «Операции» на Android, на экране блокировки и в Dynamic Island на iOS.

«Пятничный ранбук завершился?» → шаг 3 ждёт вас.

  • Вход в облако без CLI

    GKE — через ваш аккаунт Google или OAuth-клиент вашей организации, EKS — через IAM Identity Center по одному лишь стартовому URL. Вставьте или отсканируйте конфигурацию aws, учётные данные gcloud или omniconfig — и данные для входа заполнятся автоматически.

  • Образы, проверенные на уязвимости

    Grype или Trivy сканирует образы пода, рабочей нагрузки или системные образы Talos узла. Отчёты остаются на телефоне, а всё новое с момента последнего сканирования отмечается.

  • Тридцать дней истории

    Время работы каждого узла, изменения с вашего последнего визита, мини-графики заполненности и памяти, прогноз хранилища вида «заполнится через ~9 дней» и анонимизированная сводка инцидента для отправки в Markdown.

  • Поиск, Siri и запястье

    Ищите узлы, поды, рабочие нагрузки и приложения всех кластеров с главного экрана или через Spotlight, Siri и Команды на iOS. Приложение для Apple Watch и плитка Wear OS показывают состояние каждого кластера.

  • Планшеты и iPad

    Узлы и GitOps-приложения открываются рядом со списком, обзор показывает две колонки, а боковая панель iPad перечисляет ваши кластеры и разделы кластера рядом с текущим экраном.

  • Настройки, резервные копии и ключи

    Настройки сгруппированы по страницам. Резервные копии в виде файлов age — с парольной фразой или вашими открытыми ключами age — теперь сохраняют закреплённое, Git-хосты и настройки ИИ и переносятся между Android и iPhone.

  • Больше возможностей в ваших руках

    Откат Helm с хуками и ожиданием, масштабирование всего, что поддерживает /scale, taint и метки с планом пробного запуска, вставленный YAML с различиями пробного запуска, отладочный контейнер для образов без оболочки, предварительная загрузка образа на все узлы, очистка мёртвых подов.

  • Инструменты узла и оборудование

    Проверки DNS, ping, портов, traceroute и HTTP/TLS с узла, датчики, частота и троттлинг CPU, разделы и шифрование каждого диска, а также запчасти для сервера — с его экрана оборудования.

Управлять, а не только наблюдать

Каждое изменение записано, каждое действие сначала проверено.

Ключ безопасности для разблокировки приложения, зашифрованный журнал того, что изменило приложение и кто это сделал, различия, которые применил бы Argo CD, ассистент PromQL на экране метрик, экономия CAST AI на обеих платформах и действия Kubernetes, которые заранее знают, разрешено ли вашему аккаунту их выполнить.

Журнал аудита действий с телефона

Каждое изменение кластера, сделанное из приложения — перезагрузка, перезапуск, синхронизация, откат, удаление, — записывается вместе с результатом, даже если фоновая операция упала, в журнал, зашифрованный на устройстве. Экран «Активность» показывает его на Android и iOS.

«Кто перезапустил grafana в 14:00?» → этот телефон, с этого экрана.

Argo CD: посмотрите различия, затем синхронизируйте

«Показать различия» отображает, что изменит синхронизация, объект за объектом, на основе сравнения, уже сделанного контроллером, — значения Secret скрыты. Ревизия, каждая запись истории и текущая синхронизация ссылаются на свой коммит на GitHub, GitLab, Gitea, Forgejo, Codeberg или Bitbucket. Для отката теперь нужно ввести имя приложения.

«Что затронет эта синхронизация?» → три объекта, ещё до нажатия.

Разблокировка ключом безопасности

YubiKey или любой ключ FIDO2 по NFC или USB может заменить PIN-код и биометрию для блокировки приложения и защитить сохранённые конфигурации так, что без ключа их ничто не прочитает — даже копия хранилища телефона.

«Телефон потерян?» → конфигурации привязаны к ключу, которого в нём нет.

Ассистент PromQL на экране «Метрики»

Скажите, что хотите увидеть: ассистент напишет запрос, выполнит его в вашем Prometheus, чтобы убедиться, что он что-то возвращает, и добавит панель. Необязательно, по умолчанию выключено, с вашим собственным ключом Claude или OpenAI, на Android и iOS.

«Память всех подов на w-2, с накоплением» → панель, проверенная.

CAST AI на обеих платформах

Рекомендации по рабочим нагрузкам с суммой экономии, планы консолидации узлов и упущенная экономия после неудачного плана — в обновлённом представлении рабочих нагрузок, теперь на iOS, как и на Android.

«Где избыточные ресурсы?» → по порядку, с суммой экономии.

Сводка по любому объекту и что вам разрешено

У каждого объекта теперь есть вкладка сводки, как верхняя часть kubectl describe: условия, владельцы, события за последний час. Его действия — в одно нажатие, а те, что вашему аккаунту не разрешены, отключены с указанием причины, полученной от API-сервера до того, как вы попробуете.

«Можно перезапустить это отсюда?» → да или почему нет.

  • Оповещения для каждого кластера

    Фоновые оповещения, сервисы данных и настраиваемый главный экран теперь работают и для кластеров, добавленных из kubeconfig, а не только для Talos.

  • Оповещения, открывающие нужный экран

    Нажмите на уведомление — и попадёте на узел, под или резервную копию, о которой оно; на Android для каждого типа свой канал, чтобы отключить лишнее.

  • Подтверждение вводом

    Чтобы удалить все кластеры или откатить приложение Argo CD, нужно ввести его имя. Действия в одно нажатие находятся там же, где их объект.

  • Одинаковые настройки на обеих платформах

    Android и iOS используют одну структуру настроек, показывают, откуда приходят обновления, и проходят проверку доступности с читаемым плотным текстом.

Сеть, хранилище и нагрузка

Сеть, хранилище или узел? Измерьте.

Что-то тормозит, а все узлы в состоянии Ready. Ichor измеряет канал между двумя узлами, проверяет хранилище и базы данных, на которых работают ваши приложения, и показывает, какой рабочей нагрузке узел не даёт ресурсов, — прямо с телефона.

Сетевой тест

Выберите два узла — из списка или, на Android, прямо на карте кластера, — и Ichor измерит их с помощью netperf, как это делает cilium connectivity perf, на любом CNI: пропускная способность TCP, затем задержка p50, p90 и p99, от пода к поду и, при желании, от хоста к хосту. Результаты сохраняются и отображаются на графике во времени.

«Новый коммутатор хоть немного быстрее?» → измерено.

Сервисы данных

Ichor распознаёт в кластере Longhorn, CloudNativePG, Garage, Rook Ceph, MariaDB, Percona и Dragonfly и проверяет их: деградированные тома и их реплики, экземпляры Postgres и устаревшие или неудачные резервные копии, снимки CSI и CronJob резервного копирования, узлы Garage, master и реплики Dragonfly. Для каждой проблемы указан узел, который за ней стоит. Повышайте реплику, переключайте на резерв, спасайте том или делайте его снимок прямо из строки, а включаемые по желанию оповещения сообщат, когда том сбоит, диск заполняется или резервное копирование останавливается.

«Ночное резервное копирование прошло?» → да или почему нет.

Argo CD

Если в кластере работает Argo CD, Ichor показывает его приложения с состоянием и статусом синхронизации, отслеживает синхронизацию волна за волной и позволяет синхронизировать, обновить, прервать синхронизацию, приостановить автосинхронизацию или откатить. Он работает с ресурсами Application через административный kubeconfig, выданный Talos: никакого токена Argo CD, а приложение под управлением ApplicationSet никогда не меняется у того за спиной.

Приложение, которое Ichor не распознаёт, например личный проект, может задать свой логотип аннотацией ichor.levis.name/icon: имя из Dashboard Icons, https-ссылка на PNG или WebP (загружается, только если вы разрешили загрузку значков) или само изображение, встроенное в base64.

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

«Почему это приложение деградировало?» → под и узел.

Нагрузка на узлы и cgroups

Сколько задачи на узле ждут CPU, памяти или диска — график за последние пять минут, с рабочей нагрузкой, которая ждёт дольше всех, OOM kill и контейнерами, близкими к лимиту памяти. Вкладка Cgroups, как talosctl cgroups, раскладывает всё по сервисам, подам и контейнерам.

«Кто съедает w-2?» → назван поимённо.

Для этого нужен сертификат os:admin. Сетевой тест запускает свои поды в отдельном пространстве имён с профилем безопасности подов restricted и затем удаляет его; каждое измерение загружает канал на 5–20 секунд. Сохранённые результаты хранятся на телефоне в зашифрованном виде и не попадают в резервные копии, а оповещения сервисов данных выключены, пока вы их не включите.

  • Карта кластера

    На Android экран KubeSpan рисует ваши площадки, узлы и туннели — работающие, деградированные или неработающие — с флагом для каждой зоны. Нажмите на два узла, чтобы проверить канал между ними.

  • Открыть приложение в браузере

    Карточка приложения показывает его веб-адреса, найденные в Ingress и HTTPRoute Gateway API, которые на него указывают, — в одно нажатие.

  • Находит ваш кластер в локальной сети

    Отсюда не отвечает ни один endpoint? На Android Ichor ищет в локальной сети узлы, принимающие ваши учётные данные, и позволяет вручную изменить endpoint.

  • Готовые отладочные команды

    Около 40 команд netshoot для DNS, MTU, TLS, KubeSpan и не только — в одно нажатие в отладочной оболочке, так что клавиатура телефона почти не нужна.

Приложения и Kubernetes

Знайте, что работает в кластере, и подталкивайте, когда что-то застряло.

Talos говорит, что с узлами всё в порядке. Но актуален ли Grafana, почему один агент Cilium до сих пор на старой версии и какой под падает в цикле? Ichor теперь показывает программы, работающие в кластере, а с административным сертификатом перезапускает рабочую нагрузку или удаляет зависший под — без ноутбука.

Инвентарь приложений

Все контейнеры на всех узлах, сгруппированные в знакомые вам приложения с логотипами: Home Assistant, Immich, стек *arr, Longhorn, Cilium и ещё около 400. Sidecar- и init-контейнеры относятся к своему приложению, а Ichor отмечает приложение, работающее сразу в двух версиях, или незафиксированный образ :latest.

«Всё уже на новой версии?» → достаточно одного взгляда.

Рабочие нагрузки и rollout restart

Deployment, StatefulSet и DaemonSet с готовностью и состоянием развёртывания — сначала те, что требуют внимания. Перезапустите любой с последовательным обновлением, как kubectl rollout restart, после подтверждения, которое предупредит, если работает всего один под. Затем развёртывание отображается в реальном времени, старые и новые поды, пока все новые поды не станут готовы; закройте его в любой момент — развёртывание продолжится.

«Его просто надо пнуть.» → пнули, не вставая с кровати.

Поды, сначала неисправные

Каждый под со статусом, который показывает kubectl get pods (CrashLoopBackOff, Init:Error, Terminating), числом перезапусков и узлом. Удалите зависший, чтобы контроллер запустил свежую копию; подтверждение подскажет, вернёт ли его что-нибудь.

«Почему он всё ещё перезапускается?» → удалён и пересоздан.

CronJob — запуск по требованию

Каждый CronJob с расписанием, следующим запуском и итогами последних запусков — сначала неудачные и выполняющиеся. Запустите любой прямо сейчас, как kubectl create job --from, после подтверждения: Job остаётся во владении своего 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 только для чтения, а логотипы встроены в приложение, так что ничего не запрашивается из сети. Рабочие нагрузки и поды используют административный kubeconfig, выданный Talos, который хранится только в памяти. Режим скриншотов скрывает все логотипы, а также адреса и имена узлов.

  • «Кластер недоступен» — с объяснением

    VPN выключен или вы не в той сети? Вместо стены красных узлов — одно сообщение с причиной, которое само повторяет попытки и восстанавливается, как только связь вернётся.

  • Данные к каждому инциденту

    Записанные инциденты теперь сохраняют состояния сервисов и изменения сетевых каналов, зафиксированные в тот момент, а технические подробности доступны в одно нажатие.

  • Логотипы для остальных — по желанию

    Для приложений сверх 400 встроенных Ichor может загрузить логотип из открытого набора Dashboard Icons. По умолчанию это выключено, и отправляется только публичное имя значка.

  • Расхождение версий — замечено

    Один узел всё ещё на старом Cilium, забытый тег :latest: приложения, требующие внимания, подсчитываются прямо в обзоре.

Аналитика кластера

Хватит гадать, что изменилось. Ваш телефон это видел.

Три часа ночи, узел то падает, то поднимается, а ноутбук в другой комнате. Аналитика кластера превращает Ichor из страницы статуса в набор для диагностики: найдите узел с расхождениями, запишите инцидент по ходу событий и посмотрите, какой ресурс на самом деле задыхается. И всё это с сертификатом os:reader только для чтения.

Расхождение конфигурации

Единственный рабочий узел с другим MTU, забытый NTP-сервер, расширение, отставшее при обновлении. Ichor сравнивает DNS, NTP, MTU, версии расширений, Secure Boot, UKI и версии Talos в пределах каждой роли или с сохранённым вами эталоном и указывает на выбивающийся узел.

«Почему тормозит только w-3?» → нашли.

Запись инцидента

Нажмите «Запись», пока всё происходит, и Ichor построит хронологию длительностью до десяти минут: события Talos в реальном времени, а также готовность узлов, сервисы, каналы и сетевые счётчики, снимаемые каждые пять секунд. Хронология сохраняется и готова для разбора инцидента.

«Что сломалось первым?» → это видно на хронологии.

Метрики узких мест

Высокая нагрузка — но виноват CPU, диск, сеть или шумный сосед на гипервизоре? Вкладка «В реальном времени» теперь показывает ожидание ввода-вывода и steal time виртуальной машины, пропускную способность и время ввода-вывода по дискам, а также пропускную способность, ошибки и потери по интерфейсам — без ложных пиков после перезагрузки.

«Это диск?» → теперь вы знаете.

Эталоны и записи зашифрованы на телефоне, хранятся отдельно для каждого кластера и никогда не попадают в резервные копии. Конфигурации машин, kubeconfig и сырые журналы не собираются, а удалить всё можно с экрана аналитики.

  • Находит забытые узлы

    В вашем talosconfig указан только один endpoint? Ichor запрашивает у кластера список участников и предлагает добавить недостающие узлы одним нажатием.

  • Wake-on-LAN

    Включайте выключенный узел из его меню действий. Ichor запоминает сетевые карты каждого узла, пока он работает, так что разбудить его можно, даже если вы ничего не настраивали.

  • Попробуйте без кластера

    Встроенное демо работает офлайн: пять демонстрационных узлов, метрики в реальном времени, журналы, etcd и многое другое. Посмотрите всё, прежде чем импортировать хоть одну конфигурацию.

  • Безопасный импорт, быстрое переключение

    Импорт контекста с уже знакомым именем никогда не перезаписывает кластер. Долгое нажатие на значок приложения сразу открывает любой кластер.

Как это выглядит

Настоящие экраны работающего кластера, снятые в режиме скриншотов: адреса и имена узлов заменены условными.

Экран обзора кластера в Ichor для Talos Linux
Обзор кластераВсе узлы с первого взгляда и баннер, когда выходит новая версия Talos.
Экран сервисов в Ichor для Talos Linux
СервисыСостояние каждого сервиса Talos с перезапуском для операторов.
Экран журналов ядра и сервисов в Ichor для Talos Linux
Журналы ядра и сервисовЦвет по уровню, свёрнутые повторы, фильтр по предупреждениям или ошибкам.
Экран событий в Ichor для Talos Linux
СобытияИзменения сервисов и условия узлов в момент возникновения.
Экран графиков в реальном времени в Ichor для Talos Linux
Графики в реальном времениCPU, память, сеть, диск и нагрузка каждые две секунды.
Экран захвата пакетов в Ichor для Talos Linux
Захват пакетовСписок пакетов в реальном времени с сохранением в .pcap для Wireshark.
Экран обновления Talos в Ichor для Talos Linux
Обновление TalosВаш образ установщика с новой версией после предварительных проверок.

Привычные команды talosctl в виде экранов

Всё работает через официальный Go-клиент Talos, поэтому контексты talosconfig, mTLS и проксирование от endpoint к узлу ведут себя точно так же, как в 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 — поиск в локальной сети, когда не отвечает ни один endpoint. 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 Метрики узких местОжидание ввода-вывода, steal time, ввод-вывод по дискам, ошибки и потери по интерфейсам — в реальном времени. reader
talosctl containers -k ПодыКонтейнеры, сгруппированные по подам, с 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Участники, лидер, размер и сигналы, дефрагментация и снимок с сохранением на телефон. reader / backup
talosctl get kubespanpeerstatuses KubeSpanПиры каждого узла: состояние, endpoint, последнее рукопожатие и трафик, а на 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 CronJob KubernetesРасписание, следующий и последние запуски каждого CronJob с заданными вами значком и именем и ручной запуск после подтверждения. admin
kubectl get pods, kubectl delete pod Поды KubernetesСтатус, готовность, перезапуски и узел пода, сначала неисправные; удалите зависший под, чтобы контроллер его пересоздал. admin
cilium connectivity perf, netperf Сетевой тестПропускная способность TCP и задержка от p50 до p99 между двумя узлами, от пода к поду или от хоста к хосту, с сохранением и графиком во времени. admin
kubectl get volumes.longhorn.io, clusters.postgresql.cnpg.io Сервисы данныхТома Longhorn, кластеры CloudNativePG и их резервные копии, Garage, Rook Ceph, MariaDB, Percona и Dragonfly, с узлом, стоящим за каждой проблемой, и исправлением прямо в строке. admin
talosctl cgroups Нагрузка на узлы и cgroupsНагрузка на CPU, память и диск, рабочая нагрузка, которая ждёт дольше всех, OOM kill и использование по сервисам, подам и контейнерам. admin
talosctl config new Выпуск talosconfigПродлите сертификат этого телефона или создайте сертификат только для чтения для другого устройства в виде QR-кода. admin
talosctl rotate-ca Ротация CA TalosКаждый узел начинает доверять новому CA до удаления старого, а talosconfig этого телефона обновляется по ходу. admin
talosctl health Проверка состояния кластераСерверные проверки, отображаемые по мере выполнения. admin
talosctl debug Отладочная оболочкаЗапустите на узле образ вроде 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 Добавление, замена, сброс узлаИзучите узел в режиме обслуживания, отправьте ему конфигурацию на основе участника кластера и следите, пока он не присоединится; заменяйте узел control plane по пошаговому плану; сбрасывайте или очищайте узел — с отказом, если это сломает 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 вместе с его хуками, восстановление резервной копии Velero с предпросмотром и сопоставлением пространств имён, немедленный запуск расписания и применение вставленного YAML после просмотра различий в режиме dry run. RBAC
kubectl argo rollouts, kubectl get managed, tailscale Argo Rollouts, Crossplane, Tailscale, Cluster APIПродвижение, прерывание или повтор развёртывания; приостановка, возобновление или согласование ресурса Crossplane; коннекторы и группы прокси; кластеры, машины и серверы Sidero Metal. RBAC
grype, trivy image Сканирование образовУязвимости образов пода, рабочей нагрузки или системных образов Talos на узле; отчёты сохраняются и показывают, что нового появилось с прошлого сканирования. reader
git checkout -b, git commit, gh pr create Git и pull requestПросмотр и поиск файлов, которые развёртывает приложение, правка одного или нескольких из них, проверка различий и результата сборки kustomize и открытие pull request на GitHub, GitLab, Gitea или Forgejo. Git token
a shell script of kubectl and talosctl calls РанбукиУпорядоченный список собственных действий приложения: при импорте сначала показывается план, при запуске каждый разрушительный шаг требует подтверждения. per step
kubectl get <your CRD> ПлагиныДвенадцать встроенных операторов и ваши собственные CRD, описанные в одном YAML-файле, с карточками, действиями и находками, которые попадают в проверку кластера и оповещения. RBAC

Телефон получает только тот доступ, который вы ему даёте

Создайте отдельный talosconfig для телефона. Приложение читает его роли и показывает только то, что разрешено этому сертификату. Если телефон потерян, сертификат не даёт никаких лишних прав и сам истекает.

Оператор

os:operator

Всё, что доступно в режиме только чтения, плюс перезагрузка, выключение, перезапуск сервисов и захват пакетов.

Администратор

os:admin

Добавляет проверку состояния, конфигурацию машины, обновления Talos и Kubernetes, добавление, замену и сброс узлов, восстановление etcd, выпуск talosconfig, экспорт kubeconfig, отладочные оболочки, сетевые тесты, нагрузочное давление на узлы и все экраны Kubernetes через административный kubeconfig, который выдаёт Talos. В кластере с kubeconfig ваши возможности определяет ваш RBAC, и он проверяется до того, как вы нажмёте кнопку.

talosconfig шифруется ключом, который хранится в защищённом чипе телефона: StrongBox или TEE на Android, Secure Enclave на iPhone. Необязательная блокировка по отпечатку пальца, Face ID или PIN-коду защищает приложение и каждую перезагрузку.

Станьте бета-тестером в Play Store

Ichor проходит закрытое тестирование в Google Play перед публичным выпуском. Установить его могут только аккаунты из списка тестировщиков, поэтому нужно два шага.

  1. Попадите в список тестировщиков

    Присоединитесь к тестировщикам в Discord или отправьте адрес почты аккаунта Google, который ваш телефон использует для Play Store.

    Откроется почтовое приложение с готовым к отправке письмом на ichorformobile@proton.me; через этот сайт ничего не передаётся.

  2. Установите из Google Play

    Когда ваш аккаунт окажется в списке, откройте ссылку на Play Store на телефоне Android и установите Ichor.

    Не с телефона? Присоединитесь к тестированию в браузере с тем же аккаунтом Google.

Запросить плагин по его CRD

Любой оператор с публичным CRD может стать плагином Ichor. Укажите ссылку на манифест его CRD: по нему открывается черновой pull request, а мейнтейнер проверяет и переводит его. Сначала посмотрите открытые запросы: поднятый палец под существующим запросом весит столько же, сколько новый запрос.

Откроется предзаполненный issue на GitHub, где вы входите в аккаунт и отправляете его; через этот сайт ничего не передаётся.

Установить

  1. Создайте talosconfig для телефона

    На рабочем компьютере подпишите сертификат только для чтения на одном узле control plane, затем выведите список узлов.

    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 Store и установите Ichor из Google Play.

  3. Импортируйте конфигурацию

    Выберите файл, вставьте его содержимое или отсканируйте QR-код:

    qrencode -t ansiutf8 -r talosconfig-phone

    Не помещается в один QR-код? Сожмите его — приложение распакует:

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

Android

Android 8 и новее, из Google Play на время бета-тестирования Ichor. Обновления приходят через Play Store.

Присоединиться к бета-тесту

iPhone

iOS 17 и новее. Каждый релиз содержит неподписанный IPA: установите его через Sideloadly или AltStore, которые подпишут его вашим Apple ID.

Последний релиз

Почему Ichor

Одна жила хранила жизнь бронзового великана. Следите за своей.

В греческих мифах Талос был бронзовым великаном, охранявшим Крит: трижды в день он обходил его берега. Единственная жила шла от его шеи до лодыжки, неся ихор — золотую кровь богов. Пока тёк ихор, Талос стоял.

У вашего кластера тоже есть пульс: узлы готовы, сервисы исправны, у etcd есть кворум. Ichor — приложение, которое вы открываете, чтобы проверить его откуда угодно, и которое тронет вас за плечо, когда пульс начнёт сбиваться.

Вопросы

Можно ли попробовать без кластера Talos?

Да. Нажмите «Попробовать демо» на экране импорта: офлайн-кластер из пяти примерных узлов с метриками в реальном времени, сервисами, журналами, событиями, etcd и сетью. Он чётко помечен как демо-данные, может находиться рядом с вашими настоящими кластерами и удаляется в разделе «Управление кластерами».

Работает ли оно без Talos, на EKS, GKE или AKS?

Да. Добавьте кластер из kubeconfig или выведите список кластеров аккаунта AWS, Google Cloud, Azure, DigitalOcean или Rancher и добавьте нужные. Вход, который выполнил бы exec-плагин kubeconfig, происходит прямо на телефоне: IAM Identity Center, Entra ID, ключ сервисного аккаунта или OIDC в браузере. Экраны Talos скрыты; все экраны Kubernetes, фоновые оповещения и сервисы данных на месте, а ваши возможности определяет ваш RBAC.

Моего оператора нет в списке. Может ли приложение его показать?

Да. Плагин описывает пользовательский ресурс в одном YAML-файле: что читать, что считается исправным, карточки, действия и находки. Двенадцать операторов поставляются как встроенные плагины, а свой можно импортировать из вставленного текста, файла, ссылки https или QR-кода; раздел «Настройки → Плагины» показывает, что каждый из них читает и может изменять, до того как вы его включите. Формат описан в справочнике по плагинам, а форма запроса превращает ссылку на публичный CRD в черновой pull request.

Ichor — официальное приложение Sidero Labs?

Нет. Ichor — независимый клиент для Talos Linux, созданный сообществом. Он использует открытую клиентскую библиотеку Sidero на Go, но не разрабатывается, не одобряется и не поддерживается Sidero Labs.

Нужно ли что-то устанавливать в кластер?

Нет. Ichor обращается к Talos API, который уже доступен на каждом узле, с помощью talosconfig — точно так же, как talosctl. Нет ни агента, ни оператора, ни сервера-ретранслятора. Экраны Kubernetes используют административный kubeconfig, который Talos выдаёт для сертификата администратора; он хранится только в памяти. Единственное исключение — сетевой тест: он запускает кратковременные поды netperf в отдельном пространстве имён и удаляет его по завершении.

Куда уходят мои данные?

Только на ваши узлы. Приложение проверяет новые релизы на GitHub, и больше ничего не покидает телефон, пока вы это не включите. ИИ-диагностика по умолчанию выключена, сначала показывает вам точный отчёт и отправляет его, только когда вы нажмёте «Спросить», при желании со скрытыми именами и адресами. Загрузка логотипов для приложений, которых нет во встроенном наборе, тоже выключена по умолчанию и передаёт только публичное имя значка, но никогда не имена ваших образов.

Может ли оно сломать мой кластер?

Не с сертификатом только для чтения: Talos API отклоняет любые изменения. С сертификатом оператора или администратора рискованные действия требуют ввести имя хоста узла, а обновления отклоняются, если etcd может потерять кворум.

Как перейти на новый телефон?

Создайте в настройках резервную копию кластеров и настроек, защищённую парольной фразой. На новом телефоне нажмите «Восстановить из резервной копии» на первом экране или, на Android, откройте файл резервной копии из файлового менеджера. Резервные копии переносятся между Android и iPhone.

Поддерживает ли оно несколько кластеров?

Да. Импортируйте сколько угодно talosconfig или контекстов, переключайтесь между ними в заголовке и задайте каждому кластеру свой цвет, чтобы всегда понимать, где вы находитесь.

У вашего кластера есть пульс. Держите его при себе.

Установите Ichor за минуту, откройте демо, а затем подключите его к своему кластеру с сертификатом только для чтения. Бесплатно, с открытым исходным кодом, без аккаунта.

Поддержать проект

Ichor бесплатен, без рекламы и отслеживания. Обнаружение расхождений, запись инцидентов и все функции на этой странице разрабатываются открыто. Если Ichor избавляет вас от похода к ноутбуку, помогите профинансировать дальнейшую работу через GitHub Sponsors или криптовалютой.