apiVersion: apps/v1 kind: Deployment metadata: name: kt-template-online-api namespace: kt-prod labels: app: kt-template-online-api spec: replicas: 1 revisionHistoryLimit: 5 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: app: kt-template-online-api template: metadata: labels: app: kt-template-online-api spec: containers: - name: api image: k3d-kt-registry.localhost:5000/kt-template-online-api:latest imagePullPolicy: IfNotPresent ports: - name: http containerPort: 48085 env: - name: NODE_ENV value: production # Jenkins 每次发布会从 Agent 私有 .env.production 重建这个 Secret。 envFrom: - secretRef: name: kt-template-online-api-env readinessProbe: tcpSocket: port: 48085 initialDelaySeconds: 8 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 6 livenessProbe: tcpSocket: port: 48085 initialDelaySeconds: 30 periodSeconds: 20 timeoutSeconds: 3 failureThreshold: 3 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 1000m memory: 768Mi --- apiVersion: v1 kind: Service metadata: name: kt-template-online-api namespace: kt-prod labels: app: kt-template-online-api spec: type: NodePort selector: app: kt-template-online-api ports: - name: http port: 48085 targetPort: 48085 nodePort: 30085