K8S pod无损上下线

在最近的K8s服务上线过程中,我发现了一些问题,更具体的说,我在使用阿里云k8s的过程中注意到:会出现slb短时RT增加,Pod部署初期就达到了扩容上限,并且开始大量的扩容,这无疑占用了大量的k8s资源。实际上,大部分情况下,pod只需要2个,但结果却扩容到了几十个,这是一个问题。

为了解决这问题,我查阅了一些相关文档并整理出了一些解决方法。其中,更新应用时,如何实现 K8s 零中断滚动更新?一文详析在 K8s 中更新应用时为何会发生服务中断以及如何避免?icon-default.png?t=N7T8https://mp.weixin.qq.com/s/ceqNDxOs-m-iXj980kNQXw这篇文档给了我许多启发。

首先,对于pod来说,新建和删除是自然的,新建pod的时候需要保证服务能够完全启动并可以正常响应请求,然后就可以将pod所在的node挂到service上了。这里,我们只需要配置了就绪检查就能保证pod的可用。

然后就是删除pod的操作,这里面可能会出现pod收到SIGTERM信号停止工作后,没能从EndPoints中移除。这就会导致service把正常的请求跳转到已经停止工作的pod上。对于这种情况,我建议我们可以为pod设置一个preStop Hook,让 Pod 在收到 SIGTERM 时,先sleep一段时间,而不是立刻停止工作。这样就能保证从SLB转发过来的流量还可以继续被pod处理。

 当然还有一种时就是pod已经是termintaing状态,但是 iptables/ipvs条目清理和service移除后端node这两个操作之间存在时间差,虽然他们是同时进行的,但是对于大量请求,总会有部分请求在这细小的时间差之间成为漏网之鱼。对于这种情况,咱们可以分开说,首先是Cluster 模式下 kube-proxy会将所有业务 Pod 写入 Node 的 iptables/ipvs 中,如果当前 Node 没有业务 pod,则该请求会被转发给其他 Node,因此不会存在服务中断(总之目前来看使用cluster模式可以忽略这种中断可能性),还有一种就是Local 模式下的kube-proxy,这种模式会导致请求中断,中断原因主要与cluster和local这两种外部流量策略有关,详细的可以参考阿里的这个文档:

使用Service对外暴露应用_容器服务 Kubernetes 版 ACK-阿里云帮助中心 (aliyun.com)

最后,我们还遇到了在上线的时候,服务启动一开始,发现pod所使用的资源很高。这就导致了pod数量的扩容,对于这类问题,我们其实也可以解决。主要的方法就是在服务上线的时候,设置监控不去读取新启动的pod的资源使用情况。   我从两个维度进行了尝试,包括集群维度和工作负载维度。

集群维度

在集群维度,我们可以通过升级ACK提供的最新版metrics-server,并在其启动参数上开启开关防止多弹,这是全局开关,设置后对集群内所有相关负载生效。

这是全局开关,设置后对集群内所有相关负载生效。

##在metrics-server的启动参数中加入以下选项。
--enable-hpa-rolling-update-skipped=true  

工作负载维度:

而在工作负载维度上,我们有两种方法:

方法一:通过在指定工作负载的模板中添加以下Annotation,可以在滚动发布时临时暂停HPA的判断生效。

##工作负载的spec.template.metadata.annotations加入Annotation,滚动发布时临时暂停HPA的判断生效。
HPARollingUpdateSkipped: "true"

方法二:通过在指定工作负载的模板中添加以下Annotation,可以在应用发布开始阶段跳过设定的预热时间段。

##工作负载的spec.template.metadata.annotations加入Annotation,在应用发布开始阶段跳过设定的预热的时间段。
HPAScaleUpDelay: 3m # 3m仅为示例,具体时间段请按需设置

 详细的可以参考阿里云的文档:容器服务ACK弹性伸缩的常见问题及解决办法_容器服务 Kubernetes 版 ACK-阿里云帮助中心

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高压放大器应用场景分析

