首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在kubernetes中滚动更新期间,如果用户/客户端命中,那么他们将获得什么信息?更新信息还是以前的信息?

在 Kubernetes 中进行滚动更新期间,如果用户/客户端命中,他们将获得以前的信息。

滚动更新是指在更新应用程序时,逐步替换旧的容器实例为新的容器实例,以确保应用程序的高可用性和零停机时间。在滚动更新期间,Kubernetes 会逐步将新的容器实例添加到服务中,并逐步从服务中删除旧的容器实例。

当用户/客户端发送请求时,请求会被路由到服务中的某个容器实例。在滚动更新期间,如果用户/客户端命中的是旧的容器实例,他们将获得以前的信息,即旧版本的应用程序响应。这是因为滚动更新过程中,旧的容器实例仍然在运行,直到新的容器实例完全替换旧的容器实例。

需要注意的是,滚动更新过程中,Kubernetes 会根据配置的策略来控制新旧容器实例的比例和替换速度,以确保应用程序的稳定性和可用性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kubernetes 零宕机滚动更新

使用过程我们还可以指定 Kubernetes 更新期间如何处理多个副本切换方式,比如我们有一个3副本应用,更新过程是否应该立即创建这3个新 Pod 并等待他们全部启动,或者杀掉一个之外所有旧...如果我们进行滚动更新应用过程启动测试,则可能会看到一些请求无法连接情况: ?...我们会看到滚动更新过程行为可能会有所不同,具体还是需要取决于测试配置参数,和通过 Ingress 连接相比,从集群内部连接到服务客户端可能不会遇到那么失败连接。...但是 Kubernetes Ingress 连接到实例方式稍有不同,这就是为什么客户端通过 Ingresss 连接到应用程序时候,我们会在滚动更新过程查看到不同宕机行为。...现在,当我们去查看滚动更新期间 Pod 行为时,我们看到正在终止 Pod 处于 Terminating 状态,但是等待时间结束之前不会关闭如果我们使用 Fortio 重新测试下,则会看到零失败请求理想行为

1.5K21

Kubernetes零宕机滚动更新

使用过程我们还可以指定 Kubernetes 更新期间如何处理多个副本切换方式,比如我们有一个3副本应用,更新过程是否应该立即创建这3个新 Pod 并等待他们全部启动,或者杀掉一个之外所有旧...如果我们进行滚动更新应用过程启动测试,则可能会看到一些请求无法连接情况: 通过Ingres 代理测试 fortio load -c 8 -qps 1000 -t 60s "https://nginx...但是 Kubernetes Ingress 连接到实例方式稍有不同,这就是为什么客户端通过 Ingresss 连接到应用程序时候,我们会在滚动更新过程查看到不同宕机行为。...现在,当我们去查看滚动更新期间 Pod 行为时,我们看到正在终止 Pod 处于 Terminating 状态,但是等待时间结束之前不会关闭如果我们使用 Fortio 重新测试下,则会看到零失败请求理想行为...而且上面的方式是只适用于短连接,对于类似于 websocket 这种长连接应用需要做滚动更新的话目前还没有找到一个很好解决方案,有的团队是长连接转换成短连接来进行处理,我这边还是应用层面来做支持

