diff --git a/deployment-temp.yml b/deployment-temp.yml index f745ac5..d5b4848 100644 --- a/deployment-temp.yml +++ b/deployment-temp.yml @@ -2,17 +2,17 @@ apiVersion: apps/v1 kind: Deployment metadata: labels: - app: $APP_NAME + app: $APP_NAME # 标签 用于选择器 version: $APP_TAG - name: $APP_NAME - namespace: default #一定要写名称空间 + name: $APP_NAME # Deployment名称 + namespace: default # 一定要写名称空间 spec: progressDeadlineSeconds: 600 - replicas: 1 + replicas: 1 # 副本数 1个 pod revisionHistoryLimit: 2 selector: matchLabels: - app: $APP_NAME + app: $APP_NAME # 选择器 匹配 pod 标签 strategy: rollingUpdate: maxSurge: 50% @@ -21,31 +21,62 @@ spec: template: metadata: labels: - app: $APP_NAME + app: $APP_NAME # pod 标签 version: $APP_TAG spec: imagePullSecrets: - - name: dockerhub-id #提前在项目下配置访问阿里云的账号密码 + - name: dockerhub-id #提前在项目下配置访问私有镜像仓库的账号密码 containers: - - image: $REGISTRY/$IMAGE_NAMESPACE/$IMAGE_NAME:$APP_TAG - name: $APP_NAME + - name: $APP_NAME # 容器名称 + image: $REGISTRY/$IMAGE_NAMESPACE/$IMAGE_NAME:$APP_TAG # 镜像地址 imagePullPolicy: Always + # 存活探针配置 livenessProbe: # 存活探针:失败意味着应用彻底挂了,需要重启来恢复 httpGet: - path: /test - port: 13145 - initialDelaySeconds: 10 # 延迟xx秒开始执行 - periodSeconds: 15 # 每隔15秒执行一次 - timeoutSeconds: 10 # 10秒未返回结果则超时 - failureThreshold: 10 # 探测失败后的重试次数,当达到这个次数后就判定结果为失败 - # successThreshold: 5 + path: /actuator/health/liveness # 探针路径 + port: 13145 # 探针端口 + scheme: HTTP # 协议 + initialDelaySeconds: 20 # 容器启动后延迟 xx秒开始检查 + periodSeconds: 10 # 每隔 15秒检查一次 + timeoutSeconds: 5 # 10秒未返回结果则超时 +# successThreshold: 1 # 成功 1 次就认定为健康 + failureThreshold: 3 # 探测失败后的重试次数,当达到这个次数后就判定结果为失败,重启容器 + #就绪探针配置 + readinessProbe: + httpGet: + path: /actuator/health/readiness # 探针路径 + port: 13145 # 探针端口 + scheme: HTTP # 协议 + initialDelaySeconds: 10 # 容器启动后等 30 秒再开始检查 + periodSeconds: 5 # 每 5 秒检查一次,比存活探针频繁 + timeoutSeconds: 5 # 超时时间 3 秒 +# successThreshold: 1 # 成功 1 次就认为就绪 + failureThreshold: 2 # 失败 3 次才认为未就绪,会从负载均衡摘掉 + # 启动探针配置(可选,启动慢的应用必须配) +# startupProbe: +# httpGet: +# path: /actuator/health/liveness # 用存活探针的路径 +# port: 13145 +# scheme: HTTP +# initialDelaySeconds: 0 # 立即开始检查 +# periodSeconds: 5 # 每 5 秒检查一次 +# timeoutSeconds: 3 # 超时时间 3 秒 +# successThreshold: 1 # 成功 1 次就认为启动完成 +# failureThreshold: 30 # 失败 30 次(150 秒)才认为启动失败 + # 生命周期钩子,优雅关闭 + lifecycle: + preStop: + sleep: + seconds: 10 #容器停止前先等 10 秒,让流量切走 ports: - - containerPort: 13145 + - containerPort: 13145 # 应用端口 protocol: TCP + # 资源限制 resources: limits: - cpu: 99m - memory: 65Mi + cpu: 99m # 最多 0.1核 CPU + memory: 65Mi # 最多 65m 内存 + # 环境变量配置 env: - name: TZ value: "Asia/Shanghai" diff --git a/pom.xml b/pom.xml index e69f0f7..b36b86b 100644 --- a/pom.xml +++ b/pom.xml @@ -87,6 +87,11 @@ org.springframework.boot spring-boot-autoconfigure + + + org.springframework.boot + spring-boot-starter-actuator + dailylove diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 39489f6..1658aa4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -56,4 +56,25 @@ logging: level: com.bamanker.dailylove.service: debug #指定openfeign日志以什么级别监控哪个接口(可多个) -scanclass: false \ No newline at end of file +scanclass: false + +# Actuator 配置 +management: + # 端点配置 + endpoints: + web: + exposure: + # 暴露健康端点,生产环境要慎重,别把敏感信息暴露了 + include: health,info + # 健康端点配置 + endpoint: + health: + # 显示详细的健康信息,方便调试 + # 生产环境建议设为 when-authorized,需要认证才能看详情 + show-details: always + # 开启探针支持,这个必须设置 + probes: + enabled: true + # 在主端口上也暴露探针路径 + # 这样 K8s 探针可以直接访问应用端口,不用单独配置 management 端口 + add-additional-paths: true \ No newline at end of file