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

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

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

    Предварительные требования:

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

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

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

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

    Если Tekton Pipelines уже установлен в вашем кластере, существующая установка будет бесшовно обновлена Operator.

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

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

    Шаги

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

    • Используйте поле Filter by keyword для поиска Operator Alauda DevOps Pipelines в каталоге. Щелкните заголовок Alauda DevOps Pipelines Operator.

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

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

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

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

    • Убедитесь, что все компоненты Operator Alauda DevOps Pipelines успешно установлены. Войдите в кластер в терминале и выполните следующую команду:

      $ kubectl get tektonconfig config

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

      NAME     VERSION   READY   REASON
      config   v0.74.1     True

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

      Кроме того, проверьте версии компонентов, выполнив следующую команду:

      $ 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

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

    Краткая справка по каналам

    • stable (по умолчанию, начиная с v4.6.3): устанавливает последнюю LTS-версию. Рекомендуется для production-сред.
    • latest: устанавливает все доступные релизы v4.6.z. Если ранее вы полагались на значение latest по умолчанию, вы можете сохранить это значение в вашей Subscription.
    • pipelines-4.6: ограничивает обновления только патч-релизами v4.6.z.

    Шаги

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

    Пример YAML Subscription

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: tektoncd-operator
      namespace: tekton-operator
    spec:
      channel: stable
      name: tektoncd-operator
      source: platform
      sourceNamespace: cpaas-system
    1. Начиная с v4.6.3, stable является значением по умолчанию и устанавливает последнюю LTS-версию. Используйте latest, чтобы сохранить поведение, действовавшее до v4.6.3 (все релизы v4.6.z), или pipelines-4.6, чтобы получать только патч-обновления v4.6.z.
    2. Имя Operator, на который выполняется подписка.
    3. Имя объекта CatalogSource, предоставляющего Operator.
    4. Namespace объекта CatalogSource. Он может отличаться в зависимости от конфигурации вашего кластера.
    • Создайте объект Subscription, выполнив следующую команду:

      $ kubectl apply -f sub.yaml

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

    Удаление Alauda DevOps Pipelines

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

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

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

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

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

    Шаги

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

    Удаление Operator Alauda DevOps Pipelines

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

    Шаги

    • На странице Marketplace или OperatorHub перейдите в Installed Operators.
    • Найдите Operator 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, чтобы подтвердить удаление CRD.

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

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

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

    Предварительные требования

    Должен быть установлен Operator Alauda DevOps Pipelines.

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

    Вы можете изменить поля в параметре .spec.pipeline.performance в Custom Resource (CR) 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

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

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

    INFO

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

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

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

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

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

    Настройка control plane Tekton Pipelines

    Вы можете настроить control plane Tekton Pipelines, изменив поля конфигурации в Custom Resource (CR) TektonConfig. Operator Alauda DevOps Pipelines автоматически включает значения по умолчанию для полей конфигурации, чтобы вы могли использовать control plane 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

    Параметры feature flags

    Следующие feature flags можно настроить в 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.

    Изменение service account по умолчанию

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

    Пример

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

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

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

    Укажите метки и аннотации, добавив их в спецификацию .spec.targetNamespaceMetadata Custom Resource (CR) 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"}

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

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