如何优雅的关闭 Kubernetes 中运行的 Pod

当我们使用命令 kubectl delete pod,Pod 就会被删除,端点控制器会从服务和 etcd 中移除其 IP 地址和端口(端点)。

你可以使用 kubectl describe service 命令来观察这个过程。

如何优雅的关闭 Kubernetes 中运行的 Pod

但这还不够!

有几个组件同步本地的端点列表:

  • kube-proxy 保留了一个本地的端点列表,用于编写 iptables 规则。
  • CoreDNS 使用端点来重新配置 DNS 条目。

对于 Ingress 控制器、Istio 等也是如此。

如何优雅的关闭 Kubernetes 中运行的 Pod

所有这些组件都会(最终)移除之前的端点,以便再也没有流量可以到达它。同时,kubelet 也会被通知更改并删除 Pod。

那么,当 kubelet 在其他组件之前删除 Pod 时会发生什么呢?

如何优雅的关闭 Kubernetes 中运行的 Pod

不幸的是,你会经历停机时间,因为像 kube-proxy、CoreDNS、ingress 控制器等组件仍然使用该 IP 地址来路由流量。

那么你能做什么呢?

等待!

如何优雅的关闭 Kubernetes 中运行的 Pod

如果你在删除 Pod 之前等待足够长的时间,正在进行的流量仍然可以处理的,新的流量可以被分配给其他 Pods。

那么应该如何等待呢?

如何优雅的关闭 Kubernetes 中运行的 Pod

当 kubelet 删除一个 Pod 时,它会经历以下步骤:

  • 触发 preStop 钩子(如果有的话)。
  • 发送 SIGTERM 信号。
  • 发送 SIGKILL 信号(30 秒后)。
如何优雅的关闭 Kubernetes 中运行的 Pod

你可以使用 preStop 钩子来插入人为的延迟。

如何优雅的关闭 Kubernetes 中运行的 Pod

你可以在你的应用程序中监听 SIGTERM 信号并等待。

此外,你可以在等待结束时优雅地停止进程并退出。

Kubernetes 会给你 30 秒来做这件事(可配置),如下代码所示:

如何优雅的关闭 Kubernetes 中运行的 Pod

那么你应该等待 10 秒、20 秒还是 30 秒呢?

事实上这并没有统一的答案。

虽然传播端点可能只需要几秒钟,但 Kubernetes 并不保证任何时间,也不保证所有组件都会在同一时间完成。

如何优雅的关闭 Kubernetes 中运行的 Pod

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9142

(0)
郭靖的头像郭靖
上一篇 2023年7月17日 下午5:19
下一篇 2023年7月20日 下午4:45

相关推荐

  • AutoGPT 安装教程! 保姆级的演示过程,一步一步教你完成本地部署!

    1.AutoGPT 安装之前,请确保已经具备以下几项条件: 2.下载项目代码,在一个文件夹下打开终端,克隆项目 下载完成后,cd 到项目路径下 安装依赖 运行以下代码安装所需要的依赖 3.获取自己的OpenAI的密钥,【点击获取】, 创建自己的密钥以后,在AutoGPT文件下找到配置文件:.env.template ,在里面替换自己的openAI key 4…

    2023年4月20日
    2.9K00
  • Nmon使用方法

    一、简介 1、nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面, 并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。 2、nmon可监控的数据类型 内存使用情况 磁盘适配器 文件系统中的可用空间 CPU使用率 页面空间和页面速度…

    2022年8月23日
    2.4K00
  • hosts.allow与hosts.deny的应用

    Linux系统服务器通过设置hosts.allow与hosts.deny这两个配置文件控制外部IP对本机服务的访问,hosts.allow控制可以访问本机的IP地址,hosts.deny控制禁止访问本机的IP。配置完成之后是实时生效的。这种方法是最简单的,但是有几率不成功,临时使用是可以的。长期的话建议还是使用iptables, 假设现在需要只允许192.1…

    2022年8月10日
    1.9K00
  • 华为S5700忘记console密码

    1、进入BootROM主菜单 用串口线连接设备,然后重启。 当出现Press Ctrl+B to enter BootROM menu…(V200R002及V200R003版本)或者Press Ctrl+B or Ctrl+E to enter BootROM menu …(V200R005及以后发布的版本)打印信息时按下Ctrl+B或者Ctrl+E并键入密…

    2023年5月9日
    1.5K00
  • Windows SMB请求重放攻击分析

    smb中继或叫smb请求重放攻击,B是一个smb服务器,A来进行认证,B将A的认证信息转发到C上,如果A的凭证在C上认证成功就能进行下一步操作,如创建服务执行命令。如果在域中控制了某些常用服务,如:WEB OA系统、文件共享等服务则可以尝试使用SMB中继攻击来引诱域管理员访问达到获取其他机器权限的目的。 环境 192.168.123.10 win 7&nbs…

    2023年3月3日
    1.8K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信