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

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

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

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

    • У вас есть доступ к Kubernetes кластеру с учётной записью, обладающей правами cluster-admin.

    • Установлен CLI kubectl.

    • В вашем кластере включена функция Marketplace или доступен Operator Hub.

    • Скачайте пакет оператора и сохраните его в рабочем каталоге на машине для операций.

      • Загрузка оператора

        INFO

        Alauda Devops Pipelines можно получить из Alauda Cloud.

        Для получения дополнительной информации обратитесь в службу поддержки потребителей.

      • Загрузка оператора

        Независимо от того, импортируете ли вы нового оператора или добавляете новую версию к существующему оператору, вы можете использовать инструмент violet для выполнения задачи, команды при этом одинаковы.

        Выполните следующую команду в рабочем каталоге:

        ./violet push \
            <operator-package> \
            --platform-address <platform-address> \
            --platform-username <platform-username> \
            --platform-password <platform-password> \
            --clusters <clusters>
            --force
        1. Запустите инструмент violet для загрузки пакета оператора на платформу.
        2. <operator-package>: имя пакета оператора (пример: tektoncd-operator.latest.amd64.v4.7.0.tgz).
        3. <platform-address>: URL-адрес платформы (пример: https://platform.example.com).
        4. <platform-username>: имя пользователя платформы, требуются права администратора платформы.
        5. <platform-password>: пароль пользователя платформы.
        6. <clusters>: список кластеров, в которые нужно загрузить оператора, разделённые запятыми (пример: global, business).
        7. --force: принудительное перезаписывание существующих образов и артефактов в реестре.
        WARNING

        Если вы загружаете новую версию для обновления существующего tektoncd-operator, параметр --force обязателен при использовании violet для загрузки Operator, чтобы перезаписать существующие образы и артефакты в реестре.

        Затем перейдите на страницу Platform Management -> Marketplace -> Upload Packages платформы, выполните поиск по ключевому слову оператора и кликните по названию оператора для перехода на страницу с деталями оператора.

        На странице деталей будет отображена новая версия оператора. Если статус Uploaded, это означает, что загрузка прошла успешно.

    Установка 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 по умолчанию, что позволяет оператору контролировать и быть доступным во всех пространствах имён кластера.
      • В разделе 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

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

    Шаги

    • На странице 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 runs и task runs. Без HA режима все операции выполняет один 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: