单机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
到这禅道就部署完毕了
如果你在部署过程中遇到任何问题,欢迎在评论区互相交流。
浙公网安备 33010602011771号