• Русский
  • Установка

    Установка Alauda DevOps Pipelines

    Это руководство предназначено для администраторов кластера и описывает процесс установки оператора Alauda DevOps Pipelines в Kubernetes-кластер.

    Требования:

    • У вас есть доступ к Kubernetes-кластеру с учётной записью, обладающей правами cluster-admin.
    • Установлен CLI kubectl.
    • В вашем кластере включена функция Marketplace или доступен Operator Hub.

    Установка Alauda DevOps Pipelines через веб-консоль

    Вы можете установить оператор Alauda DevOps Pipelines, используя список операторов в Marketplace или OperatorHub. При установке оператора автоматически устанавливаются необходимые Custom Resources (CR).

    Оператор предоставляет следующие Custom Resource Definitions (CRD) для управления компонентами Tekton: tektonconfigs.operator.tekton.dev, tektonpipelines.operator.tekton.dev, tektontriggers.operator.tekton.dev, tektonhubs.operator.tekton.dev и другие.

    Если Tekton Pipelines уже установлен в вашем кластере, оператор выполнит бесшовное обновление существующей установки.

    Оператор Alauda DevOps Pipelines позволяет выбрать компоненты для установки, указав предустановленную конфигурацию в Custom Resource TektonConfig. CR TektonConfig устанавливается автоматически вместе с оператором. Поддерживаемые предустановки:

    • Lite: устанавливает только Tekton Pipelines.
    • Basic: устанавливает Tekton Pipelines и Tekton Triggers.
    • All: предустановка по умолчанию при установке CR TektonConfig. Устанавливает все компоненты Tekton, включая Tekton Pipelines и Tekton Triggers.

    Шаги

    • В веб-консоли перейдите в раздел Marketplace или OperatorHub.

    • В поле Filter by keyword найдите оператор Alauda DevOps Pipelines в каталоге. Нажмите на заголовок Alauda DevOps Pipelines Operator.

    • Ознакомьтесь с обзором оператора на странице Alauda DevOps Pipelines Operator. Нажмите Install.

    • На странице Install Operator:

      • В разделе Installation Mode выберите All namespaces on the cluster (default). Этот режим устанавливает оператора в namespace по умолчанию tekton-operator, что позволяет оператору отслеживать и быть доступным во всех namespace кластера.
      • В разделе Approval Strategy выберите Automatic. Это гарантирует, что будущие обновления оператора будут автоматически обрабатываться Operator Lifecycle Manager (OLM). Если выбрать стратегию Manual, OLM будет создавать запросы на обновление, которые администратор кластера должен будет вручную одобрять для обновления оператора.
      • При наличии нескольких каналов выберите нужный Update Channel.
    • Нажмите Install. Оператор появится на странице Installed Operators.

    • Убедитесь, что Status установлен в Succeeded, что подтверждает успешную установку оператора Alauda DevOps Pipelines.

    • Проверьте, что все компоненты оператора успешно установлены. Войдите в кластер через терминал и выполните команду:

      $ kubectl get tektonconfig config

      Пример вывода

      NAME     VERSION   READY   REASON
      config   v0.74.1     True

      Если состояние READY равно True, это означает, что оператор и его компоненты успешно установлены.

      Также проверьте версии компонентов командой:

      $ kubectl get tektonpipeline,tektontrigger,tektonhub,tektonchain

      Пример вывода

      NAME                                          VERSION           READY   REASON
      tektonpipeline.operator.tekton.dev/pipeline   v0.65.5-c96b8b8   True
      
      NAME                                        VERSION           READY   REASON
      tektontrigger.operator.tekton.dev/trigger   v0.30.1-f53d05d   True
      
      NAME                                VERSION   READY   REASON   APIURL   UIURL
      tektonhub.operator.tekton.dev/hub   1.19.2    True
      
      NAME                                    VERSION           READY   REASON
      tektonchain.operator.tekton.dev/chain   v0.23.0-927681d   True

    Установка Alauda DevOps Pipelines через CLI

    Вы можете установить оператор Alauda DevOps Pipelines из OperatorHub с помощью командной строки (CLI).

    Шаги

    • Создайте YAML-файл объекта Subscription для подписки namespace на оператор Alauda DevOps Pipelines, например, sub.yaml:

    Пример YAML для Subscription

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: tektoncd-operator
      namespace: tekton-operator
    spec:
      channel: latest
      name: tektoncd-operator
      source: platform
      sourceNamespace: cpaas-system
    1. Имя канала, на который вы хотите подписаться. Канал latest позволяет установить последнюю стабильную версию оператора Alauda DevOps Pipelines.
    2. Имя оператора для подписки.
    3. Имя объекта CatalogSource, предоставляющего оператора.
    4. Namespace объекта CatalogSource. Может отличаться в зависимости от конфигурации вашего кластера.
    • Создайте объект Subscription командой:

      $ kubectl apply -f sub.yaml

      Подписка установит оператор Alauda DevOps Pipelines в namespace tekton-operator. Оператор автоматически установит компоненты Tekton в namespace по умолчанию tekton-pipelines.

    Удаление Alauda DevOps Pipelines

    Администраторы кластера могут удалить оператор Alauda DevOps Pipelines, выполнив следующие действия:

    • Удалить все CR опциональных компонентов, если они существуют, затем удалить CR TektonConfig.
    • Удалить оператор Alauda DevOps Pipelines.
    • При необходимости удалить Custom Resource Definitions (CRD) для группы operator.tekton.dev.

    Простое удаление оператора не удалит компоненты Alauda DevOps Pipelines, созданные по умолчанию при установке оператора.

    Удаление экземпляров ресурсов Alauda DevOps Pipelines

    Сначала удалите CR TektonConfig и любые другие CR компонентов Tekton, если они существуют.

    Шаги

    • В веб-консоли перейдите в раздел AdministrationCustomResourceDefinitions или аналогичный.
    • Найдите CRD TektonConfig.
    • Нажмите на CRD TektonConfig для отображения подробной страницы.
    • Перейдите на вкладку Instances.
    • Если отображается экземпляр, откройте меню Options у этого экземпляра.
    • Выберите Delete.
    • Подтвердите удаление CR нажатием Delete.
      • Удаление ресурса TektonConfig вызовет каскадное удаление автоматически созданных компонентов TektonPipelines, TektonTriggers, TektonHubs, TektonChains и др.
    • Повторите эти шаги для других CR компонентов Tekton, если они существуют.
      • Если вы вручную создавали TektonResults или OpenShiftPipelinesAsCodes, их возможно потребуется удалить вручную.

    Удаление оператора Alauda DevOps Pipelines

    Вы можете удалить оператор Alauda DevOps Pipelines через веб-консоль.

    Шаги

    • На странице Marketplace или OperatorHub перейдите в раздел Installed Operators.
    • Найдите оператор Alauda DevOps Pipelines в списке.
    • Откройте меню Options и выберите Uninstall Operator.
    • В окне Uninstall Operator? выберите Delete all operand instances for this operator, затем нажмите Uninstall.

    Удаление определений ресурсов Alauda DevOps Pipelines (опционально)

    Если вы хотите полностью удалить все следы Tekton Operator, можно удалить Custom Resource Definitions (CRD) для группы operator.tekton.dev.

    Шаги

    • В веб-консоли перейдите в раздел AdministrationCustomResourceDefinitions или аналогичный.
    • Найдите CRD с ключевым словом operator.tekton.dev.
    • Для каждого CRD, который хотите удалить:
      • Откройте меню Options.
      • Выберите Delete CustomResourceDefinition.
      • Подтвердите удаление нажатием Delete.

    Настройка конфигурации в TektonConfig

    В Alauda DevOps Pipelines вы можете настроить следующие параметры с помощью Custom Resource (CR) TektonConfig:

    • Оптимизация производительности Tekton Pipelines, включая режим высокой доступности для контроллера Tekton Pipelines
    • Настройка управляющей плоскости Tekton Pipelines
    • Изменение учётной записи по умолчанию
    • Настройка резолверов pipeline
    • Отключение отдельных функций или компонентов

    Требования

    Оператор Alauda DevOps Pipelines должен быть установлен.

    Настройка производительности с помощью TektonConfig CR

    Вы можете изменить поля в параметре .spec.pipeline.performance Custom Resource TektonConfig, чтобы изменить поддержку высокой доступности (HA) и конфигурацию производительности контроллера Tekton Pipelines.

    Пример полей производительности в TektonConfig

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        performance:
          disable-ha: false
          buckets: 7
          replicas: 5
          threads-per-controller: 2
          kube-api-qps: 5.0
          kube-api-burst: 10
          statefulset-ordinals: false

    Все поля необязательны. Если они заданы, оператор Alauda DevOps Pipelines включает большинство из них в параметры деплоя tekton-pipelines-controller в контейнере tekton-pipelines-controller. Оператор также обновляет поле bucket в ConfigMap config-leader-election в namespace tekton-pipelines.

    Если значения не указаны, оператор не обновляет эти поля и применяет значения по умолчанию контроллера Tekton Pipelines.

    INFO

    Если вы измените или удалите какие-либо поля производительности, оператор обновит деплоймент tekton-pipelines-controller и ConfigMap config-leader-election (если изменилось поле bucket) и пересоздаст pod tekton-pipelines-controller.

    Режим высокой доступности (HA) применим к контроллеру Tekton Pipelines; он создаёт и запускает pod-ы на основе определений pipeline run и task run. Без HA режимa эти операции выполняет один pod, что может привести к высокой нагрузке и задержкам.

    В режиме HA Tekton Pipelines использует несколько pod-ов (реплик) для выполнения этих операций. Изначально операции контроллера распределяются по bucket-ам. Каждая реплика выбирает операции из одного или нескольких bucket-ов. Если две реплики могут одновременно выбрать одну операцию, контроллер внутри решает, кто её выполнит.

    Режим HA не влияет на задачи, которые запускаются после создания pod-а.

    ИмяОписание
    disable-haВключает или отключает режим высокой доступности (HA). По умолчанию HA включён.
    bucketsКоличество bucket-ов для обработки операций контроллера в режиме HA. Максимальное значение — 10.
    replicasКоличество pod-ов, создаваемых для обработки операций контроллера в режиме HA. Значение должно быть равно или меньше количества bucket-ов.
    threads-per-controllerКоличество потоков (воркеров), используемых при обработке очереди задач контроллера Tekton Pipelines.
    kube-api-qpsМаксимальное количество запросов в секунду (QPS) от REST-клиента к мастеру кластера.
    kube-api-burstМаксимальный всплеск запросов для ограничения скорости.
    statefulset-ordinalsВключает режим StatefulSet Ordinals для контроллера Tekton Pipelines.

    Настройка управляющей плоскости Tekton Pipelines

    Вы можете настроить управляющую плоскость Tekton Pipelines, редактируя поля конфигурации в Custom Resource TektonConfig. Оператор Alauda DevOps Pipelines автоматически включает значения по умолчанию для этих полей, чтобы вы могли использовать управляющую плоскость Tekton Pipelines.

    Процесс

    1. В веб-консоли перейдите в раздел CustomResourceDefinitions.
    2. Найдите Custom Resource Definition (CRD) tektonconfigs.operator.tekton.dev.
    3. Нажмите на TektonConfig для просмотра страницы с деталями CRD.
    4. Перейдите на вкладку Instances.
    5. Нажмите на экземпляр config для просмотра деталей CR TektonConfig.
    6. Перейдите на вкладку YAML.
    7. Отредактируйте YAML-файл TektonConfig в соответствии с вашими требованиями.

    Пример CR TektonConfig с значениями по умолчанию

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        running-in-environment-with-injected-sidecars: true
        metrics.taskrun.duration-type: histogram
        metrics.pipelinerun.duration-type: histogram
        await-sidecar-readiness: true
        default-service-account: pipeline
        require-git-ssh-secret-known-hosts: false
        enable-tekton-oci-bundles: false
        metrics.taskrun.level: task
        metrics.pipelinerun.level: pipeline
        enable-api-fields: stable
        enable-provenance-in-status: false
        enable-custom-tasks: true
        disable-creds-init: false
        disable-affinity-assistant: true

    Опции флагов функций

    Следующие флаги функций можно настроить в CR TektonConfig для управления поведением Tekton Pipelines:

    • disable-affinity-assistant (по умолчанию: false)
    • disable-creds-init (по умолчанию: false)
    • enable-api-fields (по умолчанию: stable)
    • enable-custom-tasks (по умолчанию: true)
    • await-sidecar-readiness (по умолчанию: true)
    • running-in-environment-with-injected-sidecars (по умолчанию: true)
    • require-git-ssh-secret-known-hosts (по умолчанию: false)
    • enable-provenance-in-status (по умолчанию: true)

    Подробные описания каждой опции смотрите в документации Tekton Operator.

    Изменение учётной записи по умолчанию

    Вы можете изменить учётную запись по умолчанию для Tekton Pipelines, отредактировав поле default-service-account в спецификации .spec.pipeline. Имя учётной записи по умолчанию — pipeline.

    Пример

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        default-service-account: custom-pipeline-account

    Установка меток и аннотаций для namespace установки

    Вы можете задать метки и аннотации для namespace tekton-pipelines, в котором оператор устанавливает компоненты Tekton Pipelines.

    Укажите метки и аннотации, добавив их в спецификацию .spec.targetNamespaceMetadata Custom Resource TektonConfig.

    Пример установки меток и аннотаций для namespace tekton-pipelines

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      targetNamespaceMetadata:
        labels: {"example-label":"example-value"}
        annotations: {"example-annotation":"example-value"}

    Следующие шаги

    После успешной установки оператора Alauda DevOps Pipelines: