十八、kubernetes中容器重启策略

2023-11-05

1、概述

在上一篇文章中,一旦容器探测出现了问题,kubernetes就会对容器所在的Pod进行重启,其实这是由pod的重启策略决定的,pod的重启策略有 3 种,分别如下:

  • Always :容器失效时,自动重启该容器,这也是默认值。

  • OnFailure : 容器终止运行且退出码不为0时重启

  • Never : 不论状态为何,都不重启该容器

重启策略适用于pod对象中的所有容器,首次需要重启的容器,将在其需要时立即进行重启,随后再次需要重启的操作将由kubelet延迟一段时间后进行,且反复的重启操作的延迟时长以此为10s、20s、40s、80s、160s和300s,300s是最大延迟时长。

2、容器重启策略实例

创建pod-restartpolicy.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: pod-restartpolicy
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - name: nginx-port
      containerPort: 80
    livenessProbe:
      httpGet:
        scheme: HTTP
        port: 80
        path: /hello   # 存活性探针检测此地址时由于/hello 不存在导致容器重启
  restartPolicy: Never # 设置重启策略为Never

实例操作效果

#创建pod
[root@k8s-master ~]# kubectl apply -f pod-restartpolicy.yaml
pod/pod-restartpolicy created
#获取pod
[root@k8s-master ~]# kubectl get pod -n dev -owide
NAME                READY   STATUS              RESTARTS   AGE   IP       NODE        NOMINATED NODE   READINESS GATES
pod-restartpolicy   0/1     ContainerCreating   0          9s    <none>   k8s-node2   <none>           <none>
[root@k8s-master ~]# kubectl get pod -n dev -owide
NAME                READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
pod-restartpolicy   1/1     Running   0          29s   172.17.169.143   k8s-node2   <none>           <none>
#查看pod详情 可以看出倒数第二步访问http 404 最后 容器终止
[root@k8s-master ~]# kubectl describe pod pod-restartpolicy -n dev
Events:
  Type     Reason     Age               From               Message
  ----     ------     ----              ----               -------
  Normal   Scheduled  45s               default-scheduler  Successfully assigned dev/pod-restartpolicy to k8s-node2
  Normal   Pulling    44s               kubelet            Pulling image "nginx"
  Normal   Pulled     29s               kubelet            Successfully pulled image "nginx" in 15.467788602s
  Normal   Created    29s               kubelet            Created container nginx
  Normal   Started    29s               kubelet            Started container nginx
  Warning  Unhealthy  5s (x3 over 25s)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 404
  Normal   Killing    5s                kubelet            Stopping container nginx
#等几秒钟再查看pod状态变为  Completed(已完成)
[root@k8s-master ~]# kubectl get pod -n dev -owide
NAME                READY   STATUS      RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
pod-restartpolicy   0/1     Completed   0          54s   172.17.169.143   k8s-node2   <none>           <none>

至此我们就能看出容器重启策略的重要性。

3、总和

        因为重启策略默认的就是Always,这也是合理的,因此在一般情况下,重启策略不需要设置,这里仅仅是作为知识点拿出来展示一下,在实际使用中,在大多数情况下都不需要进行重启策略配置。

Pod 的重启策略与控制方式息息相关,当前可用于管理Pod 的控制器包括ReplicationController ,Job,DaemonSet,还可以通过kubelet 管理(静态Pod)。

每种控制器对Pod 的重启策略要求如下:
(1)RC和DaemonSet : 必须设置为Always,需要保证该容器持续运行。
(2)Job : OnFailure 或 Never,确保容器执行完成后不再重启。
(3)kubelet : 在Pod 失效时自动重启它,不论将RestartPolicy 设置为什么值,也不会对Pod进行健康检查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十八、kubernetes中容器重启策略 的相关文章

