# 04-01-k3s Node.js 高级部署 > Node.js 属于 `04` 高级部署序列。 > 本文作为 Node.js 主入口:先跑通基础链路,再扩展到自定义端口、存储与构建。 ## 前置条件 - 已完成 `01-02-k3s-工作节点.md` - 已完成 `03-01-k3s-traefik-dashboard.md`(可选,便于观察路由) - 已完成 `03-04-k3s-cloudflare-tunnel-配置接入.md`(如需外网入口) ## 基础部署步骤 1. 创建 Node.js Deployment(默认监听 `3000`) 2. 创建 Service(`80 -> 3000`) 3. 创建 Ingress 或 IngressRoute(路径建议 `/node`) ## 清单路径(唯一真源) 完整 YAML 不在本文重复粘贴,请以仓库内文件为准(与 Ansible 共用): | 项 | 路径 / 命令 | |----|-------------| | 清单文件 | [`ansible/files/nodejs-demo/04-01-nodejs-demo.yaml`](../ansible/files/nodejs-demo/04-01-nodejs-demo.yaml) | | 手工应用 | `kubectl apply -f ansible/files/nodejs-demo/04-01-nodejs-demo.yaml` | | Ansible | `ansible-playbook -i ansible/inventory.ini ansible/playbooks/nodejs-demo-apply.yml -e nodejs_demo_manifest=04-01-nodejs-demo.yaml` | 索引与累积说明见 [`ansible/files/nodejs-demo/README.md`](../ansible/files/nodejs-demo/README.md)。 ### 相对上游 本文为 **基线**,无上游清单;以下为资源摘要(便于检索,**以 YAML 文件为准**)。 | 资源 | 要点 | |------|------| | Deployment `nodejs-demo` | `node:18-alpine`,监听 **3000**,`replicas: 1` | | Service | `80` → `targetPort: 3000` | | Ingress | `entrypoints: web`,路径 **`/node`**,无 `host` | 应用方式: ```bash kubectl apply -f ansible/files/nodejs-demo/04-01-nodejs-demo.yaml ``` ## 基础验证 ```bash kubectl get pod,svc,ing -n default -o wide curl -s --max-time 3 http://192.168.2.61/node/ curl -s --max-time 3 http://192.168.2.62/node/ ``` 预期:返回应用内容(如 `Hello World from Node.js`)。 ## 失败排查 统一看:`06-01-k3s-networkpolicy-故障排查.md` ## 部署阶段扩展(分项导航) 在本文 `nodejs-demo` 基线上按主题增量实践(建议顺序大致由上到下)。**每篇分项均链接到 `ansible/files/nodejs-demo/` 下累积清单**,并附 **相对上一篇的变更表**;与 [`ansible/playbooks/nodejs-demo-apply.yml`](../ansible/playbooks/nodejs-demo-apply.yml) 共用。 - `04-02-nodejs-镜像与运行命令.md`:镜像 tag、`imagePullPolicy`、`command`/`args` - `04-03-nodejs-环境变量与配置注入.md`:ConfigMap/Secret、`env`/`envFrom` - `04-04-nodejs-端口与Service.md`:`containerPort` 与 Service/Ingress 端口对应 - `04-05-nodejs-资源请求与限制.md`:`resources`、OOM/CPU 节流 - `04-06-nodejs-探针与健康检查.md`:存活/就绪/启动探针 - `04-07-nodejs-调度与亲和.md`:`nodeSelector`、亲和、容忍 - `04-08-nodejs-安全上下文.md`:`securityContext`、非 root、只读根等 - `04-09-nodejs-存储与卷.md`:`emptyDir`、PVC、配置卷挂载 - `04-10-nodejs-Ingress与Traefik.md`:路径、主机名、`web`/`websecure` - `04-11-nodejs-副本与滚动发布.md`:`replicas`、滚动策略 - `04-12-nodejs-TLS与证书.md`:Ingress `tls`、HTTPS(与 `03-02` ACME 配合) - `04-13-nodejs-HPA.md`:水平自动扩缩容 - `04-14-nodejs-GitOps与CI流水线.md`:构建镜像、GitOps/CI 闭环 ## 下一步 - 返回 `00-00-构建总览.md`,按导航继续。