安装 Alauda DevOps

本指南提供了安装 Alauda DevOps 的详细操作步骤。

目录

前提条件

确保已上传 Alauda DevOps v3 operator 后再继续操作。

有关上传 operator 的更多信息,请参见

安装 Operator

进入平台的 Administrator -> Marketplace -> OperatorHub 页面,搜索 Alauda DevOps v3,然后点击 operator 卡片进入 operator 详情页。

点击 Install 进行安装。

部署位置

在 Global cluster 中部署 Katanomi 实例。业务集群可根据需要部署实例以支持 CI/CD。

组件Global ClusterBusiness Cluster
Katanomi已安装可选

操作步骤

创建 Katanomi 实例

WARNING

仅支持创建一个 Katanomi 实例。

  • Global cluster:部署在 cpaas-system 命名空间内。将 ExternalURL 设置为 global 集群的 Platform URL,并将 Service.Type 设置为 Ingress

  • Business cluster:可部署在除 cpaas-system 以外的任意命名空间。

  • 登录 Alauda Container Platform 平台。

  • 进入 Platform Management 下的 Clusters 标签页。

  • 选择已部署的集群,点击 CLI Tools

  • 创建 Katanomi 实例(根据需要调整参数)

global cluster

export NAMESPACE=cpaas-system
export EXTERNAL_URL=$(kubectl get prdb -n cpaas-system base -o jsonpath='{.spec.platformURL}')
cat <<EOF | kubectl apply -f -
apiVersion: operators.katanomi.dev/v1alpha1
kind: Katanomi
metadata:
  name: katanomi
  namespace: ${NAMESPACE}
spec:
  externalURL: ${EXTERNAL_URL}
  replicas: 1
  resources:
    limits:
      cpu: "2"
      memory: 4Gi
    requests:
      cpu: "1"
      memory: 2Gi
  service:
    ingress:
      protocol: HTTP
    type: Ingress
EOF

business cluster

export NAMESPACE=katanomi-operator
export NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}' | awk -F" " '{print $1}')
export EXTERNAL_URL=http://${NODE_IP}:32001
cat <<EOF | kubectl apply -f -
apiVersion: operators.katanomi.dev/v1alpha1
kind: Katanomi
metadata:
  name: katanomi
  namespace: ${NAMESPACE}
spec:
  externalURL: ${EXTERNAL_URL}
  replicas: 1
  resources:
    limits:
      cpu: "2"
      memory: 4Gi
    requests:
      cpu: "1"
      memory: 2Gi
  service:
    nodePort:
      apiPort:
        httpPort: 32000
      pluginPort:
        httpPort: 32001
    type: NodePort
EOF
  • 等待 DevOps 实例准备就绪
    kubectl wait --for='jsonpath={.status.conditions[?(@.type=="Running")].status}=true' katanomis/katanomi -n cpaas-system --timeout=5m

CI/CD 功能准备

在开始使用 Alauda DevOps 的构建和发布流水线功能之前,平台管理员需要完成一些准备工作。

部署 Alauda DevOps v3 后,请参考平台内的文档:<Platform URL>/console-devops-docs/en/devops-initialization/cicd/init/

Katanomi 参数说明

参数说明
Name

Katanomi 实例的名称。

Namespaces

对于 business clusters,Katanomi 实例可以部署到任何有足够资源的命名空间。对于 global cluster,Katanomi 实例必须专门部署在 cpaas-system 命名空间内。

External URL

访问地址,即 API 地址。根据 Service Type 配置进行规划。
当 Service Type 为 Node Port 时,请输入 http://<IP>:<Port>端口 必须与 Service 的 Node Port 保持一致,API 端口用于服务访问。
当 Service Type 为 Ingress 时,请输入对应的访问地址,例如:http://kubernetes.io

Replicas

Deployment 的副本数,默认为 2。
当副本数为 1 时,采用单节点部署。

Resources
  • requests: 运行工具时可消耗的最小 CPU 和内存资源。
  • limits: 运行工具时需占用的最大 CPU 和内存资源。
Service.Type

必填字段。提供两种类型:Node Port 和 Ingress。

  • Node Port: 通过静态端口暴露路由,访问格式为 <IP>:<port>
  • Ingress: 通过入站规则暴露路由,访问格式为域名。
Service.Ingress

当 Type 设置为 Ingress 时必填。

  • 域名: 访问工具所用的域名。
  • 协议: 通过 HTTP 或 HTTPS 访问工具。
  • Secret Name: 通过 HTTPS 访问工具时使用的 SSL 证书名称。
Service.Node Port

Type 设置为 Node Port 时必填。访问工具所用端口号,API 端口和 Plugin 端口不可重复,端口值范围为 30000-32767。

  • API Port: 通过 HTTP 访问 Katanomi-api 组件的端口,用于执行工具集成绑定相关操作。
  • Plugin Port: 通过 HTTP 访问 Katanomi-plugin 组件的端口,用于平台处理工具链集成绑定事件。

常见问题

Katanomi Pod 启动失败,提示只读根文件系统:/cpaas 目录不可写

Katanomi 需要对宿主机的 /cpaas 目录具有写权限以存储审计日志。如果 Pod 无法写入该目录,则会启动失败。

解决方法是配置替代的审计日志存储路径。例如:

spec:
  helmValues:
    api:
      auditHostPath: /tmp/audit
    devopsApiServer:
      auditHostPath: /tmp/audit
    devopsApi:
      auditHostPath: /tmp/audit

此配置指示 Katanomi 组件使用 /tmp/audit 作为审计日志存储路径,确保兼容启用了只读根文件系统的环境。请根据安全和运行需求调整路径。

如何在部署 Katanomi 时配置自定义 ImagePullSecret

若需为 Katanomi 实例指定自定义 ImagePullSecret,请添加以下配置:

spec:
  helmValues:
    global:
      registry:
        imagePullSecret:
          name: <imagePullSecretName>

此配置确保 Katanomi 使用指定的 ImagePullSecret 从私有镜像仓库拉取容器镜像。请将 imagePullSecretName 替换为您预先创建的包含所需仓库凭据的 Kubernetes Secret 名称。