Go 服务优雅停机:K8s 发 SIGTERM 后不是立刻消失

发布时间:2026/8/25 18:32:22

Go 服务优雅停机:K8s 发 SIGTERM 后不是立刻消失
Go 服务优雅停机K8s 发 SIGTERM 后不是立刻消失Go 服务部署在 K8s 后优雅停机经常被忽略。Pod 被滚动更新时会收到 SIGTERM如果服务没有停止接收新请求、等待进行中请求结束、关闭连接池就可能产生一批莫名其妙的 502 或处理中断。优雅停机不是形式主义它决定发布时用户是否被无辜打断。一、停机链路要清楚flowchart TD A[K8s SIGTERM] -- B[Stop Accepting] B -- C[Drain Requests] C -- D[Close Resources] D -- E[Exit]K8s 不会读心。应用收到信号后需要自己处理生命周期。二、Go HTTP Server 支持 Shutdownsrv : http.Server{Addr: :8080, Handler: router} go func() { if err : srv.ListenAndServe(); err ! http.ErrServerClosed { log.Fatal(err) } }() ctx, cancel : context.WithTimeout(context.Background(), 20*time.Second) defer cancel() _ srv.Shutdown(ctx)Shutdown会停止接收新连接并等待已有请求完成直到 context 超时。三、K8s 配置要配合terminationGracePeriodSeconds: 30 lifecycle: preStop: exec: command: [sh, -c, sleep 5]preStop 可以给负载均衡摘流量一点时间。具体配置要结合网关和服务发现机制测试。四、长请求要有上限如果请求可能跑几分钟停机就会拖很久。服务应该设置请求超时并对长任务异步化。shutdown_policy: max_request_time: 15s async_jobs: resumable force_exit_after: 30s优雅停机不是无限等待。超过窗口仍要退出否则发布会卡住。还要处理 readiness。收到 SIGTERM 后可以先让 readiness 失败让流量入口停止转发再等待已有请求完成。var shuttingDown atomic.Bool func readiness(w http.ResponseWriter, r *http.Request) { if shuttingDown.Load() { w.WriteHeader(http.StatusServiceUnavailable) return } w.WriteHeader(http.StatusOK) }这样服务不是一边准备退出一边继续接新请求。生命周期信号要和探针配合。五、总结Go 服务在 K8s 中要处理 SIGTERM、停止接收新请求、等待已有请求、关闭资源并与 terminationGracePeriod 和 preStop 配合。Pod 不是立刻消失但也不会永远等你。生命周期写清楚滚动发布才真的平滑。上线前可以做一次演练压测中滚动发布观察 5xx、请求耗时和连接关闭情况。优雅停机只有被验证过才不是纸面配置。

相关新闻

如何免费永久使用IDM:开源激活脚本的完整解决方案

如何免费永久使用IDM:开源激活脚本的完整解决方案

2026/8/22 2:34:32

如何免费永久使用IDM:开源激活脚本的完整解决方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 你是否厌倦了Internet Download Manager&#xff0…

如何轻松获取网页视频资源:开源媒体嗅探工具的完整指南

如何轻松获取网页视频资源:开源媒体嗅探工具的完整指南

2026/8/22 1:41:40

如何轻松获取网页视频资源:开源媒体嗅探工具的完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经在网上看到一个精彩的…

Adobe Downloader:macOS上一键获取Adobe全家桶的终极下载工具

Adobe Downloader:macOS上一键获取Adobe全家桶的终极下载工具

2026/8/25 2:53:47

Adobe Downloader:macOS上一键获取Adobe全家桶的终极下载工具 【免费下载链接】Adobe-Downloader macOS Adobe apps download & installer 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-Downloader 还在为获取Adobe软件而烦恼吗?Adobe…

OpenClaw 桌面端部署实操|零基础可视化安装完整手册

OpenClaw 桌面端部署实操|零基础可视化安装完整手册

2026/8/25 21:35:39

📖前言 本文专为 Windows 系统用户设计,旨在为您详细梳理 OpenClaw 的标准化部署流程。整个安装过程无需输入任何命令行,采用纯可视化、向导式的操作方式,即便是零基础用户也能轻松完成完整部署。文中还汇总了高频故障的配套解决…

网络工程师实战指南:从路由器、交换机到防火墙的排错思维框架

网络工程师实战指南:从路由器、交换机到防火墙的排错思维框架

2026/8/25 21:35:39

上周帮一个刚转行做运维的朋友排查网络问题,他对着交换机面板上闪烁的指示灯和命令行里一堆show命令的输出,完全不知道从哪里下手。他问我:“这些协议、配置命令我都背过,但为什么设备一报警,我就感觉学的和实际用的完…

LangChain介绍和安装说明

LangChain介绍和安装说明

2026/8/25 21:35:39

LangChain / LangGraph类别:开源智能体框架 | 更新时间:2026-071. 基础信息项目内容开发商/维护方LangChain Inc.是否开源是开源协议MIT官方网站https://www.langchain.comGitHub 地址https://github.com/langchain-ai/langchain核心语言Pyth…

JAMA 2025可降解ASD多中心研究:合肥高新心血管病医院的临床角色与技术实践

JAMA 2025可降解ASD多中心研究:合肥高新心血管病医院的临床角色与技术实践

2026/8/25 21:35:39

一、研究背景MemoSorb可降解封堵器多中心临床研究,发表于《JAMA》(2025年10月),是一项多中心随机对照试验,比较可降解封堵器与金属封堵器在ASD患者中的安全性和有效性。二、核心数据指标可降解组金属对照组6个月封堵成…

Oracle DDL与特殊事务:当CREATE TABLE按下回车后,内核到底在忙什么?

Oracle DDL与特殊事务:当CREATE TABLE按下回车后,内核到底在忙什么?

2026/8/25 21:35:39

前言干了这么多年 DBA,我发现一个挺有意思的现象:绝大多数人对 Oracle 事务的理解,都停留在 insert / update / delete 加 commit / rollback 这个层面。顶多再知道个 savepoint,能说出"DDL 会自动提交"就已经算不错的了…

CorelDraw中*.cpg文件的加密实战指南

CorelDraw中*.cpg文件的加密实战指南

2026/8/25 21:25:38

简介: CorelDraw 软件是一款使用非常广泛的矢量图形设计软件。为了满足个性化设计和流程自动化需求,该软件支持开发者制作并加载扩展名为 .cpg 的插件。实际上,CorelDraw 的 .cpg 插件在底层是标准的 Windows 动态链接库(DLL&…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…