# 对应文档:docs/04-03-nodejs-环境变量与配置注入.md # 累积:04-02 + ConfigMap + 通过 env 注入 APP_MSG(镜像仍用 18.20-alpine 与 04-02 一致) apiVersion: v1 kind: ConfigMap metadata: name: nodejs-demo-config namespace: default data: APP_MSG: "Hello from ConfigMap" --- apiVersion: apps/v1 kind: Deployment metadata: name: nodejs-demo namespace: default spec: replicas: 1 selector: matchLabels: app: nodejs-demo template: metadata: labels: app: nodejs-demo spec: containers: - name: nodejs-demo image: node:18.20-alpine imagePullPolicy: IfNotPresent env: - name: APP_MSG valueFrom: configMapKeyRef: name: nodejs-demo-config key: APP_MSG command: - node - "-e" - | const http=require('http'); const msg=process.env.APP_MSG||'no env'; http.createServer((q,s)=>s.end(msg)).listen(3000); ports: - containerPort: 3000 --- apiVersion: v1 kind: Service metadata: name: nodejs-demo namespace: default spec: selector: app: nodejs-demo ports: - port: 80 targetPort: 3000 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nodejs-demo namespace: default annotations: traefik.ingress.kubernetes.io/router.entrypoints: web spec: rules: - http: paths: - path: /node pathType: Prefix backend: service: name: nodejs-demo port: number: 80