Установка
Содержание
Введение
Система Connectors имеет модульную архитектуру с следующими компонентами:
- Connectors Operator: центральный компонент управления, который отвечает за развертывание и жизненный цикл остальных компонентов коннекторов
- ConnectorsCore: обязательный основной компонент, обеспечивающий основу для всех типов коннекторов
- ConnectorsGit: дополнительный компонент, добавляющий поддержку Git-сервисов (GitHub, GitLab и др.)
- ConnectorsOCI: дополнительный компонент, добавляющий поддержку реестров контейнеров
В этом документе приведены инструкции по установке и настройке системы Connectors.
Требования
Перед установкой убедитесь, что у вас есть:
- Kubernetes кластер
- CLI kubectl, настроенный для взаимодействия с вашим кластером
- Права администратора в кластере
- Connectors Operator в состоянии
Ready
в ACP Operator Hub
Установка Connectors Operator
Сначала установите Connectors Operator, который управляет жизненным циклом всех остальных компонентов.
-
Создайте namespace для оператора:
kubectl create namespace connectors-operator
-
Примените 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}}'
-
Проверьте, что оператор запущен:
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
-
Проверьте, что 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:
-
Создайте namespace для компонентов коннекторов (если ещё не создан):
kubectl create namespace connectors-system
-
Создайте 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
-
Отслеживайте прогресс развертывания:
kubectl get connectorscore -n connectors-system
-
Дождитесь, пока статус покажет, что ConnectorsCore готов:
kubectl wait --for=condition=Ready connectorscore/connectors-core -n connectors-system --timeout=300s
-
Проверьте, что основные 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
-
Проверьте, что CRD, необходимые для функциональности коннекторов, установлены:
kubectl get crds | grep connectors.alauda.io
Вы должны увидеть:
connectorclasses.connectors.alauda.io
connectors.connectors.alauda.io
Установка ConnectorsGit (опционально)
Для добавления поддержки Git-сервисов, таких как GitHub, GitLab и др., установите компонент ConnectorsGit:
-
Создайте 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
-
Отслеживайте прогресс развертывания:
kubectl get connectorsgit -n connectors-system
-
Дождитесь, пока статус покажет, что ConnectorsGit готов:
kubectl wait --for=condition=Ready connectorsgit/connectors-git -n connectors-system --timeout=300s
-
Проверьте, что Git-плагин запущен:
kubectl get pods -n connectors-system | grep git
Вы должны увидеть:
NAME READY STATUS RESTARTS AGE
connectors-git-plugin-xxxxxx 1/1 Running 0 1m
-
Проверьте, что ConnectorClass для Git создан:
kubectl get connectorclass git
Вы должны увидеть:
NAME READY AGE
git True 1m
Установка ConnectorsOCI (опционально)
Для добавления поддержки реестров контейнеров, таких как Harbor, Docker Registry и др., установите компонент ConnectorsOCI:
-
Создайте Custom Resource ConnectorsOCI:
ClusterIP Expose:
cat <<EOF | kubectl apply -f -
apiVersion: operator.connectors.alauda.io/v1alpha1
kind: ConnectorsOCI
metadata:
name: connectors-oci
namespace: connectors-system
spec: {}
EOF
NodePort Expose:
cat <<EOF | kubectl apply -f -
apiVersion: operator.connectors.alauda.io/v1alpha1
kind: ConnectorsOCI
metadata:
name: connectors-oci
namespace: connectors-system
spec:
expose:
type: NodePort
domain: 192.168.1.123
nodePort:
port: 30000
EOF
Ingress Expose:
cat <<EOF | kubectl apply -f -
apiVersion: operator.connectors.alauda.io/v1alpha1
kind: ConnectorsOCI
metadata:
name: connectors-oci
namespace: connectors-system
spec:
expose:
type: Ingress
domain: connectors.proxy.com
-
Отслеживайте прогресс развертывания:
kubectl get connectorsoci -n connectors-system
-
Дождитесь, пока статус покажет, что ConnectorsOCI готов:
kubectl wait --for=condition=Ready connectorsoci/connectors-oci -n connectors-system --timeout=300s
-
Проверьте, что OCI-плагин запущен:
kubectl get pods -n connectors-system | grep oci
-
Проверьте, что ConnectorClass для OCI создан:
kubectl get connectorclass oci
Удаление Connectors
Для удаления системы Connectors удаляйте компоненты в обратном порядке установки.
-
Сначала удалите опциональные компоненты (если они были установлены):
# Удалить ConnectorsOCI
kubectl delete connectorsoci --all -n connectors-system
# Удалить ConnectorsGit
kubectl delete connectorsgit --all -n connectors-system
-
Удалите основной компонент:
kubectl delete connectorscore --all -n connectors-system
-
Удалите оператора:
kubectl delete -n connectors-operator subscription.operators.coreos.com/connectors-operator
-
Удалите 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
-
Удалите 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>"
# Другие необходимые настройки