TektonPipeline
TektonPipeline — это кастомный ресурс, предоставляемый Tekton Operator, который позволяет устанавливать, обновлять и управлять 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 Operator в кластере
- Некоторые продвинутые настройки могут требовать других ресурсов Tekton Operator
- Изменения некоторых полей могут требовать перезапуска компонентов
- Необходимо соблюдать принципы управления ресурсами Kubernetes
Принципы
Структура TektonPipeline
Ресурс TektonPipeline имеет следующую структуру:
Ключевые компоненты и их взаимосвязи
-
targetNamespace: Пространство имён для установки компонентов Tekton Pipeline
- По умолчанию "tekton-pipelines"
- Все компоненты Pipeline будут созданы в этом пространстве имён
- Убедитесь, что у вас есть права на создание ресурсов в этом namespace
-
version: Версия Tekton Pipeline для установки
- Можно указать конкретную версию, например "v0.45.0"
- Если поле опущено, будет установлена последняя версия, поддерживаемая оператором
-
Флаги функций: Множество опций конфигурации для управления поведением Pipeline
disable-affinity-assistant: Управляет поведением affinity assistantdisable-creds-init: Управляет инициализацией учётных данныхenable-api-fields: Управляет включёнными API полямиenable-custom-tasks: Включает использование кастомных задач- И многие другие, как показано в полной структуре выше
-
performance: Настройки для высокой доступности и оптимизации производительности
replicas: Количество реплик контроллераbuckets: Количество бакетов для контроллераthreads-per-controller: Количество рабочих потоков на контроллерstatefulset-ordinals: Включение режима StatefulSet Ordinals
Примеры конфигураций
Базовая установка
Кастомизированная установка с флагами функций
Конфигурация высокой доступности
Важные пояснения параметров, связанных с TektonPipeline
Флаги функций
Флаги функций управляют конкретным поведением контроллера Pipeline.
Применимые сценарии
- Отключение affinity assistant для повышения производительности
- Включение или отключение отдельных функций Pipeline
- Настройка параметров, специфичных для среды
Ограничения и лимитации
- Некоторые флаги функций могут быть устаревшими в будущих версиях
- Изменение некоторых флагов может требовать повторного запуска pipeline
- Вопросы совместимости между разными флагами
Принципы / Пояснение параметров
Распространённые флаги функций включают:
-
disable-affinity-assistant (По умолчанию:
false): Установка в "true" предотвратит создание Tekton Affinity Assistant для каждого TaskRun, использующего общий PVC workspace. -
disable-creds-init (По умолчанию:
false): Установка в "true" предотвратит сканирование Tekton подключенных сервисных аккаунтов и внедрение найденных учётных данных в ваши Steps. -
await-sidecar-readiness (По умолчанию:
true): Управляет ожиданием запуска sidecar контейнеров перед запуском первого шага TaskRun. -
running-in-environment-with-injected-sidecars (По умолчанию:
true): Должен быть установлен в false, если Pipelines запускается в кластере без внедрённых sidecar контейнеров, например, Istio. -
enable-custom-tasks (По умолчанию:
false): Включает использование кастомных задач внутри pipeline.
Свойства метрик
Свойства метрик управляют сбором и отчётностью метрик.
Применимые сценарии
- Настройка мониторинга Tekton pipelines
- Кастомизация поведения сбора метрик
- Интеграция с системами наблюдаемости
Примеры конфигурации
Конфигурация производительности
Раздел performance позволяет настраивать характеристики производительности контроллера.
Применимые сценарии
- Масштабирование для высоконагруженного выполнения pipeline
- Оптимизация использования ресурсов
- Реализация конфигураций высокой доступности