单机k8s集群部署——禅道篇

禅道是第一款国产的开源项目管理软件,支持产品管理、项目管理、测试管理、计划管理、发布管理、文档管理、事务管理等功能,可以跟踪管理一个软件开发的整个生命周期,完整覆盖项目管理的核心流程

今天我们就来学习一下如何在单机k8s上部署禅道!

如果你还没有部署好单机k8s,参考以下两篇文章:
《ubuntu22.04部署单机k8s》:https://www.cnblogs.com/OM-dyc/articles/18957330
《Ubuntu 20.04 下单机k8s的网络部署》:https://www.cnblogs.com/OM-dyc/articles/18959567
同样的禅道推荐连接你自己的外置MySQL,如果你还没有部署MySQL,也可以参考这篇文章:
《docker 部署 Mysql并实现数据持久化挂载(使用Navicat进行外部连接验证)》:https://www.cnblogs.com/OM-dyc/articles/18958008

下面我们就正式开始部署禅道

1.docker拉取镜像
docker pull hub.zentao.net/app/zentao:latest

2.docker 运行容器

docker run -it \
     -v $PWD/data:/data \
     -p 80:80 \
     -e ZT_MYSQL_HOST=xx.xxx.xx.xxx \
     -e ZT_MYSQL_PORT=3306 \
     -e ZT_MYSQL_USER=root \
     -e ZT_MYSQL_PASSWORD=654321 \
     -e ZT_MYSQL_DB=zentao \
     hub.zentao.net/app/zentao

3.创建一个目录,存放kubernetes配置文件并进入文件内部

mkdir zentao-k8s
cd zentao-k8s

4.创建mysql-config.yaml以进行MySQL的连接配置
vim mysql-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: zentao-mysql-config
data:
  MYSQL_HOST: "47.110.56.159"  # 你的MySQL地址
  MYSQL_PORT: "3306"
  MYSQL_DB: "zentao"

5.创建mysql-secret.yaml 以进行MySQL密码配置(使用base64编码加密)
vim mysql-secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: zentao-mysql-secret
type: Opaque
data:
  # 使用 base64 编码:echo -n '654321' | base64
  MYSQL_USER: cm9vdA==  # root
  MYSQL_PASSWORD: NjU0MzIx  # 654321

6.创建zentao-deployment.yaml进行禅道部署
vim zentao-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zentao
  labels:
    app: zentao
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zentao
  template:
    metadata:
      labels:
        app: zentao
    spec:
      containers:
      - name: zentao
        image: hub.zentao.net/app/zentao:latest
        ports:
        - containerPort: 80
        env:
        - name: ZT_MYSQL_HOST
          valueFrom:
            configMapKeyRef:
              name: zentao-mysql-config
              key: MYSQL_HOST
        - name: ZT_MYSQL_PORT
          valueFrom:
            configMapKeyRef:
              name: zentao-mysql-config
              key: MYSQL_PORT
        - name: ZT_MYSQL_DB
          valueFrom:
            configMapKeyRef:
              name: zentao-mysql-config
              key: MYSQL_DB
        - name: ZT_MYSQL_USER
          valueFrom:
            secretKeyRef:
              name: zentao-mysql-secret
              key: MYSQL_USER
        - name: ZT_MYSQL_PASSWORD
          valueFrom:
            secretKeyRef:
              name: zentao-mysql-secret
              key: MYSQL_PASSWORD
        volumeMounts:
        - name: zentao-data
          mountPath: /data
      volumes:
      - name: zentao-data
        hostPath:
          path: /data/zentao  # 宿主机存储路径
          type: DirectoryOrCreate

7.创建zentao-service.yaml暴露禅道的服务端口
vim zentao-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: zentao
spec:
  type: NodePort  # 适用于单机K8s
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30080  # 宿主机端口(30000-32767)
  selector:
    app: zentao

8.执行配置文件

# 创建配置和密码
kubectl apply -f mysql-config.yaml
kubectl apply -f mysql-secret.yaml

# 部署禅道
kubectl apply -f zentao-deployment.yaml
kubectl apply -f zentao-service.yaml
# 等待十几秒
# 查看部署状态
kubectl get pods,svc

9.通过暴露接口访问禅道,并根据提示进行安装
http://你的K8s节点IP:30080

到这禅道就部署完毕了
如果你在部署过程中遇到任何问题,欢迎在评论区互相交流。

posted @ 2025-07-03 15:16  努力成为OM大师  阅读(15)  评论(0)    收藏  举报