目 录CONTENT

文章目录

使用Kustomize部署禅道21.7.6项目管理平台

Administrator
2025-11-18 / 0 评论 / 0 点赞 / 4 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

使用Kustomize部署禅道21.7.6项目管理平台

实际应用场景背景

在现代软件开发过程中,项目管理工具是团队协作不可或缺的一部分。禅道(ZenTao)作为一款开源的项目管理软件,提供了需求管理、任务管理、缺陷跟踪、文档管理等功能。通过Kubernetes和Kustomize的组合,我们可以实现禅道的标准化部署和配置管理,提高部署效率和环境一致性。

为什么选择禅道21.7.6版本

禅道21.7.6版本具有以下优势:

  • 功能完善,包含了项目管理所需的核心功能
  • 界面友好,易于上手和使用
  • 开源免费,降低了企业成本
  • 支持插件扩展,可根据需要定制功能
  • 稳定性经过充分验证,适合生产环境使用

禅道21.7.6基础部署配置

ConfigMap配置

首先,我们需要配置禅道所需的环境变量,包括数据库连接信息等:

apiVersion: v1
kind: ConfigMap
metadata:
  name: zentao-config
data:
  # 数据库连接配置
  MYSQL_HOST: "192.168.3.7"
  MYSQL_PORT: "3306"
  MYSQL_DB: "zentao"
  MYSQL_USER: "zentao"
  MYSQL_PASSWORD: "Zentao@345"
  MYSQL_INTERNAL: "false"
  # SSL配置
  MYSQL_USE_SSL: "false"
  
  # 其他配置
  ZENTAO_CONTEXT: "/"

Deployment配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zentao
spec:
  template:
    spec:
      securityContext:
        fsGroup: 1000
      containers:
      - name: zentao
        image: easysoft/zentao:21.7.6
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
          name: http
        envFrom:
          - configMapRef:
              name: zentao-config
        volumeMounts:
        - name: zentao-data
          mountPath: /data
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 60
          timeoutSeconds: 5
          periodSeconds: 10
          failureThreshold: 3
        livenessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 180
          timeoutSeconds: 5
          periodSeconds: 30
          failureThreshold: 3
        resources:
          requests:
            cpu: "500m"
            memory: "1Gi"
          limits:
            cpu: "2"
            memory: "4Gi"
      volumes:
      - name: zentao-data
        persistentVolumeClaim:
          claimName: zentao-pvc

Service配置

apiVersion: v1
kind: Service
metadata:
  name: zentao
spec:
  selector:
    app: zentao
  ports:
  - name: http
    port: 80
    targetPort: 80
  type: ClusterIP

---
apiVersion: v1
kind: Service
metadata:
  name: zentao-nodeport
spec:
  type: NodePort
  ports:
    - name: zentao-ui
      port: 80
      targetPort: 80
      nodePort: 31410

PVC配置

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: zentao-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: nfs-storage

使用Kustomize组织配置

Base配置

resources:
  - ./configmap.yaml
  - ./deployment.yaml
  - ./service.yaml
  - ./pvc.yaml

commonAnnotations:
  application: infrastructure-zentao应用

commonLabels:
  version: "2176"

Overlay配置

resources:
  - ../../base

namespace: infrastructure

commonLabels:
  env: "2176"

部署命令

使用以下命令部署禅道:

kubectl apply -k overlays/infrastructure

或者使用dry-run模式预览将要部署的资源:

kubectl apply -k overlays/infrastructure --dry-run=client -o yaml

配置参数详解

以下表格详细说明了禅道部署中的关键配置参数:

参数名含义可选值默认值
MYSQL_HOST数据库主机地址有效的主机地址或IP"192.168.3.7"
MYSQL_PORT数据库端口有效的端口号"3306"
MYSQL_DB数据库名称数据库名"zentao"
MYSQL_USER数据库用户名用户名"zentao"
MYSQL_PASSWORD数据库密码密码"Zentao@345"
MYSQL_INTERNAL是否使用内部数据库"true"/"false""false"
MYSQL_USE_SSL是否启用SSL连接"true"/"false""false"
ZENTAO_CONTEXT禅道上下文路径有效的URL路径"/"
initialDelaySeconds健康检查初始延迟时间正整数(秒)60(就绪检查)/180(存活检查)
periodSeconds健康检查间隔时间正整数(秒)10(就绪检查)/30(存活检查)
failureThreshold健康检查失败阈值正整数3
cpuCPU资源配置Kubernetes资源单位500m(请求)/2(限制)
memory内存资源配置Kubernetes资源单位1Gi(请求)/4Gi(限制)

访问禅道

部署完成后,可以通过以下方式访问禅道:

  1. 通过NodePort访问:http://<节点IP>:31410
  2. 通过Service ClusterIP访问:http://zentao.infrastructure.svc.cluster.local

首次访问需要进行初始化配置,包括设置管理员账号密码等。

数据持久化

禅道的数据通过PersistentVolumeClaim进行持久化存储,确保在Pod重启或重新调度后数据不会丢失。存储使用的是nfs-storage类型的StorageClass,容量为10Gi。

总结

通过Kustomize部署禅道21.7.6,我们可以实现配置的标准化和可重复性。这种部署方式不仅便于维护和升级,还能与GitOps工具如ArgoCD良好集成,实现持续交付。在企业环境中,这种方式能够显著提高部署效率和可靠性。

参考文档

  1. 禅道官方文档
  2. Kustomize官方文档
  3. 好来斯博客
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区