- 一、环境初始化
- 1.1 创建命名空间
- 1.2 执行初始化目录脚本
- 1.3 执行初始化脚本
- 二、部署服务
- 2.1 lczServer
- 2.1.1 上传文件
- 2.1.2 导入镜像
- 2.1.3 部署 / 更新 tomcat-lczserver 资源
- 2.1.4 重启pod生效
- 2.3 部署微服务
- 2.3.1 lczPlatformServer
- 2.3.1.1 上传文件
- 2.3.1.2 导入镜像
- 2.3.1.3 部署 / 更新 lcz‑platform 资源
- 2.3.1.4 更新ConfigMap
- 2.3.2 lczMessageCenterServer
- 2.3.2.1 上传文件
- 2.3.2.2 导入镜像
- 2.3.2.3 部署 / 更新 lcz-messagecenter 资源
- 2.3.2.4 更新ConfigMap
- 2.3.3 lczBatchWorkServer
- 2.3.3.1 上传文件
- 2.3.3.2 导入镜像
- 2.3.3.3 部署 / 更新 lcz-batchwork 资源
- 2.3.3.4 更新ConfigMap
- 2.3.4 lczScheduleServer
- 2.3.4.1 上传文件
- 2.3.4.2 导入镜像
- 2.3.4.3 部署 / 更新 lcz-schedule 资源
- 2.3.4.4 更新ConfigMap
- 2.3.5 lczDataProvideServer
- 2.3.5.1 上传文件
- 2.3.5.2 导入镜像
- 2.3.5.3 部署 / 更新 lcz-dataprovide 资源
- 2.3.5.4 更新ConfigMap
- 2.4 中间件部署
- 2.4.1 nginx
- 2.4.2.1 上传文件
- 2.4.2.2 导入镜像
- 2.4.2.3 部署 / 更新 nginx-lcz 资源
- 2.4.2 valkey(redis替代)
- 2.4.2.1 上传文件
- 2.4.2.2 导入镜像
- 2.4.2.3 部署 / 更新 valkey-lcz 资源
- 2.4.3 mongo
- 2.4.3.1 上传文件
- 2.4.3.2 导入镜像
- 2.4.3.3 部署 / 更新 mongo-lcz 资源
- 2.4.3.4 初始化账号(重要)
- 2.4.4 libreoffice(openoffice)
- 2.4.4.1 上传文件
- 2.4.2.2 导入镜像
- 2.4.2.3 部署 / 更新 libreoffice 资源
- 三、附录
- 3.1 运维中的一些常用命令
- 3.2 如何查看镜像内的文件夹和文件?
- 四、常见问题
- 4.1 POD启动后,状态不是Running
- 4.2 POD启动后,状态是Running,单访问网络不通
- 4.3 POD状态为 Evicted
在确保Kubernetes安装、启动成功后,可继续按本文章进行环境环境初始化和部署。
一、环境初始化
1.1 创建命名空间
kubectl create namespace lcz乐创者的namespace必须为“lcz”,否则yaml脚本中需自行统一修改。
1.2 执行初始化目录脚本
下载附件中的init_dir.rar文件,加压缩后,执行init_dir.sh脚本,上传到宿主机(假设目录为:home/lcz/work),在宿主机执行:
cd home/lcz/work
sudo ./init_dir.sh脚本执行成功后,需自行上传相关配置文件到对应目录中。
1.3 执行初始化脚本
下载附件中的init_congfig_map.rar文件,加压缩后,执行init_congfig_map.sh脚本,上传到宿主机(假设目录为:home/lcz/work),在宿主机执行:
cd home/lcz/work
sudo ./init_congfig_map.sh执行成功后,可执行以下命令查看:
kubectl get configmap -n lcz如果init_congfig_map.sh文件中引用的配置文件内容有变化,要重新执行此脚本。
二、部署服务
2.1 lczServer
2.1.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/tomcat-lczserver):
- 上传 k8s-deploy.rar中的 tomcat-lczserver-deploy.yaml
- 上传镜像文件:tomcat-lczserver-8.1.0.tar
2.1.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import tomcat-lczserver-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep tomcat-lczserver2.1.3 部署 / 更新 tomcat-lczserver 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/tomcat-lczserver
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f tomcat-lczserver-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment tomcat-lczserver -n lcz注意:
1、kubectl apply 自动会重启 tomcat-lczserver pod。
2、lczServer/conf中的server.config、log4j2.xml默认在/etc/lcz-container/tomcat-lczserver/lczserver/conf目录下。
3、lczServer/logs 生成在/data/tomcat-lczserver/logs
2.1.4 重启pod生效
可通过以下命令重启 pod:
kubectl rollout restart deployment 镜像名称 -n lcz2.3 部署微服务
2.3.1 lczPlatformServer
2.3.1.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/microServer/lczPlatform):
- 上传 k8s-deploy.rar中的 lczPlatform-deploy.yaml
- 上传镜像文件:lczplatform-8.1.0.tar
2.3.1.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import lcz-platform-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep lcz-platform2.3.1.3 部署 / 更新 lcz‑platform 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/microServer/lczPlatform
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f lczPlatform-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment lcz-platform -n lcz2.3.1.4 更新ConfigMap
如果application.yml内容发生变换,需在跟新 lcz-platform 资源前执行以下命令:
kubectl create configmap lcz-platform-application-cm -n lcz \
--from-file=application.yml=/etc/lcz-container/microServer/lczPlatformServer/application.yml \
--dry-run=client -o yaml | kubectl apply -f -2.3.2 lczMessageCenterServer
2.3.2.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/microServer/lczMessageCenter):
- 上传 k8s-deploy.rar中的 lczMessageCenter-deploy.yaml
- 上传镜像文件:lczmessagecenter-8.1.0.tar
2.3.2.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import lcz-messagecenter-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep lcz-messagecenter2.3.2.3 部署 / 更新 lcz-messagecenter 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/microServer/lczMessageCenter
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f lczMessageCenter-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment lcz-messagecenter -n lcz2.3.2.4 更新ConfigMap
如果application.yml内容发生变换,需在跟新 lcz-messagecenter 资源前执行以下命令:
kubectl create configmap lcz-messagecenter-application-cm -n lcz \
--from-file=application.yml=/etc/lcz-container/microServer/lczMessageCenterServer/application.yml \
--dry-run=client -o yaml | kubectl apply -f -2.3.3 lczBatchWorkServer
2.3.3.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/microServer/lczBatchWork):
- 上传 k8s-deploy.rar中的 lczBatchWork-deploy.yaml
- 上传镜像文件:lczbatchwork-8.1.0.tar
2.3.3.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import lcz-batchwork-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep lcz-batchwork2.3.3.3 部署 / 更新 lcz-batchwork 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/microServer/lczBatchWork
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f lczBatchWork-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment lcz-batchwork -n lcz2.3.3.4 更新ConfigMap
如果application.yml内容发生变换,需在跟新 lcz-batchwork 资源前执行以下命令:
kubectl create configmap lcz-batchwork-application-cm -n lcz \
--from-file=application.yml=/etc/lcz-container/microServer/lczBatchWorkServer/application.yml \
--dry-run=client -o yaml | kubectl apply -f -2.3.4 lczScheduleServer
2.3.4.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/microServer/lczSchedule):
- 上传 k8s-deploy.rar中的 lczSchedule-deploy.yaml
- 上传镜像文件:lczschedule-8.1.0.tar
2.3.4.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import lcz-schedule-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep lcz-schedule2.3.4.3 部署 / 更新 lcz-schedule 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/lczSchedule
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f lczSchedule-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment lcz-schedule -n lcz2.3.4.4 更新ConfigMap
如果application.yml内容发生变换,需在跟新 lcz-schedule 资源前执行以下命令:
kubectl create configmap lcz-schedule-application-cm -n lcz \
--from-file=application.yml=/etc/lcz-container/microServer/lczScheduleServer/application.yml \
--dry-run=client -o yaml | kubectl apply -f -2.3.5 lczDataProvideServer
2.3.5.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/microServer/lczDataProvide):
- 上传 k8s-deploy.rar中的 lczDataProvide-deploy.yaml
- 上传镜像文件:lczdataprovide-8.1.0.tar
2.3.5.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import lcz-dataprovide-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep lcz-dataprovide2.3.5.3 部署 / 更新 lcz-dataprovide 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/microServer/lczDataProvide
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f lczDataProvide-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment lcz-dataprovide -n lcz2.3.5.4 更新ConfigMap
如果application.yml内容发生变换,需在跟新 lcz-dataprovide 资源前执行以下命令:
kubectl create configmap lcz-dataprovide-application-cm -n lcz \
--from-file=application.yml=/etc/lcz-container/microServer/lczDataProvideServer/application.yml \
--dry-run=client -o yaml | kubectl apply -f -2.4 中间件部署
2.4.1 nginx
2.4.2.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/nginx):
- 上传 k8s-deploy.rar中的 nginx‑conf‑apply.sh
- 上传镜像文件:nginx-lcz-8.1.0.tar
2.4.2.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import nginx-lcz-8.1.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep nginx-lcz2.4.2.3 部署 / 更新 nginx-lcz 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/nginx
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
./nginx‑conf‑apply.sh
# 强制重启Pod (按需)
kubectl rollout restart deployment nginx-lcz -n lcz2.4.2 valkey(redis替代)
2.4.2.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/valkey):
- 上传 k8s-deploy.rar中的 valkey-lcz-deploy.yaml
- 上传镜像文件:valkey-lcz-8.1.4.tar
2.4.2.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import valkey-lcz-8.1.4.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep valkey-lcz2.4.2.3 部署 / 更新 valkey-lcz 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/valkey
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f valkey-lcz-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment valkey-lcz -n lcz如果valkey和乐创者部署在同一个work中,则按下图方式配置到lczServer:
2.4.3 mongo
2.4.3.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/mongo):
- 上传 k8s-deploy.rar中的 mongo-lcz-deploy.yaml
- 上传镜像文件:mongo-7.0.tar
2.4.3.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import mongo-7.0.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep mongo-lcz2.4.3.3 部署 / 更新 mongo-lcz 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/mongo
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f mongo-lcz-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment mongo-lcz -n lcz2.4.3.4 初始化账号(重要)
配置文件开启了 security.authorization: enabled,不创建账号无法访问。
执行以下命令,进入mongo命令行管理:
kubectl exec -it $(kubectl get pod -n lcz -l app=mongodb-lcz -o name) -n lcz -- mongosh创始化管理员密码:
# 切换到 admin 库
use admin
# 创建 root 用户
db.createUser({
user:"root",
pwd:"Lcz@1203@mongo",
roles:[{role:"root",db:"admin"}]
})
exit创始业务库和普通用户:
//管理员身份登录
use admin
db.auth("root","Lcz@1203@mongo")
// 切换/创建业务库 lcz_810,MongoDB 切换即自动创建库
use lcz_810
// 创建用户 lcz,密码 Lcz@1203@test,授予 lcz_810 读写权限
db.createUser({
user: "lcz",
pwd: "Lcz&1203&test",
roles: [
{ role: "readWrite", db: "lcz_810" }
]
})
exit如果mongo和乐创者部署在同一个work中,则按下图方式配置到lczServer:
2.4.4 libreoffice(openoffice)
2.4.4.1 上传文件
上传文件到宿主机发布目录下(假设:/home/work/lcz-k8s-deploy/openoffice):
- 上传 k8s-deploy.rar中的 openoffice-lcz-deploy.yaml
- 上传镜像文件:libreoffice-25.8.7.3.tar
2.4.2.2 导入镜像
# 在 k8s 节点导入到 containerd, 导入到k8s.io命名空间,k8s才能够识别这个镜像
sudo ctr -n k8s.io images import libreoffice-25.8.7.3.tar
# 查看确认镜像存在
sudo ctr -n k8s.io images ls | grep libreoffice2.4.2.3 部署 / 更新 libreoffice 资源
进入宿主机发布目录,执行命令:
cd /home/work/lcz-k8s-deploy/libreoffice
# 应用 yaml配置(假设后续该文件有变更,可通过以下命令跟新并重启pod)
kubectl apply -f libreoffice-lcz-deploy.yaml
# 强制重启Pod (按需)
kubectl rollout restart deployment libreoffice-lcz -n lcz三、附录
3.1 运维中的一些常用命令
# 查看 所有lcz pod
kubectl get pod -n lcz
kubectl get pod -n lcz -w
# 全部 pod 全部销毁重建-按namespace(把 Running 的也一起重建)
kubectl delete pods --all -n lcz
# 全部 pod 全部销毁重建-按namespace+镜像名称(把 Running 的也一起重建)
kubectl delete pods -l app=镜像名称 -n lcz
# 全部pod强制重建
kubectl rollout restart deployment -n lcz
kubectl rollout restart StatefulSet -n lcz
# 某个镜像pod状态不是 running,查看日志分析原因
kubectl describe pod NAME -n lcz
kubectl logs <pod-NAME> -n lcz
# 查看微服务的启动日志
kubectl logs <pod-NAME> -n lcz
#删除某个出错的pod
kubectl delete pod <pod-NAME> -n lcz
# 假设service重命名,删除原service名称
kubectl delete svc 原service名称 -n lcz
# 暂停某个pod
kubectl scale deployment 镜像名称 --replicas=0 -n lcz
# 暂停后,重启某个pod
kubectl scale deployment 镜像名称 --replicas=1 -n lcz
3.2 如何查看镜像内的文件夹和文件?
以nginx-lcz为例,查看/usr/share/nginx/html下的静态文件:
# 进入容器交互shell
kubectl exec -it deploy/nginx-lcz -n lcz -- sh然后执行:
ls -la /usr/share/nginx/html
# 看子目录
ls -la /usr/share/nginx/html/*
# 查看文件内容
cat /usr/share/nginx/html/index.html四、常见问题
4.1 POD启动后,状态不是Running
通过以下命令查看原因:
kubectl describe pod <pod-NAME> -n lcz4.2 POD启动后,状态是Running,单访问网络不通
需检查以下几方面:
- yaml、nginx中端口是否配置匹配?
- yaml、nginx/server.conf中配置的镜像名称是否一致?
- applcation.yml中的context-path是否和server.conf中配置一致?
如果都一致,可通过以下命令进行检测:
以 lcz-platform 为例:
#进入 nginx pod 内部
kubectl exec -it <nginx-pod-NAME> -n lcz -- /bin/sh
# 容器内执行,直接 curl 后端 lcz-platform 服务
curl -v http://lcz-platform:8081/oapi/lczPlatform/server/health两种可能结果:
- 如果这个 curl 返回 404:后端 lcz-platform 配置或部署问题,不是 nginx 的问题
- 如果 curl 返回 200:nginx 转发路径逻辑问题
4.3 POD状态为 Evicted
Evicted = 节点驱逐,kubelet 因为节点资源不足(内存 / 磁盘压力大),主动把这个 mongodb pod 杀掉并驱逐。
快速查看驱逐原因:
# 查看pod事件,会写明是内存还是磁盘不足
kubectl describe pod <pod-NAME> -n lcz最后编辑:柳杨 更新时间:2026-09-10 20:27