59840
  • Kubernetes Deployment控制器

    什么是控制器 控制器种类 Deployment作用 资源定义 PodTemplate pod-temaplte-hash标签 滚动更新 更新回退 水平扩展/收缩 更新暂停/恢复 更新失败原因 什么是控制器...控制器是指可以对Pod进行管理一些工作负载,他们可以按照用户期待来完成一系列Pod操作。...kubectl describe deployment nginx-deployment $ kubectl get pods -o wide Deployment简要信息,主要有以下信息...$ kubectl describe deployments nginx-deployment 从上图可以看出,Kubernetes进行更新时并不是粗暴原来ReplicaSet直接下线,创建新...实际生产环境,我们可以能不仅需要回退到上一个版本,有可能需要回退到上上个版本或者特定版本,Kubernetes会为我们保存一些更新记录,此时这些记录就派上用场,我们可以通过这些记录可以回滚到特定版本

    65620

    【重识云原生】第六章容器基础6.4.9.5节——端点切片(Endpoint Slices)

    某些情况下,它会将 Endpoint 资源限制为 5000 个 Pod IP。对于大多数用户而言,这没什么关系,但是对于接近这个大小 Service 而言,就有大问题了。         ...想象一下,如果进行一次滚动更新,共有 5000 个 Pod 全部被替换,那么传输数据量超过 22 TB。...使用 EndpointSlices 时,添加或移除单个 Pod 对于正监视变更客户端会触发相同数量更新, 但这些更新消息大小大规模场景下要小得多。         ...如果对于处于终止端点,ready 可能是 true,那么对于现有的客户端来说可能是有些意外, 因为从始至终,Endpoints 或 EndpointSlice API 从未包含处于终止端点。...Deployment 滚动更新为重新为 EndpointSlice 打包提供了一个自然机会,所有 Pod 及其对应端点在这一期间都会被替换掉。

    1.9K30

    石墨文档基于k8sGo微服务实践(上)

    日志是如何记录、如何采集、如何滚动?我们如何对服务进行观测?Metrics 指标如何采集?采集后指标如何展示?服务如何实现健康检查、存活检查?服务如何滚动更新?...image.png Kubernetes微服务作用就如同建高楼地基,做了很多基础工作,统一了大量基础设施标准,以前我们要实现服务启动、配置、日志采集、探活等功能需要写很多中间件,现在我们只需要写写...image.png 然后我们就可以prometheus或者二进制中看到我们框架版本,如果框架某个版本真有什么大bug,可以查询线上运行版本,然后找到对应应用,让他们升级。...发布微服务应用版本,因为有了Kubernetes就更加简单,我们只需要发布系统调用一下deployment.yml就能实现,应用拉取镜像、启动服务、探活、滚动更新等功能。...然后结合我们滚动更新,我们服务可以很优雅启动起来; (liveness、readness必须同时设置,而且策略必须有差异,否则会带来一些问题) 2.4.5 调用阶段 我们使用Kubernetes

    96660

    如何在 Kubernetes 滚动部署实现真正零停机时间:避免断开客户端连接

    用户负面影响之一是连接中断。我本来很想讨论客户端连接断开影响,但不是本文中。 默认情况下,Kubernetes 部署策略涉及滚动部署。是的!滚动部署听起来很有趣,但还有更多。...滚动部署期间会发生什么情况? 滚动部署意味着逐步当前容器替换为新容器。在此过程,总是有从微秒到秒停机时间。对于用户群较低应用程序来说,它可能微不足道。...继续之前,以下是本教程先决条件: Kubernetes 知识 使用Docker经验 Pod 启动阶段 当 Pod 未配置就绪探测滚动部署启动时,端点 Controller 会使用容器端点更新相应服务对象...当 API 服务器收到来自客户端滚动部署期间 Pod 删除通知时,它首先在 etcd 修改 Pod 状态,然后通知端点控制器和 Kubelet。...我们已经能够确定在滚动部署期间连接断开原因;那么我们如何解决这个问题呢? 解决方案 Kubernetes 从未被设计为“即插即用”编排工具;它需要适当配置以相应地适应每个用例。

    25010

    Kubernetes(k8s)入门学习

    运行过程如果某一个POD出现异常或者异常退出,ReplicaSet(RS)会保证副本始终为2,另外一台机器重新调度起来一个。   ...停止掉,停掉以后,ReplicaSet(RS)清理掉,此时整个服务更新过程就完成了,就进行了滚动部署。   ...比如,此时旧应用就是左边两个POD,如果更新这个应用时候,一般我们更新就是Deployment,Deployment会自动帮我们再创建一个ReplicaSet(RS),创建一个副本集,会滚动先启动一个新版本...(RS)剩下这一个POD停止掉,停掉以后,ReplicaSet(RS)清理掉,此时整个服务更新过程就完成了,就进行了滚动部署。...5)、Scheduler调度器:会收集每一个Worker节点详细信息,包括他们资源,内存,CPU,包括他们节点运行什么服务,等等各种各样信息

    60410

    石墨文档基于 Kubernetes 微服务实践

    日志是如何记录、如何采集、如何滚动?我们如何对服务进行观测?Metrics 指标如何采集?采集后指标如何展示?服务如何实现健康检查、存活检查?服务如何滚动更新?...Kubernetes 微服务作用就如同建高楼地基,做了很多基础工作,统一了大量基础设施标准,以前我们要实现服务启动、配置、日志采集、探活等功能需要写很多中间件,现在我们只需要写写 yaml...框架中影响功能核心错误全部设置为 panic,让程序尽快报错,并且错误做好高亮,错误信息里显示 Panic 错误码,组件、配置名、错误信息,尽快定位错误根因。...然后我们就可以 prometheus 或者二进制中看到我们框架版本,如果框架某个版本真有什么大 bug,可以查询线上运行版本,然后找到对应应用,让他们升级。...然后结合我们滚动更新,我们服务可以很优雅启动起来。

    44020

    改善十年应用部署体验

    2金丝雀(精简版) 我们第一个想法是采用金丝雀部署策略。“金丝雀发布”期间所有流量切换到新服务之前,一小部分流量发送到服务新版本,以确定它是否 “安全”。 为什么叫这个名字?...Web 应用对每一个心情求都重新检查这个文件,并使用这些信息两个不同生产 Kubernetes 命名空间之间进行负载均衡搜索流量,这两个命名空间仍然被称为 flip 和 flop。...推动部署工程师通过显示当前滚动发布状态用户界面来管理 Switchboard,它还可以选择暂停或者回滚部署。... Switchboard ,我们主要依靠 Kubernetes 内置自动伸缩功能来扩展部署期间新集群。...但是,如果他们需要的话,可以暂停滚动发布,检查当前结果。Search 部署人员至少每月使用一次 Switchboard 来暂停滚动发布。我们以前根本就没有这个选项。

    33030

    K8s也面向对象?学会这三要素,用K8s就跟编程一样

    不过你反过来想一想,既然都有多年面向对象经验了,学学面向对象K8s不还得手拿把攥啊。 K8s,对象是系统持久化实体,K8s 使用对象来表示集群各种资源,以及跟踪他们集群状态。...提交给集群声明YAML 文件,会写清楚,对象类型、元信息、以及预期集群里预期状态。这就构成了K8s 对象定义三要素。...State) 期望状态 := 获取集群对象X期望状态(Desired State) if 实际状态 == 期望状态{ 什么都不做 } else { 执行编排动作,实际状态调整为期望状态...Deployment 里边有很多配置允许我们制定 Pod 滚动更新,比如允许更新期间多创建出来多少个副本,以及最多容忍多少个副本不可用等等。...本文示例已经上传我自己维护K8s学习仓库,给公众号「网管叨bi叨」发私信k8s,即可获得地址,页面上搜入门就能找到这个入门系列所有示例。如果找不到的话也别着急,发信息给我,等摸鱼时候回你。

    48420

    Kubernetes运维之容器编排Deployment更新机制

    滚动升级是默认更新策略,它在删除一部分旧版本Pod资源同时,补充创建一部分新版本Pod对象进行应用升级,其优势是升级期间,容器应用提供服务不会中断,但要求应用程序能够应对新旧版本同时工作情形...不过,更新操作期间,不同客户端得到响应内容可能会来自不同版本应用。...滚动更新时,应用升级期间还要确保可用Pod对象数量不低于某阈值以确保可以持续处理客户端服务请求,变动方式和Pod对象数量范围通过spec.strategy.rollingUpdate.maxSurge...,其值可以是0或正整数,也可以是一个期望值百分比;默认值为1,该值意味着如果期望值是3,则升级期间至少要有两个Pod对象处于正常提供服务状态。...要查看修订历史详细信息,运行: kubectl rollout history deployment.v1.apps/nginx-deployment --revision=2 假定现在你已决定撤消当前上线并回滚到以前修订版本

    39320

    Kubernetes入门

    如果参考文档 安装 Kubernetes 单Master节点,您可以 master 节点 root 用户使用 kubectl 操作您集群 您也可以尝试 从客户端电脑远程管理 Kubernetes...如果多个容器紧密耦合并且需要共享磁盘等资源,则他们应该被部署同一个Pod(容器组)。 Node(节点) 下图显示一个 Node(节点)上含有4个 Pod(容器组) ?... Kubernetes ,这是通过 Rolling Update 滚动更新完成。...Kubernetes 更新是版本化,任何部署更新都可以恢复为以前(稳定)版本。...滚动更新允许以下操作: 应用程序从准上线环境升级到生产环境(通过更新容器镜像) 回滚到以前版本 持续集成和持续交付应用程序,无需停机 练习:更新 nginx Deployment 修改 nginx-deployment.yaml

    1.1K20

    K8S学习笔记之Kubernetes 部署策略详解

    0x00 概述 Kubernetes中有几种不同方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确发布策略就非常重要了。...蓝/绿发布与滚动更新不同,版本2(绿) 与版本1(蓝)一起部署,测试新版本满足要求后,然后更新更新 Kubernetes 扮演负载均衡器角色 Service 对象,通过替换 label selector...# 我们经常可以今日头条客户端中就会发现有大量 A/B 测试,同一个地区用户看到客户端有很大不同。...在生产环境,滚动更新或者蓝绿发布比较合适,但是新版本提前测试是非常有必要如果你对新版本应用不是很有信心的话,那应该使用金丝雀发布,将用户影响降到最低。...最后,如果公司需要在特定用户群体中进行新功能测试,例如,移动端用户请求路由到版本 A,桌面端用户请求路由到版本 B,那么你就看使用A/B 测试,通过使用 Kubernetes 服务网关配置,可以根据某些请求参数来确定用户应路由服务

    1.8K40

    警告:有用警告|让Kubernetes使用越来越容易

    开发特性、分类bug和回答支持问题过程,我们积累了有助于Kubernetes用户了解信息。在过去,信息共享仅限于发布说明、公告电子邮件、文档和博客文章等外部方法。...除非有人知道该信息并设法找到它,否则他们不会从中受益。 Kubernetes v1.19,我们添加了一个特性,允许Kubernetes API服务器向API客户机发送警告。...当用户应用自己没有创建清单时,这尤其有用,这样他们就有时间联系作者,要求更新版本。...webhook返回一个警告消息,这里有一些提示: 不要在消息包含“Warning:”前缀(这是客户端输出添加) 使用警告消息来描述发出API请求客户端应该纠正或注意问题 精简;如果可能,警告限制...未来可能性 现在,我们已经有了一种方法,可以在上下文中向用户传递有用信息,我们考虑使用这种方法来改善用户使用Kubernetes体验。

    1.9K30

    Argo Rollouts 实现蓝绿金丝雀发布

    用户希望几个小时内一小部分生产流量提供给他们应用程序新版本。之后,他们希望缩小新版本规模,并查看一些指标以确定新版本与旧版本相比是否具有性能问题,然后他们决定是否为切换到新版本。...用户想要使用 Deployment 正常滚动更新策略,如果用户使用没有步骤金丝雀策略,rollout 将使用 maxSurge 和最大不可用值来滚动到新版本。...rollout 更新期间,控制器通过 Rollout 更新策略定义步骤进行。...更新过程,无论何时,无论是通过失败金丝雀分析自动中止,还是用户手动中止,Rollout 都会退回到 stable 版本。 4....watch rollouts 这一次我们中止更新,而不是滚动切换到下一步,这样它就回到了 stable 版本,该插件同样提供了一个 abort 命令,可以更新过程任何时候手动中止 Rollout

    2.5K30

    Kubernetes 部署策略

    (Canary) - 让部分用户参与测试 A/B测试(A/B testing) - 最适合部分用户功能测试 总结 Kubernetes 部署策略 Kubernetes中有几种不同方式发布应用,所以为了让应用在升级期间依然平稳提供服务...蓝/绿发布与滚动更新不同,版本2(绿) 与版本1(蓝)一起部署,测试新版本满足要求后,然后更新更新 Kubernetes 扮演负载均衡器角色 Service 对象,通过替换 label selector...版本标签来流量发送到新版本,如下图所示: 下面是蓝绿发布策略下应用方法示例图: Kubernetes ,我们可以用两种方法来实现蓝绿发布,通过单个 Service 对象或者 Ingress...我们经常可以今日头条客户端中就会发现有大量 A/B 测试,同一个地区用户看到客户端有很大不同。...最后,如果公司需要在特定用户群体中进行新功能测试,例如,移动端用户请求路由到版本 A,桌面端用户请求路由到版本 B,那么你就看使用A/B 测试,通过使用 Kubernetes 服务网关配置,可以根据某些请求参数来确定用户应路由服务

    94320

    一文看懂Kubernetes v1.16!

    当转换到GA时,我们首要重点是API客户端数据一致性。 当您升级到GA API时,您会注意到一些以前可选护栏已经成为必需或默认行为。...有关如何使用自定义资源详细信息,请参阅Kubernetes文档。...如果简单地对服务添加或删除一个endpoint可能带来可观成本。随着endpoint资源更新,代码与该endpoint相关部分都需要获取一份关于该资源完整副本。...考虑到endpoint部署期间频繁滚动更新等事件,这将是一笔巨大资源浪费。 使用endpoint切片,服务网络endpoint可以拆分为多个资源,从而显着减少大规模更新所需数据量。...Kubernetes文档提供了有关endpoint切片更多信息。作为Kubernetes 1.16alpha功能,默认情况下不会启用,但大家可以参阅说明文档了解如何在集群启用他们

    88841

    一、灰度发布

    如果没有问题,则可以真正用户流量慢慢导入到新版,在这中间,持续对新版本运行状态做观察,直到慢慢切换过去,这就是所谓A/B测试。...当然,你也可以招募一些灰度用户,给他们设置独有的灰度标示(Cookie,Header),来让他们可以访问到新版应用,当然,如果中间切换出现问题,也应该流量迅速地切换到老应用上。...这种实现原理主要根据用户请求 Cookie 是否存在灰度标示 Cookie去判断是否为灰度用户,再决定是否返回灰度版本服务 nginx.ingress.kubernetes.io/canary:可选值为...,通过根据灰度百分比决定是否转发到灰度服务环境 nginx.ingress.kubernetes.io/canary-weight:值是字符串,为 0-100 数字,代表灰度环境命中概率。...如果服务加载很多数据,或者有其他需求要求特定情况下不被分配到流量,那么可以用这个探针。如果探针检测失败,流量就不会分配给该 Pod。没有配置该探针情况下,会一直流量分配给 Pod。

    1.6K20

    全面解析容器编排技术 Kubernetes

    密钥与配置管理:Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。你可以不重建容器镜像情况下部署和更新密钥和应⽤程序配置,也⽆需 堆栈配置暴露密钥。...随着项目的推进,还有各种各样社区 SIG(特殊兴趣小组)针对 Kubernetes 不同领域。他们不断添加新功能,并使其对用户更加友好。...Deployment 典型场景:滚动更新 Deployment 不仅可以滚动更新,还可以进行回滚,如何发现升级到 V2 版本后,发现服务不可用,可以回滚到 V1 版本。...Kubernetes 服务暴露 Pod 能创建成功了,也能很好对 Pod 做管理了,那么客户端如何找出相应 Pod 调用其服务呢? Kubernetes 支持多种服务暴露方式。...Kubernetes 企业应用 无论是中小型企业,还是大型互联网为了提高资源利用率,实现降本增效,利用 Kubernetes 构建一套自动化运维环境已成为最佳选择。

    3.5K30
    领券