随机推荐

  • Python 之 lambda 函数完整详解 & 巧妙运用

    文章目录 一 前言 二 lambda 语法 三 lambda 特性 四 lambda 常见用法 五 lambda 用法之高阶函数 一 前言 lambda 函数在 Python 编程语言中使用频率非常高 使用起来非常灵活 巧妙 那么 什么是l
  • php token 存储,PHP 实现Token无状态登录验证,无需服务端存储,降低服务器压力...

    早之前大家常用的登录方式是客户端传输账号密码 后台通过比对后成功了 客户端存储在cookie中 每次刷新页面或请求服务端 服务端都需要从数据库中调取对比信息 对于服务端来说 对比登录状态是服务端请求最频繁的动作 所以如果每次都调用数据库请求
  • java参数传递(局部变量)

    基本数据类型 传递的是值的副本 修改副本不会对原值造成影响 也就是值传递 Byte Short Integer Long Float Double Boolean Character 引用数据类型 除开基本数据类型的所有数据类型 传递的是对
  • centos8 安装notepadqq

    yum install epel release yum install snapd systemctl enable now snapd socket snap install notepad plus plus yum install
  • 【附源码】计算机毕业设计SSM汽车维修服务系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • FTP使用教程

    FTP使用教程 目录 一 FTP简介 二 FTP搭建 三 FTP使用 一 FTP简介 FTP中文为文件传输协议 简称为文传协议 它也是一个应用程序 不同的操作系统有不同的FTP应用程序 这些应用程序都遵守同一种协议以传输文件 FTP主要的功
  • KD树

    KD树 1 概述 KD树是一种查询索引结构 广泛应用于数据库索引中 从概念的角度讲 它是一种高纬数据的快速查询结构 本文首先介绍1维数据的索引查询 然后介绍2维KD树的创建和查询 2 1维数据的查询 假设在数据库的表格T中存储了学生的语文成
  • 数据挖掘概述

    1 数据挖掘定义 数据挖掘是从大量的 不完全的 有噪声的 模糊的 随机的应用数据中 提取出潜在且有用的信息的过程 2 数据分析的过程 1 确定知识发现的过程 2 数据采集 数据质量决定挖掘的上限 而算法仅仅是逼近这个上限 3 数据搜索 将数
  • 怎么做好中层管理

    随着工作经验和年限不断增加 经过努力相信很多IT技术人员和我一样从一个开发角色转变为技术管理或者部门管理角色 一方面需要做技术解决方案架构开发上工作 带领团队攻关技术难题 同时也会面临一些团队管理和团队业绩增长需要不断去提高和突破 虽然不必
  • 基于MATLAB的遗传算法优化混合流水车间调度问题

    基于MATLAB的遗传算法优化混合流水车间调度问题 混合流水车间调度问题是在车间生产中常见的一个优化问题 旨在通过合理安排作业顺序和机器分配 最大限度地提高生产效率和降低生产成本 本文将介绍如何使用MATLAB编写遗传算法来解决混合流水车间
  • Ubuntu ssh root 登录不了解决办法

    Ubuntu在安装的时候 设置了sudo的密码 但是这并不是root用户的密码 导致即使修改了 etc ssh sshd config 文件 运行root用户登录 还是会出现Permission denied 真是坑啊 差点没把我气到吐血
  • 发送html邮件时遇到的奇怪的乱码问题

    解析文件字符流 作为内容发送邮件到客户端 解析的代码如下 BufferedReader reader new BufferedReader new FileReader file 发现windows系统下发送的邮件时是正常的 在linux下
  • NETPLIER : 一款基于概率的网络协议逆向工具(一)理论

    本文系原创 转载请说明出处 信安科研人 关注微信公众号 信安科研人 获取更多网络安全学术技术资讯 今日介绍一篇发表在2021 NDSS会议上的一项有关协议逆向的工作 文章目录 1 网络协议逆向工程简介 1 1 协议逆向工程的主流技术 案例
  • 【计算机网络】第一章知识点汇总

    第一章学习重点 2 5 因特网的组成 通信方式与交换方式 4 4 时延 计算 4 5 时延带宽积 计算 5 2 协议的划分与层次 5 3 五层协议的体系结构 OSI与TCP IP的比较 1 计算机网络在信息时代的作用 三网融合中的 三网 指
  • Hadoop-HBase 单机部署

    一 系统版本 Linux系统 wdOS 1 0 x86 64 iso 关于wdOS说明 1 安装简单 快速 去掉了安装过程中不必要的烦锁操作和不必要的选择 2 可选安装集成web环境 如lamp lnmp lnamp 并可相互自由切换使用
  • 设计模式之适配器模式(Adapter)

    1 定义 适配器模式 Adapter 指的是将一个类的接口转换成另一个可以兼容的接口 比如我们日常生活中的转换头 古早时期使用的电池万能充 就相当于程序中使用的适配器模式 2 适配器模式的种类 2 1 类适配器模式 类适配器模式通过多重继承
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(三)

    大数据项目实战 第三章 数据采集 文章目录 大数据项目实战 学习目标 一 分析与准备 1 分析网页结构 2 数据采集环境准备 二 采集网页数据 1 创建响应结果 JavaBean 类 2 封装 HTTP 请求的工具类 1 定义三个全局变量
  • 14张自动化测试框架结构图(建议收藏)

    1 接口自动化测试框架设计图 接口自动化测试框架设计图 2 接口自动化执行设计图 接口自动化执行设计图 3 API自动化平台框架设计图 API自动化平台框架设计图 4 UI自动化测试框架设计图 UI自动化测试框架设计图 5 接口 UI自动化
  • 【CUDA基础练习】向量内积计算的若干种方法

    先从一个简单 直观的方法来了解如何用CUDA计算向量内积 向量内积既然是将两个向量对应元素相乘的结果再求和 我们先考虑将对应元素相乘并行化 再来考虑相加 方法一 include
  • 十八、kubernetes中容器重启策略

    1 概述 在上一篇文章中 一旦容器探测出现了问题 kubernetes就会对容器所在的Pod进行重启 其实这是由pod的重启策略决定的 pod的重启策略有 3 种 分别如下 Always 容器失效时 自动重启该容器 这也是默认值 OnFai