首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在kubernetes负载平衡器中直接将吊舱标记为离线

如何在kubernetes负载平衡器中直接将吊舱标记为离线
EN

Stack Overflow用户
提问于 2020-11-09 13:09:33
回答 1查看 347关注 0票数 2

我在一些吊舱前有一个k8s负载平衡器。当我部署更新后的豆荚--在豆荚中有一定数量的流量会超时和失败--基本上看来k8s会按预期处理荚的更新/部署,但是负载平衡器将不知道这一点,只会继续向所有的荚发送流量,直到活性监视器出现故障,然后停止向吊舱发送流量。

我想看到的是以下场景:

  1. 在负载平衡器中离线标记一个吊舱,这样就不会发送新的通信量--但是没有重新启动吊舱。
  2. 更新/更换吊舱
  3. 当新舱对准备好的探测器响应200时,将流量发送到新舱。

这样我就不会有任何暂停。那么,如何实现这一点呢?还是只是我的配置不好,因为它不起作用?

编辑:

我准备好了,也准备好了。它们的配置:

代码语言:javascript
复制
        readinessProbe:
          httpGet:
             path: /ready
             port: 8080
          periodSeconds: 1
          initialDelaySeconds: 5
        livenessProbe:
          httpGet:
             path: /alive
             port: 8080
          periodSeconds: 1
          failureThreshold: 2
          initialDelaySeconds: 40

但是,在表面上,这并不能解决问题:如果负载均衡器只在探测失败后才停止发送流量,而k8s在没有通知负载平衡器的情况下开始拆除吊舱,那么就会出现失败的请求。不管我如何调整上面的值- periodSeconds的最小值是1秒。

不过,我正在考虑尝试准备好的探测器--在开始部署之前,看看我是否可以在不重新启动的情况下将吊舱离线。不完全是最优的,但也许是前进的路。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-09 14:13:52

@Daniel Lee在评论中提到

为了实现您想要的结果,您应该在部署中配置健康检查。

那么,让我们从健康检查开始吧?

正如前面提到的,这里

健康检查的类型

Kubernetes为您提供两种类型的健康检查,了解两者之间的差异及其用途是非常重要的。 Readiness 准备探测器的设计是为了让Kubernetes知道您的应用程序何时准备好为流量服务。库伯奈特斯确保准备好的探测器通过,然后允许服务发送交通到吊舱。如果准备好的探测器开始失效,库伯奈特斯就会停止向太空舱发送车辆,直到它经过。 活性 活性探针让Kubernetes知道你的应用程序是活的还是死的。如果你的应用程序还活着,那么Kubernetes就别管它了。如果你的应用程序死了,Kubernetes就会删除Pod并启动一个新的程序来替换它。

此外,在上面的网站上,你会发现一个详细的描述如何两者,活力和准备好的探测工作。

如果要以零停机时间更新部署,则应检查滚动更新

追加资源:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64752318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档