开发者社区 > 云原生 > 容器服务 > 正文

OpenKruise中cloneset能做到pod临时摘流下线吗?

OpenKruise中cloneset能做到pod临时摘流下线吗?比如一个pod有问题,想摘流排查问题。

展开
收起
十一0204 2023-11-21 18:15:50 59 0
3 条回答
写回答
取消 提交回答
  • OpenKruise中的CloneSet主要用于Pod的自动扩缩容和滚动更新,它本身并不支持直接对Pod进行临时摘流下线。但是,你可以通过以下方法实现类似的功能:

    1. 使用kubectl edit命令修改Pod的YAML配置文件,为Pod添加一个terminating状态,这样Kubernetes会停止向该Pod发送流量。例如:
    kubectl edit pod <pod_name>
    

    在打开的编辑器中,找到status字段,将其修改为:

    status:
      terminating: true
    

    保存并退出编辑器,Kubernetes会自动停止向该Pod发送流量。当问题排查完毕后,可以再次编辑Pod的YAML配置文件,将terminating字段删除或设置为false,然后保存并退出编辑器,Kubernetes会恢复向该Pod发送流量。

    1. 如果你想要更细粒度的控制,可以使用Kubernetes的网络策略(NetworkPolicy)来实现。网络策略可以定义允许哪些流量进入和离开Pod,通过配置合适的网络策略,你可以实现对特定Pod的流量控制。
    2023-11-22 11:59:31
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    OpenKruise CloneSet 支持 pod 暂停和恢复的功能,可以实现您所说的临时摘流下线的需求。
    具体来说,您可以通过发送 Kubectl pause 命令来暂停指定的 CloneSet 中的一个或多个 Pod。暂停后的 Pod 将停止接收任何网络流量,并且不会执行任何业务逻辑。此时,您可以安全地对 Pod 进行排查和修复,而无需担心其对外部系统产生不良影响。
    一旦完成故障排除,您还可以发送 Kubectl resume 命令来恢复已暂停的 Pod。恢复后的 Pod 将继续接收网络流量,并恢复正常运行。
    需要注意的是,暂停 Pod 并不会释放其占用的资源,例如 CPU、内存和磁盘空间。因此,在长时间暂停大量 Pod 时,请确保有足够的资源可供使用。

    2023-11-21 21:59:20
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "你可以尝试着把 Pod 的 Status KruisePodReady 设置为 false 看看。 另外,kubectl patch status 还是有点麻烦的,你可以网上搜一下如何操作。
    a1f40c638a734ec96d8dc82533cbd841.png
    此答案整理至钉群“OpenKruise 社区交流群“。"

    2023-11-21 19:37:48
    赞同 展开评论 打赏
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载