Noval K3s 部署说明
文件列表
namespace.yaml:命名空间pvc.yaml:SQLite 数据持久化存储deployment.yaml:应用部署(2 副本,滚动更新)service.yaml:集群内服务cluster-issuer.yaml:cert-manager ClusterIssuer(Let's Encrypt)ingress.yaml:Traefik 入口(域名 + TLS)
一次性手动部署
cd /root/k8syaml/NovalRedot
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/cluster-issuer.yaml
kubectl apply -f k8s/pvc.yaml
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/ingress.yaml
CI/CD 自动部署
已配置 Gitea Actions:.gitea/workflows/deploy.yml
触发条件:main 分支 push。
流水线逻辑:
- 在 Runner 所在机器拉取最新代码
- 构建 Docker 镜像并打 tag(
noval-app:<commit>+latest) - 导入镜像到 k3s containerd
- 应用 K8s 资源并滚动更新 Deployment
- 等待 rollout 完成
你需要确认/调整
- 域名:当前写的是
writing-reddot.roog-code.cn(k8s/ingress.yaml) - TLS Secret:当前是
writing-reddot-roog-code-tls - ClusterIssuer:当前是
letsencrypt-prod(k8s/cluster-issuer.yaml) - ClusterIssuer 邮箱:当前是
roog-code@outlook.com(可改成你常用邮箱) - Ingress 类:当前按 Traefik 配置(k3s 默认)
- StorageClass:
local-path(k3s 默认)