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

    Содержание

    Введение

    Система Connectors имеет модульную архитектуру с следующими компонентами:

    • Connectors Operator: центральный управляющий компонент, который отвечает за развертывание и жизненный цикл остальных компонентов коннекторов
    • ConnectorsCore: обязательный основной компонент, обеспечивающий основу для всех типов коннекторов
    • ConnectorsGit: дополнительный компонент, добавляющий поддержку Git-сервисов (GitHub, GitLab и др.)
    • ConnectorsOCI: дополнительный компонент, добавляющий поддержку реестров контейнеров

    В этом документе приведены инструкции по установке и настройке системы Connectors.

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

    Перед установкой убедитесь, что у вас есть:

    • Kubernetes кластер
    • CLI kubectl, настроенный для взаимодействия с вашим кластером
    • Права администратора в кластере
    • Connectors Operator в состоянии Ready в ACP Operator Hub

    Установка Connectors Operator

    Сначала установите Connectors Operator, который управляет жизненным циклом всех остальных компонентов.

    1. Создайте namespace для оператора:

      kubectl create namespace connectors-operator
    2. Примените YAML подписки оператора:

      cat <<EOF | kubectl apply -f -
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        annotations:
          cpaas.io/target-namespaces: ""
        labels:
          catalog: platform
        name: connectors-operator
        namespace: connectors-operator
      spec:
        channel: alpha
        installPlanApproval: Manual
        name: connectors-operator
        source: platform
        sourceNamespace: cpaas-system
      EOF
      
      kubectl wait --for=condition=InstallPlanPending subscription.operators.coreos.com/connectors-operator -n connectors-operator
      
      installplanname=$(kubectl get subscription.operators.coreos.com -n connectors-operator connectors-operator -ojsonpath='{.status.installPlanRef.name}')
      kubectl patch installplan -n connectors-operator ${installplanname} --type='merge' -p='{"spec":{"approved":true}}'
    3. Проверьте, что оператор запущен:

      kubectl get pods -n connectors-operator

      Вы должны увидеть запущенный pod connectors-operator:

      NAME                                                  READY   STATUS    RESTARTS   AGE
      connectors-operator-controller-manager-xxxxxx-xxxxx   2/2     Running   0          1m
    4. Проверьте, что Custom Resource Definitions (CRD) созданы:

      kubectl get crds | grep connectors

      Вы должны увидеть CRD, включая:

      connectorscore.operator.connectors.alauda.io
      connectorsgit.operator.connectors.alauda.io
      connectorsoci.operator.connectors.alauda.io

    Установка ConnectorsCore

    После запуска оператора установите обязательный компонент ConnectorsCore:

    1. Создайте namespace для компонентов коннекторов (если он ещё не создан):

      kubectl create namespace connectors-system
    2. Создайте Custom Resource ConnectorsCore:

      cat <<EOF | kubectl apply -f -
      apiVersion: operator.connectors.alauda.io/v1alpha1
      kind: ConnectorsCore
      metadata:
        name: connectors-core
        namespace: connectors-system
      spec: {}
      EOF
    3. Отслеживайте прогресс развертывания:

      kubectl get connectorscore -n connectors-system
    4. Дождитесь, пока статус покажет, что ConnectorsCore готов:

      kubectl wait --for=condition=Ready connectorscore/connectors-core -n connectors-system --timeout=300s
    5. Проверьте, что основные pod запущены:

      kubectl get pods -n connectors-system

      Вы должны увидеть основные компоненты, включая:

      NAME                                              READY   STATUS    RESTARTS   AGE
      connectors-api-xxxxxx                             1/1     Running   0          2m
      connectors-controller-manager-xxxxxx              1/1     Running   0          2m
      connectors-proxy-xxxxxx                           1/1     Running   0          2m
    6. Проверьте, что CRD, необходимые для функциональности коннекторов, установлены:

      kubectl get crds | grep connectors.alauda.io

      Вы должны увидеть:

      connectorclasses.connectors.alauda.io
      connectors.connectors.alauda.io

    Установка ConnectorsGit (опционально)

    Для добавления поддержки Git-сервисов, таких как GitHub, GitLab и др., установите компонент ConnectorsGit:

    1. Создайте Custom Resource ConnectorsGit:

      cat <<EOF | kubectl apply -f -
      apiVersion: operator.connectors.alauda.io/v1alpha1
      kind: ConnectorsGit
      metadata:
        name: connectors-git
        namespace: connectors-system
      spec: {}
      EOF
    2. Отслеживайте прогресс развертывания:

      kubectl get connectorsgit -n connectors-system
    3. Дождитесь, пока статус покажет, что ConnectorsGit готов:

      kubectl wait --for=condition=Ready connectorsgit/connectors-git -n connectors-system --timeout=300s
    4. Проверьте, что Git плагин запущен:

      kubectl get pods -n connectors-system | grep git

      Вы должны увидеть:

      NAME                                   READY   STATUS    RESTARTS   AGE
      connectors-git-plugin-xxxxxx           1/1     Running   0          1m
    5. Проверьте, что ConnectorClass для Git создан:

      kubectl get connectorclass git

      Вы должны увидеть:

      NAME  READY  AGE
      git   True       1m

    Установка ConnectorsOCI (опционально)

    Для добавления поддержки реестров контейнеров, таких как Harbor, Docker Registry и др., установите компонент ConnectorsOCI:

    1. Создайте Custom Resource ConnectorsOCI:

      cat <<EOF | kubectl apply -f -
      apiVersion: operator.connectors.alauda.io/v1alpha1
      kind: ConnectorsOCI
      metadata:
        name: connectors-oci
        namespace: connectors-system
      spec: {}
      EOF
    2. Отслеживайте прогресс развертывания:

      kubectl get connectorsoci -n connectors-system
    3. Дождитесь, пока статус покажет, что ConnectorsOCI готов:

      kubectl wait --for=condition=Ready connectorsoci/connectors-oci -n connectors-system --timeout=300s
    4. Проверьте, что OCI плагин запущен:

      kubectl get pods -n connectors-system | grep oci
    5. Проверьте, что ConnectorClass для OCI создан:

      kubectl get connectorclass oci

    Удаление Connectors

    Для удаления системы Connectors удаляйте компоненты в обратном порядке установки.

    1. Сначала удалите опциональные компоненты (если они установлены):

      # Удалить ConnectorsOCI
      kubectl delete connectorsoci --all -n connectors-system
      
      # Удалить ConnectorsGit
      kubectl delete connectorsgit --all -n connectors-system
    2. Удалите основной компонент:

      kubectl delete connectorscore --all -n connectors-system
    3. Удалите оператора:

      kubectl delete -n connectors-operator subscription.operators.coreos.com/connectors-operator
    4. Удалите CRD:

      Внимание: это удалит все пользовательские данные о коннекторах

      kubectl delete crd connectors.connectors.alauda.io
      kubectl delete crd connectorclasses.connectors.alauda.io
      kubectl delete crd connectorscore.operator.connectors.alauda.io
      kubectl delete crd connectorsgit.operator.connectors.alauda.io
      kubectl delete crd connectorsoci.operator.connectors.alauda.io
    5. Удалите namespaces:

      kubectl delete namespace connectors-system
      kubectl delete namespace connectors-operator

    Пользовательская настройка

    Вы можете настроить развертывание компонентов коннекторов для лучшего соответствия вашей среде. Все компоненты коннекторов имеют схожую структуру конфигурации.

    Конфигурация ConnectorsCore

    При создании ресурса ConnectorsCore можно указать пользовательскую конфигурацию:

    apiVersion: operator.connectors.alauda.io/v1alpha1
    kind: ConnectorsCore
    metadata:
      name: connectors-core
      namespace: connectors-system
    spec:
      # Настройка конкретных рабочих нагрузок
      workloads:
      - name: connectors-api
        replicas: 2
        template:
          spec:
            containers:
            - name: api
              imagePullPolicy: Always
              resources:
                limits:
                  cpu: 500m
                  memory: 512Mi
                requests:
                  cpu: 200m
                  memory: 256Mi
              securityContext:
                readOnlyRootFilesystem: true
            nodeSelector:
              kubernetes.io/os: linux
    
      - name: connectors-controller-manager
        replicas: 1
        template:
          spec:
            containers:
            - name: manager
              resources:
                limits:
                  cpu: 300m
                  memory: 512Mi
    
      - name: connectors-proxy
        replicas: 2
        template:
          spec:
            containers:
            - name: proxy
              resources:
                limits:
                  cpu: 200m
                  memory: 256Mi

    Конфигурация ConnectorsGit

    Пользовательская конфигурация для Git плагина:

    apiVersion: operator.connectors.alauda.io/v1alpha1
    kind: ConnectorsGit
    metadata:
      name: connectors-git
      namespace: connectors-system
    spec:
      # Настройка рабочих нагрузок
      workloads:
      - name: connectors-git-plugin
        replicas: 2
        template:
          spec:
            containers:
            - name: plugin
              resources:
                limits:
                  cpu: 300m
                  memory: 256Mi
                requests:
                  cpu: 100m
                  memory: 128Mi

    Конфигурация ConnectorsOCI

    Пользовательская конфигурация для OCI плагина:

    apiVersion: operator.connectors.alauda.io/v1alpha1
    kind: ConnectorsOCI
    metadata:
      name: connectors-oci
      namespace: connectors-system
    spec:
      # Настройка рабочих нагрузок
      workloads:
      - name: connectors-oci-plugin
        replicas: 2
        template:
          spec:
            containers:
            - name: plugin
              resources:
                limits:
                  cpu: 300m
                  memory: 256Mi
                requests:
                  cpu: 100m
                  memory: 128Mi

    Дополнительные настройки

    Для продвинутых развертываний можно также указать:

    apiVersion: operator.connectors.alauda.io/v1alpha1
    kind: ConnectorsCore
    metadata:
      name: connectors-core
      namespace: connectors-system
    spec:
      # Указать дополнительные манифесты для установки
      additionalManifests: "<additional manifests>"
    
      # Другие необходимые настройки