在 k8s 中配置 Spring Cloud 服务 (Eureka 客户端) 优雅下线

本贴最后更新于 1614 天前,其中的信息可能已经天翻地覆

修改 application.yml 暴露接口

management: endpoints: web: exposure: include: "*"

client 强制下线接口:

curl -X "POST" "http://localhost:8888/actuator/service-registry?status=DOWN" -H "Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"

Eureka Server 强制下线接口:

PUT /eureka/apps/${appId}/${ip:port}/status?value=OUT_OF_SERVICE

配置 preStop

lifecycle: preStop: exec: command: - bash - -c - 'curl -X POST --data DOWN http://127.0.0.1:8888/service-registry/instance-status -H "Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8";sleep 90'

同时指定一下优雅终止宽限期

terminationGracePeriodSeconds: 90

完整 demo:

apiVersion: apps/v1 kind: Deployment metadata: name: {PROJECT} namespace: {K8S_NAMESPACE} labels: app: {PROJECT} spec: replicas: {REPLICAS} selector: matchLabels: app: {PROJECT} template: metadata: labels: app: {PROJECT} spec: imagePullSecrets: - name: harbor-registry terminationGracePeriodSeconds: 90 volumes: - name: heap-dumps emptyDir: {} containers: - name: {PROJECT} image: {IMAGE_URL} imagePullPolicy: Always volumeMounts: - name: heap-dumps mountPath: /dumps command: ["java"] args: {ARGS} ports: - containerPort: 8888 env: - name: ENV value: {ENV} lifecycle: preStop: exec: command: - bash - -c - 'curl -X POST --data DOWN http://127.0.0.1:8888/service-registry/instance-status -H "Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8";sleep 90' # resources: # requests: # memory: "1Gi" # cpu: "500m" # limits: # memory: "1200Mi" # cpu: "500m" readinessProbe: httpGet: path: /actuator/health port: 8888 scheme: HTTP initialDelaySeconds: 10 timeoutSeconds: 2 periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: name: {PROJECT} namespace: {K8S_NAMESPACE} spec: type: NodePort ports: - port: 8888 protocol: TCP targetPort: 8888 selector: app: {PROJECT} --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: {ENV}-{PROJECT} namespace: {K8S_NAMESPACE} annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: {ENV}-{PROJECT}.intramirror.cn http: paths: - backend: serviceName: {PROJECT} servicePort: 8888 path: / pathType: ImplementationSpecific

【参考链接】
实用技巧:Spring Cloud 中,如何优雅下线微服务?
http://www.itmuch.com/spring-cloud-sum/how-to-unregister-service-in-eureka/
Spring Cloud 服务优雅下线
https://www.jianshu.com/p/1e628a74ac90
在 k8s 中使用 eureka 的几种姿势
https://gitee.com/sunshanpeng/blog/blob/master/%E5%9C%A8k8s%E4%B8%AD%E4%BD%BF%E7%94%A8eureka%E7%9A%84%E5%87%A0%E7%A7%8D%E5%A7%BF%E5%8A%BF.md
Kubernetes Pod Hook
https://i4t.com/4424.html
使用 k8s 部署 springcloud 解决三大问题
https://www.cnblogs.com/sanduzxcvbnm/p/13212718.html
Eureka 客户端下线的几种方式比较
https://blog.csdn.net/CSDN_WYL2016/article/details/107336260
https://www.cnblogs.com/sanduzxcvbnm/category/1580444.html
https://github.com/hellorocky/blog
https://horus-k.github.io/

  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    111 引用 • 54 回帖
  • Eureka
    22 引用 • 3 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    54 引用 • 25 回帖 • 7 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Word
    13 引用 • 40 回帖 • 1 关注
  • Excel
    31 引用 • 28 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 264 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    142 引用 • 209 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 494 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 225 回帖 • 137 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 22 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 649 关注
  • gRpc
    11 引用 • 9 回帖 • 82 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 30 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 483 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    409 引用 • 3578 回帖
  • Anytype
    3 引用 • 31 回帖 • 11 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    36 引用 • 155 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 147 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖 • 1 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 560 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 2 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 653 关注
  • 反馈

    Communication channel for makers and users.

    124 引用 • 928 回帖 • 259 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 1 关注
  • AWS
    11 引用 • 28 回帖 • 3 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 483 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    245 引用 • 1338 回帖 • 2 关注