OpenKruise v0,迄今为止讲解的最详细的一篇

本文介绍了Kruise v0.9.0提供的功能,包括单Pod维度的容器重启能力,详细阐述了ContainerRecreateRequest的工作流程和可选策略。此外,还讨论了Kubernetes的级联删除问题,并介绍了Kruise的防级联删除能力。最后,提到了CloneSet的新增功能,如删除优先级、镜像预热和Pod置换策略。
摘要由CSDN通过智能技术生成

这来自于云原生架构和过去传统基础基础设施的差异性。在传统的物理机、虚拟机时代,一台机器上往往会部署和运行多个应用的实例,并且机器和应用的生命周期是不同的;在这种情况下,应用实例的重启可能仅仅是一条 systemctl 或 supervisor 之类的指令,而无需将整个机器重启。然而,在容器与云原生模式下,应用的生命周期是和 Pod 容器绑定的;即常规情况下,一个容器只运行一个应用进程,一个 Pod 也只提供一个应用实例的服务。

基于上述的限制,目前原生 Kubernetes 之下是没有 API 来为上层业务提供容器(应用)重启能力的。而 Kruise v0.9.0 版本提供了一种单 Pod 维度的容器重启能力,兼容 1.16 及以上版本的标准 Kubernetes 集群。在安装或升级 Kruise​ 之后,只需要创建 ContainerRecreateRequest(简称 CRR) 对象来指定重启,最简单的 YAML 如下:

apiVersion: apps.kruise.io/v1alpha1

kind: ContainerRecreateRequest

metadata:

namespace: pod-namespace

name: xxx

spec:

podName: pod-name

containers:

  • name: app

  • name: sidecar

其中,namespace 需要与要操作的 Pod 在同一个命名空间,name 可自选。spec 中 podName 是 Pod 名字,containers 列表则可以指定 Pod 中一个或多个容器名来执行重启。

除了上述必选字段外,CRR 还提供了多种可选的重启策略:

spec:

strategy:

failurePolicy: Fail

orderedRecreate: false

terminationGracePeriodSeconds: 30

unreadyGracePeriodSeconds: 3

minStartedSeconds: 10

activeDeadlineSeconds: 300

ttlSecondsAfterFinished: 1800

  • failurePolicy:Fail 或 Ignore,默认 Fail;表示一旦有某个容器停止或重建失败,CRR 立即结束。

  • orderedRecreate:默认 false;true 表示列表有多个容器时,等前一个容器重建完成了,再开始重建下一个。

  • terminationGracePeriodSeconds:等待容器优雅退出的时间,不填默认用 Pod 中定义的时间。

  • unreadyGracePerio

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值