TektonPipeline
TektonPipeline — это пользовательский ресурс, предоставляемый оператором Tekton, который позволяет устанавливать, обновлять и управлять Tekton Pipelines в вашем кластере Kubernetes. Он предоставляет декларативный способ конфигурации и поддержания компонентов Tekton Pipeline без необходимости вручную применять манифесты.
Содержание
Пояснение терминологииЗачем нам нужен TektonPipelineПроблема управления компонентами TektonКак TektonPipeline решает эти проблемыПреимуществаПрименимые сценарииОграничения и ограниченияПринципыСтруктура TektonPipelineКлючевые компоненты и их отношенияПримеры конфигурацииБазовая установкаНастраиваемая установка с флагами функцийКонфигурация высокой доступностиВажные объяснения параметров, связанных с TektonPipelineФлаги функцийПрименимые сценарииОграничения и ограниченияПринципы/объяснение параметраСвойства метрикПрименимые сценарииПримеры конфигурацииКонфигурация производительностиПрименимые сценарииПримеры конфигурацииСправочные материалыПояснение терминологии
Зачем нам нужен TektonPipeline
Проблема управления компонентами Tekton
Ручная установка и поддержка компонентов Tekton Pipeline включает:
- Применение множества манифестов для различных компонентов
- Отслеживание версий компонентов и их совместимости
- Управление обновлениями и откатами безопасно
- Конфигурирование компонентов последовательно в разных средах
- Обработка пользовательских настроек для конкретных развертываний
Этот подход приводит к:
- Сложным процедурам управления
- Возможным ошибкам конфигурации
- Трудностям в отслеживании развернутого состояния
- Проблемам в реализации последовательных обновлений
Как TektonPipeline решает эти проблемы
Ресурс TektonPipeline предоставляет декларативный, родной для Kubernetes способ:
- Упростить установку: Установить все компоненты Pipeline с помощью одного ресурса
- Централизовать конфигурацию: Управлять всеми настройками компонентов в одном месте
- Автоматизировать обновления: Легко обновлять до новых версий, изменяя ресурс
- Обеспечить согласованность: Применять ту же конфигурацию в разных средах
- Поддерживать настройку: Настраивать компоненты Pipeline в зависимости от конкретных требований
Этот подход позволяет лучше управлять компонентами Tekton Pipeline, сохраняя возможность настройки по мере необходимости.
Преимущества
- Упрощенное управление: Один ресурс для управления всеми компонентами Pipeline
- Декларативная конфигурация: Определяйте желаемое состояние и позволяйте оператору обрабатывать детали реализации
- Контроль версий: Легкое отслеживание изменений конфигурации через практики GitOps
- Автоматическая согласованность: Оператор обеспечивает соответствие фактического состояния желаемому состоянию
- Проверка конфигурации: Встроенная проверка параметров конфигурации
- Упрощенные обновления: Упрощенный процесс обновления до новых версий
- Родной для Kubernetes: Бесшовная интеграция с экосистемой Kubernetes
Применимые сценарии
TektonPipeline необходим в следующих сценариях:
-
Начальная развертка: Настройка Tekton Pipeline в новом кластере Kubernetes.
-
Управление конфигурацией: Управление изменениями конфигурации Pipeline с течением времени.
-
Обновление версий: Обновление Tekton Pipeline до новых версий.
-
Многоуровневые развертывания: Обеспечение последовательного развертывания Pipeline в нескольких кластерах.
-
Пользовательские развертывания: Реализация конкретных конфигураций Pipeline для разных сред.
-
GitOps рабочие процессы: Включение конфигурации Pipeline в процессы развертывания GitOps.
Ограничения и ограничения
- Требуется, чтобы оператор Tekton был установлен в кластере
- Некоторые расширенные конфигурации могут требовать другие ресурсы оператора Tekton
- Изменения в определенных полях могут потребовать перезапуска компонентов
- Необходимо следовать принципам управления ресурсами Kubernetes
Принципы
Структура TektonPipeline
Ресурс TektonPipeline имеет следующую структуру:
Ключевые компоненты и их отношения
-
targetNamespace: Где будут установлены компоненты Tekton Pipeline
- По умолчанию это "tekton-pipelines"
- Все компоненты Pipeline будут созданы в этом пространстве имен
- Убедитесь, что у вас есть разрешения на создание ресурсов в этом пространстве имен
-
version: Версия Tekton Pipeline для установки
- Можно указать конкретную версию, такую как "v0.45.0"
- Пропуск этого поля установит последнюю версию, поддерживаемую оператором
-
Флаги функций: Многие параметры конфигурации для управления поведением Pipeline
disable-affinity-assistant: Управляет поведением помощника по аффинностиdisable-creds-init: Управляет инициализацией учетных данныхenable-api-fields: Управляет тем, какие API-поля включеныenable-custom-tasks: Включает использование пользовательских задач- И многие другие, как показано в полной структуре выше
-
performance: Настройки для высокой доступности и оптимизации производительности
replicas: Число реплик контроллераbuckets: Число бакетов для контроллераthreads-per-controller: Число рабочих потоков на контроллерstatefulset-ordinals: Включает режим StatefulSet Ordinals
Примеры конфигурации
Базовая установка
Настраиваемая установка с флагами функций
Конфигурация высокой доступности
Важные объяснения параметров, связанных с TektonPipeline
Флаги функций
Флаги функций управляют специфическим поведением контроллера Pipeline.
Применимые сценарии
- Отключение помощника по аффинности по причинам производительности
- Включение или отключение конкретных функций Pipeline
- Конфигурирование настроек, специфичных для среды
Ограничения и ограничения
- Некоторые флаги функций могут быть устаревшими в будущих версиях
- Изменение определенных флагов может потребовать повторных запусков пайплайнов
- Вопросы совместимости между различными флагами
Принципы/объяснение параметра
Общие флаги функций включают:
-
disable-affinity-assistant (По умолчанию:
false): Установка этого флага в "true" предотвратит создание Tekton помощника по аффинности для каждого TaskRun, использующего совместное PVC рабочее пространство. -
disable-creds-init (По умолчанию:
false): Установка этого флага в "true" предотвратит сканирование прикрепленных сервисных аккаунтов Tekton и внедрение любых найденных учетных данных в ваши Steps. -
await-sidecar-readiness (По умолчанию:
true): Управляет тем, нужно ли ждать, когда боковые контейнеры будут запущены, перед началом первого шага TaskRun. -
running-in-environment-with-injected-sidecars (По умолчанию:
true): Должен быть установлен в false, когда Pipelines работает в кластере, который не использует внедренные боковые контейнеры, такие как Istio. -
enable-custom-tasks (По умолчанию:
false): Включает использование пользовательских задач из пайплайнов.
Свойства метрик
Свойства метрик управляют тем, как собираются и сообщаются метрики.
Применимые сценарии
- Настройка мониторинга для Tekton pipelines
- Настройка поведения сбора метрик
- Интеграция с системами наблюдаемости
Примеры конфигурации
Конфигурация производительности
Раздел производительности позволяет настраивать характеристики производительности контроллера.
Применимые сценарии
- Масштабирование для выполнения пайплайнов с высоким объемом
- Оптимизация использования ресурсов
- Реализация конфигураций высокой доступности