详情页标题前

腾讯云容器服务工作负载平滑升级同尘科技

详情页1

解决了服务单点故障和驱逐节点时导致的可用性降低问题后,我们还需要考虑一种可能导致可用性降低的场景,那就是滚动更新。为什么服务正常滚动更新也可能影响服务的可用性呢?可能存在以下原因。

业务有损滚动更新

假如集群内存在服务间调用:

腾讯云容器服务工作负载平滑升级同尘科技

当 server 端发生滚动更新时:

腾讯云容器服务工作负载平滑升级同尘科技


可能发生以下两种情况:情况1:旧的副本很快销毁,而 client 所在节点 kube-proxy 还没更新完转发规则,仍然将新连接调度给旧副本,造成连接异常,可能会报 “connection refused”(进程停止过程中,不再接受新请求)或 “no route to host”(容器已经完全销毁,网卡和 IP 已不存在)。情况2:新副本启动,client 所在节点 kube-proxy 很快 watch 到了新副本,更新了转发规则,并将新连接调度给新副本,但容器内的进程启动很慢(如 Tomcat 这种 java 进程),还在启动过程中,端口还未监听,无法处理连接,也造成连接异常,通常会报 “connection refused” 的错误。

最佳实践

针对情况1,可以给 container 加 preStop,让 Pod 真正销毁前先 sleep 等待一段时间,等待 client 所在节点 kube-proxy 更新转发规则,然后再真正去销毁容器。这样能保证在 Pod Terminating 后还能继续正常运行一段时间,这段时间如果因为 client 侧的转发规则更新不及时导致还有新请求转发过来,Pod 还是可以正常处理请求,避免了连接异常的发生。听起来感觉有点不优雅,但实际效果还是比较好的,分布式的世界没有银弹,我们只能尽量在当前设计现状下找到并实践能够解决问题的最优解。针对情况2,可以给 container 加 ReadinessProbe(就绪检查),让容器内进程真正启动完成后才更新 Service 的 Endpoint,然后 client 所在节点 kube-proxy 再更新转发规则,让流量进来。这样能够保证等 Pod 完全就绪了才会被转发流量,也就避免了连接异常的发生。
yaml 示例:

      readinessProbe:        httpGet:          path: /healthz          port: 80          httpHeaders:          - name: X-Custom-Header            value: Awesome        initialDelaySeconds: 10        timeoutSeconds: 1      lifecycle:        preStop:          exec:            command: ["/bin/bash", "-c", "sleep 10"]



容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148400.html

(0)
上一篇 2023年12月9日 下午12:55
下一篇 2023年12月9日 下午12:55
详情页2

相关推荐

  • 腾讯云云直播推流接入详情

    通过阅读本文,您可以了解到如何在自己的程序中通过集成 SDK 或插件,实现云直播推流功能。 准备工作 开通 腾讯云直播服务。选择 域名管理,单击添加域名添加您已备案的推流域名,详细请参见 添加自有域名。 进入云直播控制台的直播工具箱 > 地址生成器 生成推流地址,详情请参见 地址生成器。接下来根据业务场景使用以下方式在自己的业务中实现直播推流。 Na…

    2023年12月9日
  • 数据传输DTS两个rds都是5.7,为啥报这个错?-云小二-阿里云

    数据传输DTS两个rds都是5.7,为啥报这个错?MySQL的InnoDB引擎表索引字段长度的限制为767字节?【UID】:255255287662589092【Job ID】:u12126q5b5ro000【任务名称】:shop_sync【所有报错信息】: CODE:DTS-RETRY-ERR-0142 错误概述:MySQL的InnoDB引擎表索引字段长度…

    2023年12月14日
  • 阿里云负载均衡API概览-云淘科技

    本产品(网络型负载均衡/2022-04-30)的OpenAPI采用RPC签名风格,签名细节参见签名机制说明。我们已经为开发者封装了常见编程语言的SDK,开发者可通过下载SDK直接调用本产品OpenAPI而无需关心技术细节。如果现有SDK不能满足使用需求,可通过签名机制进行自签名对接。由于自签名细节非常复杂,需花费 5个工作日左右。因此建议加入我们的服务钉钉群…

    阿里云负载均衡 2023年12月10日
  • 腾讯云云点播图片审核

    云点播图片审核借助于 AI 审核出违规信息。审核的结果包括审核评分、审核建议。根据“审核建议”,媒体管理者可以决定图片是否允许公开,有效规避违规图片带来的法律风险和品牌伤害。云点播可以对画面图像、画面中的文本两种对象进行审核,审核标签包括色情、暴力、不适宜的信息、违法、谩骂、广告等。 对象 审核标签 画面图像 色情(Porn)  暴力(Terror)  …

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云负载均衡创建 Anycast 负载均衡实例

    Anycast CLB 是支持多地动态加速的负载均衡服务,Anycast CLB 的 VIP 会发布在多个地域,客户端接入最近的 POP 接入点,通过腾讯云数据中心高速互联网转发到云服务器上。nAnycast CLB 能实现网络传输的质量优化和多入口就近接入,减少网络传输的抖动、丢包,最终提升云上应用的服务质量,扩大服务范围,精简后端部署。说明:此功能处于内…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。