<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Katamarina - PaaS-платформа для построения облачных инфраструктур. – Online-документация Katamarina Cozystack</title><link>https://katamarina.ru/docs/cozystack/online_v_1_5/</link><description>Recent content in Online-документация Katamarina Cozystack on Katamarina - PaaS-платформа для построения облачных инфраструктур.</description><generator>Hugo -- gohugo.io</generator><language>ru</language><atom:link href="https://katamarina.ru/docs/cozystack/online_v_1_5/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Начало работы с Cozystack</title><link>https://katamarina.ru/docs/cozystack/online_v_1_5/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://katamarina.ru/docs/cozystack/online_v_1_5/getting-started/</guid><description>
&lt;h1 id="начало-работы-с-cozystack-развёртывание-частного-облака-с-нуля">Начало работы с Cozystack: развёртывание частного облака с нуля&lt;/h1>
&lt;p>Это руководство поможет вам выполнить первое развёртывание кластера Cozystack. По ходу работы вы познакомитесь с ключевыми концепциями, научитесь пользоваться Cozystack через дашборд и CLI и получите рабочий proof-of-concept.&lt;/p>
&lt;p>Руководство разделено на несколько шагов. Завершайте каждый шаг перед переходом к следующему:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Шаг&lt;/th>
&lt;th>Описание&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/requirements/" target="_blank">Требования: подготовьте инфраструктуру и инструменты&lt;/a>&lt;/td>
&lt;td>Подготовьте инфраструктуру и установите необходимые CLI-инструменты на свою машину перед началом этого руководства.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>1.
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/install-talos/" target="_blank">Установите Talos Linux&lt;/a>&lt;/td>
&lt;td>Установите дистрибутив Talos Linux, подготовленный для Cozystack, с помощью &lt;code>boot-to-talos&lt;/code> — это, вероятно, самый простой способ установки.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2.
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/install-kubernetes/" target="_blank">Установите и инициализируйте кластер Kubernetes&lt;/a>&lt;/td>
&lt;td>Выполните bootstrap кластера Kubernetes с помощью Talm — инструмента управления конфигурацией Talos, созданного для Cozystack.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>3.
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/install-cozystack/" target="_blank">Установите и настройте Cozystack&lt;/a>&lt;/td>
&lt;td>Установите Cozystack, получите административный доступ, выполните базовую настройку и откройте дашборд Cozystack.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4.
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/create-tenant/" target="_blank">Создайте tenant для пользователей и команд&lt;/a>&lt;/td>
&lt;td>Создайте пользовательский tenant — основу RBAC в Cozystack — и получите доступ к нему через дашборд и Cozystack API.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>5.
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/deploy-app/" target="_blank">Разверните управляемые приложения&lt;/a>&lt;/td>
&lt;td>Начните работать с Cozystack: разверните виртуальную машину, управляемое приложение и Kubernetes-кластер tenant&amp;rsquo;а.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="требования-и-набор-инструментов">Требования и набор инструментов&lt;/h2>
&lt;p>Подготовьте инфраструктуру и установите необходимые инструменты.&lt;/p>
&lt;h2 id="1-установка-talos-linux">1. Установка Talos Linux&lt;/h2>
&lt;p>Установка Talos Linux на любую машину с помощью cozystack/boot-to-talos.&lt;/p>
&lt;h2 id="2-установка-и-bootstrap-кластера-kubernetes">2. Установка и bootstrap кластера Kubernetes&lt;/h2>
&lt;p>Используйте Talm CLI, чтобы выполнить bootstrap кластера Kubernetes, готового к установке Cozystack.&lt;/p>
&lt;h2 id="3-установка-и-настройка-cozystack">3. Установка и настройка Cozystack&lt;/h2>
&lt;p>Установите Cozystack, получите административный доступ, выполните базовую настройку и включите UI-дашборд.&lt;/p>
&lt;h2 id="4-создание-пользовательского-tenantа-и-настройка-доступа">4. Создание пользовательского tenant&amp;rsquo;а и настройка доступа&lt;/h2>
&lt;p>Создайте пользовательский tenant — основу RBAC в Cozystack — и получите доступ к нему через дашборд и Cozystack API.&lt;/p>
&lt;h2 id="5-развёртывание-управляемых-приложений-вм-и-kubernetes-кластера-tenantа">5. Развёртывание управляемых приложений, ВМ и Kubernetes-кластера tenant&amp;rsquo;а&lt;/h2>
&lt;p>Начните использовать Cozystack: разверните виртуальную машину, управляемое приложение и Kubernetes-кластер tenant’а.&lt;/p>
&lt;p>
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/" target="_blank">Cozystack Documentation&lt;/a>&lt;/p></description></item><item><title>Docs: Cozystack Руководство по разработке</title><link>https://katamarina.ru/docs/cozystack/online_v_1_5/development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://katamarina.ru/docs/cozystack/online_v_1_5/development/</guid><description>
&lt;h1 id="cozystack-руководство-по-разработке">Cozystack Руководство по разработке&lt;/h1>
&lt;p>
&lt;a href="https://cozystack.ru/docs/v1.5/development/" target="_blank">Cozystack&lt;/a> — платформа на основе операторов. Начальная загрузка и текущее управление осуществляются набором контроллеров, работающих внутри кластера. Высокоуровневый поток выглядит так:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Инсталлятор чарта&lt;/strong> (&lt;code>packages/core/installer&lt;/code>) применяется через &lt;code>helm install&lt;/code>. Он разворачивает Deployment &lt;code>cozystack-operator&lt;/code> в пространстве имён &lt;code>cozy-system&lt;/code>.&lt;/li>
&lt;li>&lt;strong>cozystack-operator&lt;/strong> запускается и выполняет однократную начальную загрузку:
&lt;ul>
&lt;li>Устанавливает CRD Cozystack (&lt;code>Package&lt;/code>, &lt;code>PackageSource&lt;/code>) из встроенных манифестов (&lt;code>internal/crdinstall&lt;/code>).&lt;/li>
&lt;li>Устанавливает компоненты Flux (&lt;code>source-controller&lt;/code>, &lt;code>helm-controller&lt;/code>, &lt;code>source-watcher&lt;/code>) из встроенных манифестов (&lt;code>internal/fluxinstall&lt;/code>).&lt;/li>
&lt;li>Создаёт &lt;strong>начальный OCIRepository&lt;/strong> (&lt;code>cozystack-platform&lt;/code>) из значений &lt;code>platformSourceUrl&lt;/code> и &lt;code>platformSourceRef&lt;/code>, заданных в инсталляторе.&lt;/li>
&lt;li>Создаёт &lt;code>PackageSource&lt;/code>, ссылающийся на начальный OCIRepository.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Цикл согласования&lt;/strong> берёт управление. Оператор следит за CRD &lt;code>PackageSource&lt;/code> и &lt;code>Package&lt;/code> и преобразует их в объекты Flux &lt;code>HelmRelease&lt;/code>. Flux затем устанавливает реальные Helm-чарты и управляет ими.&lt;/li>
&lt;li>&lt;strong>Platform chart&lt;/strong> (&lt;code>packages/core/platform&lt;/code>) разворачивается как обычный Package. Он читает конфигурацию кластера из ресурса &lt;code>cozystack.cozystack-platform&lt;/code>
&lt;a href="https://cozystack.ru/docs/v1.5/operations/configuration/platform-package/" target="_blank">Package&lt;/a> и создаёт шаблоны манифестов пакетов, определяющих, какие системные компоненты должны быть установлены. Platform chart также создаёт &lt;strong>вторичный OCIRepository&lt;/strong> (&lt;code>cozystack-packages&lt;/code>), копируя спецификацию из начального OCIRepository. Все PackageSource ссылаются на этот вторичный репозиторий. При обновлениях platform chart выполняет миграции как &lt;code>pre-upgrade&lt;/code> хуки перед созданием или обновлением HelmRelease компонентов.&lt;/li>
&lt;li>&lt;strong>FluxCD&lt;/strong> — движок выполнения, он согласует объекты &lt;code>HelmRelease&lt;/code>, созданные оператором, загружает артефакты чартов из ресурсов &lt;code>ExternalArtifact&lt;/code> и применяет их к кластеру.&lt;/li>
&lt;/ol>
&lt;p>Полную цепочку согласования (PackageSource → ArtifactGenerator → ExternalArtifact → Package → HelmRelease → Pods), разрешение зависимостей, потоки обновления и отката, а также CLI cozypkg см. в разделе
&lt;a href="https://cozystack.ru/docs/v1.5/guides/concepts/" target="_blank">Ключевые концепции&lt;/a>.&lt;/p>
&lt;h2 id="ocirepository-и-поток-миграции">OCIRepository и поток миграции&lt;/h2>
&lt;p>Cozystack использует два ресурса OCIRepository для управления обновлениями платформы:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">OCIRepository&lt;/th>
&lt;th style="text-align:left">Создаётся&lt;/th>
&lt;th style="text-align:left">Ссылается на&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">cozystack-platform&lt;/td>
&lt;td style="text-align:left">cozystack-operator&lt;/td>
&lt;td style="text-align:left">Настраивается через значения инсталлятора (&lt;code>platformSourceUrl&lt;/code>, &lt;code>platformSourceRef&lt;/code>)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">cozystack-packages&lt;/td>
&lt;td style="text-align:left">Platform chart (&lt;code>repository.yaml&lt;/code>)&lt;/td>
&lt;td style="text-align:left">Копирует спецификацию из &lt;code>cozystack-platform&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Все PackageSource в &lt;code>packages/core/platform/sources/&lt;/code> ссылаются на &lt;code>cozystack-packages&lt;/code>.&lt;/p>
&lt;h3 id="выполнение-миграций">Выполнение миграций&lt;/h3>
&lt;p>Миграции выполняются как Helm &lt;code>pre-upgrade&lt;/code> хуки в platform chart:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#60a0b0;font-style:italic"># packages/core/platform/templates/migration-hook.yaml&lt;/span>&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bbb">&lt;/span>&lt;span style="color:#062873;font-weight:bold">metadata&lt;/span>:&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bbb"> &lt;/span>&lt;span style="color:#062873;font-weight:bold">name&lt;/span>:&lt;span style="color:#bbb"> &lt;/span>cozystack-migration-hook&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bbb">&lt;/span>&lt;span style="color:#062873;font-weight:bold">annotations&lt;/span>:&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bbb"> &lt;/span>&lt;span style="color:#062873;font-weight:bold">helm.sh/hook&lt;/span>:&lt;span style="color:#bbb"> &lt;/span>pre-upgrade,pre-install&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bbb"> &lt;/span>&lt;span style="color:#062873;font-weight:bold">helm.sh/hook-weight&lt;/span>:&lt;span style="color:#bbb"> &lt;/span>&lt;span style="color:#4070a0">&amp;#34;1&amp;#34;&lt;/span>&lt;span style="color:#bbb">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Контейнер миграции считывает текущую версию из ConfigMap &lt;code>cozystack-version&lt;/code> и выполняет скрипты миграции последовательно от &lt;code>CURRENT_VERSION&lt;/code> до &lt;code>TARGET_VERSION - 1&lt;/code>. Каждая миграция обновляет ConfigMap при успехе, обеспечивая идемпотентность миграций и возможность возобновления после сбоев.&lt;/p>
&lt;h3 id="зачем-два-репозитория">Зачем два репозитория?&lt;/h3>
&lt;p>Разделение гарантирует, что:&lt;/p>
&lt;ol>
&lt;li>Начальный OCIRepository управляется оператором (через значения инсталлятора).&lt;/li>
&lt;li>Все PackageSource имеют согласованную ссылку (&lt;code>cozystack-packages&lt;/code>), а не указывают напрямую на источник, управляемый оператором.&lt;/li>
&lt;li>Platform chart может выполнять миграции перед созданием вторичного OCIRepository, гарантируя выполнение миграций до обновления компонентов.&lt;/li>
&lt;/ol>
&lt;h2 id="ключевые-бинарные-файлы">Ключевые бинарные файлы&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Бинарный файл&lt;/th>
&lt;th style="text-align:left">Источник&lt;/th>
&lt;th style="text-align:left">Роль&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>cozystack-operator&lt;/strong>&lt;/td>
&lt;td style="text-align:left">&lt;code>cmd/cozystack-operator&lt;/code>&lt;/td>
&lt;td style="text-align:left">Начальная загрузка (CRD, Flux, источник платформы), согласование &lt;code>PackageSource&lt;/code> и &lt;code>Package&lt;/code>, репликация секрета &lt;code>cozystack-values&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>cozystack-controller&lt;/strong>&lt;/td>
&lt;td style="text-align:left">&lt;code>cmd/cozystack-controller&lt;/code>&lt;/td>
&lt;td style="text-align:left">Согласование рабочих нагрузок и &lt;code>ApplicationDefinition&lt;/code>, управление дашбордами.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>cozystack-api&lt;/strong>&lt;/td>
&lt;td style="text-align:left">&lt;code>cmd/cozystack-api&lt;/code>&lt;/td>
&lt;td style="text-align:left">Уровень агрегации API Kubernetes для групп API &lt;code>apps.cozystack.io&lt;/code> и &lt;code>core.cozystack.io&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>cozypkg&lt;/strong>&lt;/td>
&lt;td style="text-align:left">&lt;code>cmd/cozypkg&lt;/code>&lt;/td>
&lt;td style="text-align:left">CLI для управления пакетами.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="структура-репозитория">Структура репозитория&lt;/h2>
&lt;p>Основная структура репозитория
&lt;a href="https://github.com/cozystack/cozystack" target="_blank">cozystack&lt;/a>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>├── api # Go-типы для CRD Cozystack (Package, PackageSource и т.д.)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── cmd # Точки входа для всех бинарных файлов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── cozystack-operator # Основной оператор платформы
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── cozystack-controller # Контроллеры рабочих нагрузок и приложений
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── cozystack-api # Агрегированный API-сервер
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ └── cozypkg # CLI для управления пакетами
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── internal # Реализации контроллеров и согласователей
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── operator # Согласователи PackageSource и Package
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── controller # Контроллеры рабочих нагрузок и ApplicationDefinition
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── fluxinstall # Встроенные манифесты Flux и инсталлятор
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── crdinstall # Встроенные манифесты CRD и инсталлятор
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ └── cozyvaluesreplicator # Логика репликации секретов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── packages # Helm-чарты, организованные по слоям
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── core # Начальная загрузка и конфигурация платформы
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── system # Инфраструктурные операторы и upstream-чарты
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├── apps # Пользовательские чарты приложений
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ └── extra # Чарты приложений для конкретных тенантов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── pkg # Общие Go-библиотеки
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── dashboards # Дашборды Grafana
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── hack # Вспомогательные скрипты для локальной разработки
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── docs # Журналы изменений и примечания к релизам
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Разработку можно вести локально, изменяя и обновляя файлы в этом репозитории.&lt;/p>
&lt;h2 id="пакеты">Пакеты&lt;/h2>
&lt;h3 id="core">core&lt;/h3>
&lt;p>Core-пакеты отвечают за начальную загрузку и конфигурацию на уровне платформы.&lt;/p>
&lt;h4 id="installer">installer&lt;/h4>
&lt;p>Helm-чарт, разворачивающий Deployment &lt;code>cozystack-operator&lt;/code>. Он создаёт пространство имён &lt;code>cozy-system&lt;/code>, ServiceAccount с правами cluster-admin и Deployment оператора с флагами, инициирующими установку CRD и Flux при запуске. Образ оператора и URL источника платформы задаются во время сборки.&lt;/p>
&lt;h4 id="platform">platform&lt;/h4>
&lt;p>Helm-чарт, разворачиваемый как обычный &lt;code>Package&lt;/code> (не применяется напрямую). Он читает конфигурацию кластера из ресурса &lt;code>cozystack.cozystack-platform&lt;/code>
&lt;a href="https://cozystack.ru/docs/v1.5/operations/configuration/platform-package/" target="_blank">Package&lt;/a> и создаёт шаблоны манифестов согласно указанному
&lt;a href="https://cozystack.ru/docs/v1.5/operations/configuration/variants/" target="_blank">варианту&lt;/a> и настройкам компонентов, определяя, какие системные компоненты должны быть установлены.&lt;/p>
&lt;h4 id="flux-aio">flux-aio&lt;/h4>
&lt;p>Компоненты Flux, упакованные для развёртывания оператором.&lt;/p>
&lt;h4 id="talos">talos&lt;/h4>
&lt;p>Конфигурационные ресурсы Talos OS.&lt;/p>
&lt;blockquote>
&lt;p>Core-пакеты не используют Helm для применения манифестов; они предназначены для использования только как &lt;code>helm template . | kubectl apply -f -&lt;/code>.&lt;/p>
&lt;/blockquote>
&lt;h3 id="system">system&lt;/h3>
&lt;p>System-пакеты настраивают систему для управления и развёртывания пользовательских приложений. Необходимы для работы всей платформы.
System-пакеты включают два вида компонентов:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Операторы&lt;/strong> (например, &lt;code>postgres-operator&lt;/code>, &lt;code>kafka-operator&lt;/code>, &lt;code>redis-operator&lt;/code>): Контроллеры, умеющие управлять полным жизненным циклом конкретного приложения, включая операции второго дня.&lt;/li>
&lt;li>&lt;strong>Upstream Helm-чарты&lt;/strong> для приложений без выделенного оператора (например, &lt;code>nats&lt;/code>, &lt;code>ingress-nginx&lt;/code>): Эти чарты размещаются в system, чтобы пакеты apps и extra могли разворачивать их через Flux &lt;code>HelmRelease&lt;/code> CR, фактически используя FluxCD в качестве оператора.&lt;/li>
&lt;/ul>
&lt;p>System-пакеты используют Helm для установки и управляются FluxCD.&lt;/p>
&lt;h3 id="apps">apps&lt;/h3>
&lt;p>Эти пользовательские приложения отображаются в дашборде и включают манифесты для применения к кластеру.
Чарты apps служат высокоуровневым API для пользователей. Они определяют только те параметры, которые должны быть открыты и проверены через &lt;code>values.schema.json&lt;/code>, сохраняя интерфейс минимальным и безопасным. Чарты apps не должны содержать бизнес-логику развёртывания самого приложения — вместо этого они делегируют её оператору или FluxCD.&lt;/p>
&lt;p>В зависимости от наличия выделенного оператора приложения apps следуют одному из двух паттернов:&lt;/p>
&lt;h4 id="паттерн-на-основе-оператора">Паттерн на основе оператора&lt;/h4>
&lt;p>Когда для приложения есть выделенный оператор (например, PostgreSQL, MongoDB, Redis, Kafka), чарт app создаёт &lt;strong>экземпляры CRD&lt;/strong>, которыми управляет оператор:
Оператор обрабатывает все детали развёртывания и операции второго дня (масштабирование, резервное копирование, восстановление).&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>packages/system/postgres-operator/ &lt;span style="color:#60a0b0;font-style:italic"># Helm-чарт оператора&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>packages/apps/postgres/ &lt;span style="color:#60a0b0;font-style:italic"># App-чарт создаёт postgresql.cnpg.io/v1.Cluster CR&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="паттерн-на-основе-helmrelease">Паттерн на основе HelmRelease&lt;/h4>
&lt;p>Когда для приложения нет выделенного оператора и стандартным методом развёртывания является Helm-чарт, основной upstream-чарт размещается в &lt;code>system/&lt;/code>, а app-чарт создаёт &lt;strong>Flux HelmRelease CR&lt;/strong>, указывающий на него:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>packages/system/nats/ &lt;span style="color:#60a0b0;font-style:italic"># Upstream Helm-чарт&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>packages/apps/nats/ &lt;span style="color:#60a0b0;font-style:italic"># App-чарт создаёт HelmRelease CR&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>В этом случае FluxCD выступает оператором, управляя жизненным циклом Helm-релиза. App-чарт контролирует &lt;code>values.yaml&lt;/code> для релиза.
Другие примеры этого паттерна: &lt;code>extra/ingress&lt;/code>, &lt;code>extra/seaweedfs&lt;/code>, &lt;code>extra/monitoring&lt;/code>.&lt;/p>
&lt;h3 id="extra">extra&lt;/h3>
&lt;p>Аналогично &lt;code>apps&lt;/code>, но не отображается в каталоге приложений. Могут устанавливаться только в составе тенанта. Разрешения на установку этих приложений настраиваются для каждого тенанта индивидуально.
Подробнее о
&lt;a href="https://cozystack.ru/docs/guides/concepts/#tenant-system" target="_blank">Системе тенантов&lt;/a> читайте на странице основных концепций.
В одном пространстве имён тенанта можно использовать только один тип приложения.
Extra-пакеты следуют тем же двум архитектурным паттернам, что и apps (на основе оператора или HelmRelease).
Пакеты apps и extra используют Helm для установки приложения и управляются FluxCD через дашборд.&lt;/p>
&lt;h2 id="структура-пакета">Структура пакета&lt;/h2>
&lt;p>Каждый пакет — это типичный Helm-чарт, содержащий все необходимые образы и манифесты для платформы. Мы рекомендуем упаковывать upstream-чарты в директорию &lt;code>./charts&lt;/code> и переопределяя values.yaml в корне приложения. Такая структура упрощает обновление upstream-чартов и внесение изменений в манифесты.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>├── Chart.yaml # Определение Helm-чарта и описание параметров
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── Makefile # Общие цели для упрощения локальной разработки
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── charts # Директория для upstream-чартов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── images # Директория для Docker-образов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── patches # Опциональная директория для патчей upstream-чартов
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── templates # Дополнительные манифесты для upstream Helm-чарта
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── templates/dashboard-resourcemap.yaml # Роль для отображения ресурсов k8s в дашборде
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── values.yaml # Значения переопределения для upstream Helm-чарта
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── values.schema.json # JSON-схема для валидации входных значений и отрисовки элементов UI в дашборде
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Для генерации файлов &lt;code>README.md&lt;/code> и &lt;code>values.schema.json&lt;/code> можно использовать
&lt;a href="https://github.com/bitnami/readme-generator-for-helm" target="_blank">readme-generator&lt;/a> от Bitnami.
Просто установите его как бинарный файл &lt;code>readme-generator&lt;/code> в своей системе и запустите генерацию командой &lt;code>make generate&lt;/code>.&lt;/p>
&lt;h2 id="принципы-разработки-helm-чартов">Принципы разработки Helm-чартов&lt;/h2>
&lt;p>Структура пакетов и рабочий процесс разработки в Cozystack основаны на следующих принципах:&lt;/p>
&lt;h3 id="простое-обновление-upstream-чартов">Простое обновление upstream-чартов&lt;/h3>
&lt;p>Оригинальный upstream-чарт должен быть легко обновляемым, переопределяемым и изменяемым. Мы используем подход, при котором оригинальные чарты загружаются в &lt;code>./charts&lt;/code> и хранятся в оригинальном виде. Кастомизации вносятся через переопределения &lt;code>values.yaml&lt;/code> и дополнительные &lt;code>templates/&lt;/code>, а структурные изменения в upstream-чарте применяются через &lt;code>patches/&lt;/code>. Такое разделение гарантирует простое обновление до новой upstream-версии: выполните &lt;code>make update&lt;/code>, просмотрите diff и при необходимости повторно примените патчи.&lt;/p>
&lt;h3 id="локальные-артефакты">Локальные артефакты&lt;/h3>
&lt;p>Патчи и образы контейнеров хранятся локально и являются частью пакета. Директория &lt;code>patches/&lt;/code> содержит любые изменения upstream-чарта, а директория &lt;code>images/&lt;/code> — Dockerfile для сборки всех необходимых образов. Это обеспечивает полную воспроизводимость — всё необходимое для сборки и запуска пакета находится внутри его директории.&lt;/p>
&lt;blockquote>
&lt;p>В настоящее время не все пакеты собирают свои образы локально — некоторые всё ещё ссылаются на образы из внешних реестров.&lt;/p>
&lt;/blockquote>
&lt;h3 id="рабочий-процесс-локальной-разработки-и-тестирования">Рабочий процесс локальной разработки и тестирования&lt;/h3>
&lt;p>Каждый пакет должен быть легко обновляемым и тестируемым локально на реальном кластере без использования CI-пайплайнов. Стандартные цели &lt;code>make&lt;/code> (&lt;code>make image&lt;/code>, &lt;code>make diff&lt;/code>, &lt;code>make apply&lt;/code>) обеспечивают быструю обратную связь: сборка образов, сравнение отрендеренных манифестов с живым кластером и их применение.&lt;/p>
&lt;h3 id="без-внешних-зависимостей">Без внешних зависимостей&lt;/h3>
&lt;p>Пакеты не должны зависеть от внешних ресурсов во время выполнения. Все чарты, образы и патчи включены в пакет и поставляются вместе с платформой. Это гарантирует стабильность и независимость от внешних сбоев.&lt;/p>
&lt;blockquote>
&lt;p>Как отмечалось выше, полная самодостаточность образов находится в процессе реализации. Некоторые пакеты всё ещё зависят от внешних образов.&lt;/p>
&lt;/blockquote>
&lt;h2 id="разработка">Разработка&lt;/h2>
&lt;h3 id="настройка-buildx">Настройка Buildx&lt;/h3>
&lt;p>Для сборки образов необходимо установить и настроить плагин
&lt;a href="https://github.com/docker/buildx" target="_blank">docker buildx&lt;/a>.
Вместо встроенного сборщика можно
&lt;a href="https://docs.docker.com/build/builders/" target="_blank">настроить дополнительные&lt;/a>, которые могут быть удалёнными или поддерживать несколько архитектур. В этом примере показано, как настроить драйвер &lt;code>kubernetes&lt;/code>, позволяющим собирать образы непосредственно в кластере Kubernetes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker buildx create &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --bootstrap &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --name&lt;span style="color:#666">=&lt;/span>buildkit &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --driver&lt;span style="color:#666">=&lt;/span>kubernetes &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --driver-opt&lt;span style="color:#666">=&lt;/span>&lt;span style="color:#bb60d5">namespace&lt;/span>&lt;span style="color:#666">=&lt;/span>tenant-kvaps,replicas&lt;span style="color:#666">=&lt;/span>&lt;span style="color:#40a070">2&lt;/span> &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --platform&lt;span style="color:#666">=&lt;/span>linux/amd64 &lt;span style="color:#4070a0;font-weight:bold">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4070a0;font-weight:bold">&lt;/span> --platform&lt;span style="color:#666">=&lt;/span>linux/arm64
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Либо опустите параметры –driver*, чтобы настроить среду сборки в локальном Docker-окружении.&lt;/p>
&lt;h3 id="управление-пакетами">Управление пакетами&lt;/h3>
&lt;p>Каждое приложение включает Makefile для упрощения процесса разработки. Для каждого пакета мы следуем стандартному набору команд:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make update &lt;span style="color:#60a0b0;font-style:italic"># Обновить Helm-чарт и версии из upstream-источника&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make image &lt;span style="color:#60a0b0;font-style:italic"># Собрать Docker-образы, используемые в пакете&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make show &lt;span style="color:#60a0b0;font-style:italic"># Показать вывод отрендеренных шаблонов&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make diff &lt;span style="color:#60a0b0;font-style:italic"># Сравнить Helm-релиз с объектами в кластере Kubernetes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make apply &lt;span style="color:#60a0b0;font-style:italic"># Применить Helm-релиз к кластеру Kubernetes&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Например, для обновления cilium:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#007020">cd&lt;/span> packages/system/cilium &lt;span style="color:#60a0b0;font-style:italic"># Перейти в директорию приложения&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make update &lt;span style="color:#60a0b0;font-style:italic"># Загрузить новую версию из upstream&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make image &lt;span style="color:#60a0b0;font-style:italic"># Собрать образ cilium&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git diff . &lt;span style="color:#60a0b0;font-style:italic"># Показать diff с изменёнными манифестами&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make diff &lt;span style="color:#60a0b0;font-style:italic"># Показать diff с применёнными манифестами кластера&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make apply &lt;span style="color:#60a0b0;font-style:italic"># Применить изменённые манифесты к кластеру&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get pod -n cozy-cilium &lt;span style="color:#60a0b0;font-style:italic"># Проверить корректность работы&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git commit -m &lt;span style="color:#4070a0">&amp;#34;Update cilium to v1.15.5&amp;#34;&lt;/span> &lt;span style="color:#60a0b0;font-style:italic"># Зафиксировать изменения в ветке&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Для сборки контейнера cozystack с обновлённым чартом:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#007020">cd&lt;/span> packages/core/installer &lt;span style="color:#60a0b0;font-style:italic"># Перейти в директорию пакета cozystack&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make image-packages &lt;span style="color:#60a0b0;font-style:italic"># Собрать образ пакетов&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make apply &lt;span style="color:#60a0b0;font-style:italic"># Применить к кластеру&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get pod -n cozy-system &lt;span style="color:#60a0b0;font-style:italic"># Проверить корректность работы&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get hr -A &lt;span style="color:#60a0b0;font-style:italic"># Проверить объекты HelmRelease&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>При пересборке образов указывайте переменную окружения &lt;code>REGISTRY&lt;/code>, указывающую на ваш Docker-реестр.
Не стесняйтесь заглядывать в каждый Makefile, чтобы лучше понять логику.&lt;/p>
&lt;h2 id="тестирование">Тестирование&lt;/h2>
&lt;p>Платформа включает скрипт
&lt;a href="https://github.com/cozystack/cozystack/blob/main/hack/e2e.sh" target="_blank">e2e.sh&lt;/a>, выполняющий следующие задачи:&lt;/p>
&lt;ul>
&lt;li>Запускает три виртуальные машины QEMU&lt;/li>
&lt;li>Настраивает Talos Linux&lt;/li>
&lt;li>Устанавливает Cozystack&lt;/li>
&lt;li>Ожидает установки всех HelmRelease&lt;/li>
&lt;li>Выполняет дополнительные проверки работоспособности компонентов&lt;/li>
&lt;/ul>
&lt;p>Скрипт &lt;code>e2e.sh&lt;/code> можно запускать как локально, так и непосредственно в контейнере Kubernetes.
Для запуска тестов в кластере Kubernetes перейдите в директорию &lt;code>packages/core/testing&lt;/code> и выполните следующие команды:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make apply &lt;span style="color:#60a0b0;font-style:italic"># Создать тестовую песочницу в кластере Kubernetes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make &lt;span style="color:#007020">test&lt;/span> &lt;span style="color:#60a0b0;font-style:italic"># Запустить end-to-end тесты в существующей песочнице&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make delete &lt;span style="color:#60a0b0;font-style:italic"># Удалить тестовую песочницу из кластера Kubernetes&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>⚠️ Для запуска e2e-тестов в кластере Kubernetes узлы должны иметь достаточно свободных ресурсов для запуска вложенных виртуальных машин (QEMU) с поддержкой KVM.
Рекомендуется использовать bare-metal узлы родительского кластера Cozystack.&lt;/p>
&lt;h2 id="динамическая-среда-разработки">Динамическая среда разработки&lt;/h2>
&lt;p>Если вы предпочитаете разрабатывать Cozystack в виртуальных машинах вместо изменения существующего кластера, пакет &lt;code>packages/core/testing&lt;/code> включает дополнительные опции:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make &lt;span style="color:#007020">exec&lt;/span> &lt;span style="color:#60a0b0;font-style:italic"># Открывает интерактивную оболочку в контейнере песочницы.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make login &lt;span style="color:#60a0b0;font-style:italic"># Загружает kubeconfig во временную директорию и запускает оболочку с окружением песочницы; требует fzf.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make proxy &lt;span style="color:#60a0b0;font-style:italic"># Включает SOCKS5 прокси-сервер; требуются mirrord и gost.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Прокси Socks5 можно настроить в браузере для доступа к сервисам кластера, работающего в песочнице. Для удобства переключения можно использовать расширение
&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/proxy-toggle/" target="_blank">Proxy Toggle&lt;/a>.&lt;/p></description></item><item><title>Docs: Руководство по развертыванию Cozystack</title><link>https://katamarina.ru/docs/cozystack/online_v_1_5/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://katamarina.ru/docs/cozystack/online_v_1_5/install/</guid><description>
&lt;h1 id="руководство-по-развертыванию-cozystack-от-инфраструктуры-до-готового-кластера">Руководство по развертыванию Cozystack: от инфраструктуры до готового кластера&lt;/h1>
&lt;h2 id="руководство-по-cozystack">Руководство по Cozystack&lt;/h2>
&lt;p>Если вы устанавливаете Cozystack впервые, рекомендуем
&lt;a href="https://cozystack.ru/docs/v1.5/getting-started/" target="_blank">пройти руководство по Cozystack&lt;/a>. В нем показан самый короткий путь к созданию proof-of-concept кластера Cozystack.&lt;/p>
&lt;h2 id="общий-путь-установки">Общий путь установки&lt;/h2>
&lt;p>Установка Cozystack на bare-metal серверы или виртуальные машины состоит из трех последовательных шагов. Для каждого шага есть несколько вариантов. Мы указываем рекомендуемый вариант, но также приводим альтернативы, чтобы процесс установки оставался гибким:&lt;/p>
&lt;ol>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/talos/" target="_blank">Установите Talos Linux&lt;/a> на bare-metal серверы или виртуальные машины с Linux либо без операционной системы.&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/kubernetes/" target="_blank">Установите и инициализируйте кластер Kubernetes&lt;/a> поверх Talos Linux.&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/cozystack/" target="_blank">Установите и настройте Cozystack&lt;/a> в кластере Kubernetes.&lt;/li>
&lt;/ol>
&lt;h2 id="изолированная-среда">Изолированная среда&lt;/h2>
&lt;p>Cozystack можно установить в изолированной среде без прямого доступа к Интернету. Главное отличие такой установки — использование proxy registry для образов:&lt;/p>
&lt;ol>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/talos/" target="_blank">Установите Talos Linux&lt;/a> на bare-metal серверы или виртуальные машины с Linux либо без операционной системы.&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/kubernetes/air-gapped/" target="_blank">Настройте узлы Talos для изолированной среды и инициализируйте кластер Kubernetes&lt;/a>.&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/cozystack/" target="_blank">Установите и настройте Cozystack&lt;/a> в кластере Kubernetes.&lt;/li>
&lt;/ol>
&lt;h2 id="автоматизированная-установка-с-ansible">Автоматизированная установка с Ansible&lt;/h2>
&lt;p>Для типовых развертываний Linux (Ubuntu, Debian, RHEL, Rocky, openSUSE)
&lt;a href="https://cozystack.ru/docs/v1.5/install/ansible/" target="_blank">коллекция Ansible&lt;/a> автоматизирует весь процесс: подготовку ОС, инициализацию кластера k3s и установку Cozystack.&lt;/p>
&lt;h2 id="установка-у-конкретных-провайдеров">Установка у конкретных провайдеров&lt;/h2>
&lt;p>Для облачных провайдеров есть отдельные руководства, которые охватывают все шаги: от подготовки инфраструктуры до установки и настройки Cozystack. Если это ваш случай, рекомендуем использовать руководства ниже:&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/providers/hetzner/" target="_blank">Hetzner&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/providers/oracle-cloud/" target="_blank">Oracle Cloud Infrastructure (OCI)&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/install/providers/servers-com/" target="_blank">Servers.com&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="обновление-и-настройка-после-развертывания">Обновление и настройка после развертывания&lt;/h2>
&lt;p>После развертывания кластера перейдите в раздел
&lt;a href="https://cozystack.ru/docs/v1.5/operations/" target="_blank">Администрирование кластера&lt;/a>, чтобы выполнить следующие действия:&lt;/p>
&lt;ul>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/operations/oidc/" target="_blank">Настройка OIDC&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/operations/stretched/" target="_blank">Развертывание Cozystack в конфигурации с несколькими дата-центрами&lt;/a>&lt;/li>
&lt;li>
&lt;a href="https://cozystack.ru/docs/v1.5/operations/cluster/upgrade/" target="_blank">Обновление Cozystack&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="требования-к-оборудованию">Требования к оборудованию&lt;/h2>
&lt;p>Определите требования к оборудованию для вашего сценария использования Cozystack.&lt;/p>
&lt;h2 id="рекомендации-по-планированию-системных-ресурсов">Рекомендации по планированию системных ресурсов&lt;/h2>
&lt;p>Сколько системных ресурсов выделять на узел в зависимости от масштаба кластера.&lt;/p>
&lt;h2 id="установка-talos-linux-на-bare-metal-или-виртуальные-машины">Установка Talos Linux на bare metal или виртуальные машины&lt;/h2>
&lt;p>Шаг 1: установка Talos Linux на виртуальные машины или bare metal для последующей инициализации кластера Cozystack.&lt;/p>
&lt;h2 id="установка-и-настройка-кластера-kubernetes">Установка и настройка кластера Kubernetes&lt;/h2>
&lt;p>Шаг 2: установка и настройка кластера Kubernetes, готового к установке Cozystack.&lt;/p>
&lt;h2 id="установка-и-настройка-cozystack">Установка и настройка Cozystack&lt;/h2>
&lt;p>Шаг 3: установка Cozystack в Kubernetes-кластер — как готовой к использованию платформы или в режиме BYOP (Build Your Own Platform).&lt;/p>
&lt;h2 id="развертывание-кластера-cozystack-в-облаках-и-у-хостинг-провайдеров">Развертывание кластера Cozystack в облаках и у хостинг-провайдеров&lt;/h2>
&lt;p>Руководства по развертыванию кластеров Cozystack у конкретных облачных и хостинг-провайдеров.&lt;/p>
&lt;h2 id="автоматизированная-установка-с-ansible-1">Автоматизированная установка с Ansible&lt;/h2>
&lt;p>Развертывание Cozystack на generic Kubernetes с помощью Ansible collection cozystack.installer&lt;/p>
&lt;h2 id="руководства-для-особых-случаев-развертывания-cozystack">Руководства для особых случаев развертывания Cozystack&lt;/h2>
&lt;p>
&lt;a href="https://cozystack.ru/docs/v1.5/install/how-to/" target="_blank">Руководства для особых случаев развертывания Cozystack&lt;/a>&lt;/p></description></item><item><title>Docs: Cozystack Роадмап</title><link>https://katamarina.ru/docs/cozystack/online_v_1_5/roadmap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://katamarina.ru/docs/cozystack/online_v_1_5/roadmap/</guid><description>
&lt;h1 id="cozystack-роадмап">Cozystack Роадмап&lt;/h1>
&lt;p>Вы можете ознакомиться с нашей дорожной картой по адресу:
&lt;a href="https://github.com/orgs/cozystack/projects/1" target="_blank">Ссылка&lt;/a>.&lt;/p>
&lt;p>Если у вас есть вопросы и комментарии по поводу плана развития или вам необходима определенная функциональность, пожалуйста, сообщите нам об этом по адресу
&lt;a href="mailto:info@katamarina.ru">info@katamarina.ru&lt;/a>&lt;/p>
&lt;p>Присоединяйтесь к нашим
&lt;a href="https://calendar.google.com/calendar?cid=ZTQzZDIxZTVjOWI0NWE5NWYyOGM1ZDY0OWMyY2IxZTFmNDMzZTJlNjUzYjU2ZGJiZGE3NGNhMzA2ZjBkMGY2OEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t" target="_blank">community-встречам&lt;/a>.&lt;/p></description></item></channel></rss>