这篇文章来说一下k8s中pod的状态管理。

在k8s当中,一个pod是一个调度单元。一个pod可以包含一个或者多个容器。每个容器可以是一个网络服务器前端,后端或者整个包含前后端的服务。

接下来我们来看看一个pod的状态变化过程。

Pending

当我们创建一个pod的时候,它的第1个状态是Pending。这个状态是说k8s的API已经接受了你的pod请求。但是还没有真正的发起调度。

这个地方我们假设你有多台机器,也可能是多台虚拟机。调度器用来查找和申请不同的资源,比如说我们需要一个CPU加上2G的内存来使用一个pod。

Creating

找到这些资源以后,调度器会在某台机子上,为pod的创建做准备。此时pod的状态就会进入到creating。在这个状态下第1件事要做的就是把容器的镜像下载下来。如果在当前机子上已经有了这个镜像的话,这个过程可以跳过。

Running

镜像准备好以后,接下来的一个状态就是running。在这个状态下就会启动容器也就是启动你的应用程序,比如后端服务,等等。

CrashLoopBackOff

如果在运行的过程中发生了故障导致你的容器崩溃。这个时候k8s会重启这个容器。如果经常崩溃,启动的次数过多的话。这个pod就会进入CrashLoopBackOff状态。进入这个状态以后,k8s不会立即再次启动容器,而是会等一段时间,比如说10秒钟以后再重启。如果继续重启失败的话,就会等20秒以后,以此类推。

这个时候你可能需要研究一下,到底发生了什么事情,继而修复你的程序。

导致这种现象可能的情况有很多,比如说数据库没有准备好,某个依赖服务没有启动起来等等。

如果资源非常紧张调度器无法申请到的时候,我们会看到pod处于Pending的状态。

解决这种问题的一般措施如下:

1.被动的等待资源释放。

2.主动的释放资源。

3.增加资源。

如果无法获取到容器对应的镜像,也会使一个pod的状态处于Pending。

检查pods状态的两个常用命令如下:

kubectl get pods

kubectl describe pods

Health和Ready

每个pod对应一个IP地址和端口,你可以用health和ready请求来检查它们是否运转正常。如果返回200类的状态码,说明一切正常,否则的话你可以手工重启或者修复问题。

其他需要关注的pod的状态:

post start

post start,这是当你的容器启动以后要触发的状态。

pre stop

另一个状态是pre stop,描述的是在你的容器要终止之前要触发的状态。

容器初始化

在pod中可以定义容器初始化过程。一般的情况用在某个容器需要做一些初始化的工作,然后才启动其他的容器。

这样的案例,比如说需要做数据库的迁移更新,文件的下载等等相对比较耗时而又必须的工作。

pod 文件管理服务器,k8s中pod的状态管理相关推荐

  1. K8S中pod健康状态的检查

    对于Pod的健康状态检测,kubernetes提供了两类探针(Probe)来实现对k8s中Pod的健康状态进行检测 什么是 Container Probes 通过k8s的架构图,我们可以发现,每个No ...

  2. 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查

    k8s 中 Pod 无法正常解析域名:部署 DNS 调试工具排查 问题描述 最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 ...

  3. 关于K8s中Pod调度[选择器,指定节点,主机亲和性]方式和节点[coedon,drain,taint]标记的Demo

    写在前面 嗯,整理K8s中pod调度相关笔记,这里分享给小伙伴 博文内容涉及: kube-scheduler组件的简述 Pod的调度(选择器.指定节点.主机亲和性)方式 节点的coedon与drain ...

  4. k8s中pod的重启策略和健康检查

    目录 k8s中pod的重启策略 pod中一共有以下三个重启策略(restartPolicy) 健康检查: 健康检查类型 支持的检查方法: 检查示例 其他检查方式示例 k8s中pod的重启策略 pod中 ...

  5. k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测

    K8S中Pod的生命周期与ExecAction.TCPSocketAction和HTTPGetAction探针检测 主机配置规划 Pod容器生命周期 Pause容器说明 每个Pod里运行着一个特殊的被 ...

  6. 谈谈Silverlight 2中的视觉状态管理 Part1

    概述 在WPF和Silverlight中的控件模板支持自定义控件的观感,所谓的外观,指控件的视觉效果:而感觉则是控件交互的响应性,如在控件上按下鼠标.控件获得焦点等状态的改变.微软在Silverlig ...

  7. 在vue项目中引用vuex状态管理工具

    在vue项目中引用vuex状态管理工具 一.vuex是什么? 二.使用步骤 1.引入库 2.在main.js文件引入配置 3.配置store/index.js文件 4.获取state数据 5.获取ge ...

  8. K8s中Pod健康检查源代码分析

    了解k8s中的Liveness和Readiness Liveness:  表明是否容器正在运行.如果liveness探测为fail,则kubelet会kill掉容器,并且会触发restart设置的策略 ...

  9. 图解k8s中pod的创建流程

    什么是pod Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展 P ...

  10. pod:Kubernetes(k8s)创建pod的两种方式

    目录 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64 ...

最新文章

  1. ROBOT STUDIO 学习笔记
  2. C# WPF MVVM开发框架Caliburn.Micro自定义引导程序④
  3. 物流 计算机管理 好处,ERP系统在物流管理中的作用
  4. javascript 常用的数组操作
  5. 七、MySQL中的字符集 - 系统的撸一遍MySQL
  6. Main线程与main()方法的关系
  7. Data Warehouse
  8. 【2017西安邀请赛:A】XOR(区间异或最大值多次查询---线段树+线性基合并)
  9. ubuntu安装tim
  10. mysql analyze_mysql analyze和optimize
  11. 特大喜讯,uni-app支持PC版了!
  12. 如何在Fcpx中卸载安装效果,标题,转场等FCPX模板插件
  13. AI大牛推荐的八本必读NLP书籍(建议收藏)
  14. 佛教、道教、基督教的几个问题比较
  15. 电力系统故障点分析,短路类型分析,中性点小电流接地 不接地故障分析,故障点定位
  16. win10计算机本地无法连接,win10系统电脑本地连接不见了解决方法
  17. jquery插件之进度条
  18. dnf服务器炸团门票怎么找回,DNF:还在为魔界裂缝门票发愁吗?这些地方可以轻松获取门票...
  19. window.postMessage - 前端跨域通信
  20. 基于STM32蓝牙智能手环脉搏心率计步器体温显示设计

热门文章

  1. Android 实现Home按键功能的两种方式
  2. 如何取消html5微信页面授权,微信授权管理在哪里?查看微信授权过的第三方应用并取消授权的方法图解...
  3. 总弹出Visual Studio实时调试器的问题
  4. 鼠标手势插件--smartUp
  5. DataSource接口,一个被大多数程序员忽略的接口
  6. 数据库迁移(MySQL函数转化为Oracle函数)
  7. php遵义旅游管理系统毕业设计源码091801
  8. delphi的时间Ttime,Tdatetime的信息
  9. 9.6.5对象的常引用
  10. 链表?数组?合二为一