在确保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-lczserver

2.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 lcz

2.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-platform

2.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 lcz

2.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-messagecenter

2.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 lcz

2.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-batchwork

2.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 lcz

2.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-schedule

2.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 lcz

2.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-dataprovide

2.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 lcz

2.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-lcz

2.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 lcz

2.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-lcz

2.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-lcz

2.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 lcz

2.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 libreoffice

2.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 lcz

4.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

两种可能结果:

  1. 如果这个 curl 返回 404:后端 lcz-platform 配置或部署问题,不是 nginx 的问题
  2. 如果 curl 返回 200:nginx 转发路径逻辑问题

4.3 POD状态为 Evicted

Evicted = 节点驱逐,kubelet 因为节点资源不足(内存 / 磁盘压力大),主动把这个 mongodb pod 杀掉并驱逐。
快速查看驱逐原因:

# 查看pod事件,会写明是内存还是磁盘不足
kubectl describe pod <pod-NAME> -n lcz
作者:柳杨  创建时间:2026-09-07 11:55
最后编辑:柳杨  更新时间:2026-09-10 20:27