高压放大器是一种重要的电子设备,其功能是将输入信号的电压幅度放大,以满足不同领域对于信号处理和放大的需求。下面安泰电子将对高压放大器在各个应用场景中的重要性进行深入分析,帮助大家更好地理解和使用高压放大器。 一、音频领域 音乐制…

每日一练2023.12.7—— 情人节【PTA】

题目链接:L1-035 情人节 题目要求: 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出…

《opencv实用探索·十三》opencv之canny边缘检测

1、canny边缘检测应用场景 目标检测: Canny边缘检测可以用于检测图像中的目标边缘,从而帮助识别和定位物体。在目标检测的流程中,边缘通常是检测的第一步。 图像分割: Canny边缘检测可用于图像分割,即将图像划分为具有…

css 元素前后添加图标(::before 和 ::after 的妙用)

<template><div class"container"><div class"label">猜你喜欢</div></div> </template><style lang"scss" scoped> .label {display: flex;&::before,&::after {content: "";widt…

Python小案例:while练习题

目录 while练习题&#xff1a;1、存款多少年能翻倍2.小球坠落长度计算3、猴子吃桃4、计算&#xff1a;1-23-4...99-100的和 while练习题&#xff1a; 1、存款多少年能翻倍 1万本金&#xff0c;年利息&#xff1a;0.0325&#xff0c;求连本带息多少年能翻倍 解析&#xff1a;…

智能化与数字化:开展企业合规工作的新价值与方法

在现代商业环境中&#xff0c;企业合规成为了一项至关重要的任务。随着法规和监管标准的增加以及对企业道德和责任的更高要求&#xff0c;开展合规工作不仅有助于保护企业的声誉和利益&#xff0c;还能提升企业的竞争力和可持续发展。本文将探讨通过智能化和数字化手段开展合规…

领先英伟达的GPU1.6倍性能,AMD发布最强AI芯片Instinct MI300

AMD发布最强AI芯片 Instinct MI300X AI 加速器和 Instinct MI300A 数据中心 APU&#xff0c;声称比 Nvidia 的竞争 GPU 领先 1.6 倍。与 Nvidia 竞争产品相比&#xff0c;在以下几个关键方面展示了显著优势&#xff1a;配置方面 内存容量&#xff1a;MI300X&#xff1a;拥有 1…

系列学习前端之第 2 章:一文精通 HTML

全套学习 HTMLCSSJavaScript 代码和笔记请下载网盘的资料&#xff1a; 链接: https://pan.baidu.com/s/1-vY2anBdrsBSwDZfALZ6FQ 提取码: 6666 HTML 全称&#xff1a;HyperText Markup Language&#xff08;超文本标记语言&#xff09; 1、 HTML 标签 1. 标签又称元素&#…

系列学习前端之第 3 章:一文精通 css

全套学习 HTMLCSSJavaScript 代码和笔记请下载网盘的资料&#xff1a; 链接: 百度网盘 请输入提取码 提取码: 6666 一、CSS基础 1. CSS简介 CSS 的全称为&#xff1a;层叠样式表 ( Cascading Style Sheets ) 。 CSS 也是一种标记语言&#xff0c;用于给 HTML 结构设…

欧洲原料药认证注册信息查询方法-CEP数据库

欧盟是全球最大、最重要的药品国际市场之一&#xff0c;药品需求市场非常庞大。中国药企要进入欧盟市场&#xff0c;必须获得CEP认证。 CEP认证与COS认证等同&#xff0c;均代表欧洲药典适应性证书 COS&#xff08;Certificate of Suitability&#xff09;是指欧洲药典适用性认…

NVRAM相关

1. Modem NVRAM四个分区 nvdata&#xff1a;手机运行过程中&#xff0c;使用(读写)的NVRAM(除了存在protect_f和protect_s中的NVRAM)都是该分区的nvram文件。存储着普通NVRAM数据、 IMEI、barcode、Calibration数据等。对应的modem path是Z:\NVRAM。NVRAM目录下有CALIBRAT、NVD…

window环境下使用nginx部署多个项目(详细)

在官网下载相应版本的nginx安装包&#xff0c;链接如下&#xff1a;nginx: download 下载压缩包之后找一个目录解压就行了&#xff0c;我这里放在 D:\Program Files (x86) 目录下。 可以直接双击nginx.exe 本地启动nginx服务器。但是更推荐使用命令行&#xff1a;在这个目录下c…

「神印王座」萝莉女神小六打劫,白送10万功勋点,王原原恋人登场

Hello,小伙伴们&#xff0c;我是拾荒君。 备受瞩目的《神印王座》第84集终于更新了。更新后&#xff0c;拾荒君也是迫不及待地观看了一番。在本集中&#xff0c;龙皓晨率领的光之晨曦猎魔团在成功完成一项王级任务后&#xff0c;每个成员都获得了丰厚的功勋点。然而&#xff0…

[⑦ADRV902x]: JESD204学习笔记

前言 JESD204B/C基于SERDES&#xff08;SERialization/DESerialization&#xff09;技术&#xff0c;也就是串化和解串&#xff0c;在发送端将多位并行的数据转换为1 bit的串行数据&#xff0c;在接收端将串行数据恢复成原始的并行数据。 在JESD204接口出现以前&#xff0c;数…

Java程序员,你掌握了多线程吗?【文末送书】

目录 摘要 01、多线程对于Java的意义 02、为什么Java工程师必须掌握多线程 03、Java多线程使用方式 04、如何学好Java多线程 参与方式&#x1f947; 推荐一个人工智能学习网站 https://www.captainbed.cn/bear 摘要 互联网的每一个角落&#xff0c;无论是大型电商平台的…

亚马逊自养号测评和真人测评的区别,优劣剖析

大家都知道亚马逊的review对产品listing曝光和流量是有很大影响&#xff0c;但是亚马逊的review又不是那么容易获取的&#xff0c;再加上亚马逊平台风控的不断严苛&#xff0c;所以卖家们想尽办法打造爆款listing是每个亚马逊卖家共同的目标&#xff0c;尤其是当旺季到来时&…

0基础学习云计算难吗?

很多人经常会问云计算是什么&#xff1f;云计算能干什么&#xff1f;学习云计算能做什么工作&#xff1f;其实我们有很多人并不知道云计算是什么&#xff0c;小知今天来给大家讲讲学习云计算能做什么。 中国的云计算行业目前正处于快速发展阶段&#xff0c;随着互联网和数字化…

部署springboot项目到GKE(Google Kubernetes Engine)

GKE是 Google Cloud Platform 提供的托管 Kubernetes 服务&#xff0c;允许用户在 Google 的基础设施上部署、管理和扩展容器。本文介绍如何部署一个简单的springboot项目到GKE. 本文使用podman. 如果你用的是docker, 只需要把本文中所有命令中的podman替换成docker即可 非H…

工作中的疑难杂症(编译ninja failed with: exit status 137)

问题&#xff1a;先来看报错提示 起初出现这个问题我就搜索了一下&#xff0c;大家都说。 此问题是因为asop/build/soong/java/config/config.go文件内定义了pctx.StaticVariable("JavacHeapSize", "2048M")&#xff0c;javaheap的大小与ubuntu18系统的内…

网络通信的流程,浏览器地址?

1.没有交换机的通信 在一个机房内,有两台电脑相互需要通信 假设现在有三台电脑: 随着电脑的增加,线的数量也在增加,因此显得很臃肿&#xff0c;次数交换机诞生&#xff0c;很好的解决了这一方面&#xff0c; 交换机不需要进行多条线的连接: 通过给设备分配,ip地址来实现局域网…