安装

目录

介绍

Connectors 系统采用模块化架构,包含以下组件:

  • Connectors Operator:核心管理组件,负责其他连接器组件的部署和生命周期管理
  • ConnectorsCore:必需的核心组件,为所有连接器类型提供基础
  • ConnectorsGit:可选组件,添加对 Git 服务(GitHub、GitLab 等)的支持
  • ConnectorsOCI:可选组件,添加对容器镜像仓库的支持

本文档提供 Connectors 系统的安装和配置说明。

前提条件

安装前,请确保您具备以下条件:

  • 一个 kubernetes 集群
  • 已配置好与集群通信的 kubectl CLI
  • 集群的管理员权限
  • Connectors Operator 在 ACP Operator Hub 上处于 Ready 状态

安装 Connectors Operator

首先安装 Connectors Operator,它负责管理所有其他组件的生命周期。

  1. 创建 Operator 的命名空间:

    kubectl create namespace connectors-operator
  2. 应用 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}}'
  1. 验证 Operator 是否运行:

    kubectl get pods -n connectors-operator

    您应看到 connectors-operator pod 正在运行:

    NAME                                                  READY   STATUS    RESTARTS   AGE
    connectors-operator-controller-manager-xxxxxx-xxxxx   2/2     Running   0          1m
  2. 验证自定义资源定义(CRDs)是否已创建:

    kubectl get crds | grep connectors

    您应看到包括以下 CRDs:

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

安装 ConnectorsCore

Operator 运行后,安装必需的 ConnectorsCore 组件:

  1. 创建连接器组件的命名空间(如果尚未创建):

    kubectl create namespace connectors-system
  2. 创建 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. 验证连接器功能所需的 CRDs 是否已安装:

    kubectl get crds | grep connectors.alauda.io

    您应看到:

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

安装 ConnectorsGit(可选)

若需添加对 Git 服务(如 GitHub、GitLab 等)的支持,安装 ConnectorsGit 组件:

  1. 创建 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. 验证 Git ConnectorClass 是否已创建:

    kubectl get connectorclass git

    您应看到:

    NAME  READY  AGE
    git   True       1m

安装 ConnectorsOCI(可选)

若需添加对容器镜像仓库(如 Harbor、Docker Registry 等)的支持,安装 ConnectorsOCI 组件:

  1. 创建 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. 验证 OCI ConnectorClass 是否已创建:

    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. 删除 Operator:

    kubectl delete -n connectors-operator subscription.operators.coreos.com/connectors-operator
  4. 删除 CRDs:

警告:这将删除所有关于 connectors 的用户数据

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
  1. 删除命名空间:

    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>"

  # 其他所需配置