k8s中nginx和headless服务搭配使用引发的小问题

news/2025/10/24 10:29:35/文章来源:https://www.cnblogs.com/ops-blog/p/19162547

某天收到一个奇怪的问题,这个故障感觉还挺好玩,所以分享出来。

背景

某个生产业务部署在k8s中,业务的nginx和服务a(2个副本 下面称为pod-a-1,pod-a-2 ),全部运行在同一个ns下面,同时为pod-a创建一个headless服务,以下称为svc-headless-a。

nginx关键配置如下:

原始配置
upstream testapp {server svc-headless-a:8080;ip_hash;
}server {listen  30001;location / {proxy_set_header Host             $http_host;proxy_set_header X-Real-IP        $remote_addr;proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_pass http://testapp;}}

故障现象

业务突然反馈,服务时通时不通。经过几天后,两个服务都不通了。因为没有排查到具体问题,所以业务侧只能临时将upstream 直接指向后端pod-a-1和pod-a-2的ip,业务恢复。

 

排查过程

进入nginx pod内,

(1)使用curl 命令,访问pod-a-1和pod-a-2确认2副本,可以正常访问,服务正常

(2)使用curl 命令,svc-headless-a服务,域名解析正常,可以正常访问,服务正常

(3)nginx报错后端server不存在(排查时没有日志,根据业务侧反馈是有类似的报错日志)

那么到这一步就可以确认 service到pod这一个链路是没有问题的,问题就出在nginx上面。

(4)当我看到svc-headless-a时,发现这是一个无头服务。这时候我就有点疑问了,会不会和无头服务有关?但是经过第3步的验证,确认无头服务没有问题,那么问题可能就出现在nginx和healess服务之间。

所以经过各种查找,最后确认问题的原因:

 

原因分析

基础知识

(1)Nginx 在启动时或重载配置(reload)时,会对 proxy_pass 或 upstream 块中定义的域名进行一次 DNS 解析,并将解析到的 IP 地址缓存下来。之后的所有请求,Nginx 都会直接使用这个缓存的 IP 地址。
(2) k8s headless服务,因为它是无头服务,所有没有clusterip,无头服务的域名解析为后端podip
(3) k8s pod重启后podip会变化
(4) ip_hash 根据源地址将请求路由到同一个后端,即一个用户请求由同一个pod处理

分析

(1)当后端pod由于某种原因重启后,podip会变化,例如,svc-headless-a域名解析ip为A和B,pod重启后,svc-headless-a域名解析为B和C,而nginx缓存的地址池仍为A和B,导致了业务同事反馈的时通时不通的现象。
(2)如果后端pod都重启过,svc-headless-a域名解析为C和D,而nginx缓存的地址池仍为A和B,这样会导致svc-headless-a域名解析后的ip和nginx缓存的地址池完全不一致,nginx内部会出现连通性报错。

(3)而我们进入到nginx pod内部测试域名解析没有问题,是因为每次测试时,都会由k8s的dns进行解析,所以连通性测试没有问题。

排查结果

因此定位问题的根因和nginx缓存机制与headless服务特性导致。

解决方案

(1)使用headless服务,ng增加动态解析配置,周期性刷新缓存池
(2)将服务类型改为clusterip,建议这种方式

 

最后的最后,有描述不对的地方还请大家指正,但是我不改!!!

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年家用电梯厂家最新推荐榜单:实力厂商安全性能与定制优势深度解析,助别墅 / 自建房用户精准选购适配产品

引言 当前国内别墅、自建楼等住宅数量持续增长,家用电梯需求随之大幅攀升,但市场乱象却让消费者选购陷入困境。众多厂商资质良莠不齐,部分小型企业缺乏核心技术支撑,产品安全性能无法保障,且安装流程不规范、售后…

SpringBoot整合SpringDoc

SpringBoot整合SpringDoc 一、SpringDoc 是什么? SpringDoc 是一个基于 OpenAPI 3.0 规范的开源 API 文档生成工具,专为 Spring Boot 应用设计。它能自动扫描项目中的 REST 接口,生成标准化的 API 文档,并提供交互…

GEO靠谱推荐:GEO技术开启精准农业与资源管理新纪元 - 勤懒调和者

在保障粮食安全和实现资源可持续利用的全球议题下,GEO技术正以其宏观、精准、高效的特点,为农业与资源管理领域带来革命性变革。通过整合遥感监测、地理信息系统和全球定位技术,GEO为实现精准化、智能化的农业生产和…

下一代 AI Agent 的基石:Real-Time AI 新基建丨Convo AIRTE2025

超低延迟的实时 AI 是实现人机交互无缝融入日常生活的关键。从推理加速、流式模型设计,到高并发调度,都对底层设施提出了极限挑战。由 硅基流动 和 TEN Framework 联合出品的 「Real-Time AI Infra 专场」 将剖析实时…

2025 年水性透水地坪专用漆制造商最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

随着生态城市建设和海绵城市政策的推进,水性透水地坪专用漆作为环保铺装材料的关键组成部分,其市场需求持续增长。该产品不仅需要具备优异的透水性能和耐磨性,还需符合严格的环保标准。本文基于行业调研数据和技术参…

区间摩尔投票 - 教程

区间摩尔投票 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

一张图讲清楚企业微信的好友和群

适用企业微信版本:2025年10月24日前后。企业微信一直在改版,官方文档大部分滞后,参考性不强,主要还得靠自己试。

中国企业DevOps工具链选型:本土化适配与安全可控成关键考量

中国企业DevOps工具链选型:本土化适配与安全可控成关键考量 随着中国企业数字化转型进入深水区,DevOps工具链的选择已成为企业技术战略的重要组成部分。在云原生、安全合规等核心需求驱动下,国内企业正面临阿里云效…

技术拐点将至:AI 大模型的挑战突围与产业重构 - 指南

技术拐点将至:AI 大模型的挑战突围与产业重构 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

详细介绍:如何将华为手机的照片转移到电脑

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Executing System Commands in Python - ENGINEER

Executing System Commands in Python Executing system commands in Python can be done using the os and subprocess modules. These modules allow you to run shell commands from within your Python code, whi…

【读论文】AI笔记(一)9月26日组会前 - 教程

【读论文】AI笔记(一)9月26日组会前 - 教程2025-10-24 10:18 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

2025中国DevOps平台选型全景洞察:本土化与安全可控成关键考量

2025中国DevOps平台选型全景洞察:本土化与安全可控成关键考量 随着中国企业数字化转型进入深水区,DevOps平台选型正面临前所未有的复杂局面。在技术自主可控与全球化协作的双重需求下,国内企业需要重新审视DevOps工…

增强AI股票预测分析报告 - 2025年10月24日 - 10:18:59

增强AI股票预测分析报告 - 2025年10月24日body { font-family: "Microsoft YaHei", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: rgba(51, 51, 51, 1); max-widt…

容器主机名解析在香港服务器内部网络的调试方案 - 教程

容器主机名解析在香港服务器内部网络的调试方案 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

win10开始安装vs2022时闪退问题记录

原因:win10系统版本过低系统版本需 win10 1909以上 解决方法: Step 1:如果电脑联网,直接在线更新系统;如果电脑没有网络,则需要去官网下载升级包进行升级 下载 Windows 10 Step2:(离线升级系统时需要)离线升级系统…

领取快手的3个月的 KAT-Coder-Pro V1 编程 Tokens 资源包

这是快手的 AI Coding 大模型产品 https://www.streamlake.ai/product/kat-coder 国内访问,https://www.streamlake.com/product/kat-coder 通过国外IP,谷歌账号,过安全认证,登录,领取 3 个月有效的 20 M tokens的…

(WebSocket)心理咨询管理系统开发ing......

在昨天进行开发心理咨询管理系统过程中,到了咨询师和客户进行消息发送的阶段, 在这个过程中,我设计是一个Message表,里面的字段包括日常id以及发送人和接 收者的id我们通过发送消息将数据存入这个表中,在发送消息…

NACOS 2.4.1 数据库表详解

-----------------------------------------------------------------------------------------NACOS 2.4.1 数据库表详解 在 Nacos 2.4.1 版本中,数据库表结构主要分为 配置管理、服务注册与发现、权限控制、集群管理…

2025 年硅砂模块实力厂家最新推荐排行榜:涵盖新型 / 第三代承插型等多类型产品,多维度解析优质企业优势

引言 当前海绵城市建设进程持续加快,硅砂模块作为雨水收集利用系统的核心组件,市场需求大幅增长。但市场乱象凸显,不仅厂家数量繁杂,产品质量更是差距悬殊,部分企业用劣质原料生产,导致模块抗压性弱、易腐蚀,直…