pod 文件管理服务器,k8s中pod的状态管理
这篇文章来说一下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的状态管理相关推荐
- K8S中pod健康状态的检查
对于Pod的健康状态检测,kubernetes提供了两类探针(Probe)来实现对k8s中Pod的健康状态进行检测 什么是 Container Probes 通过k8s的架构图,我们可以发现,每个No ...
- 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查
k8s 中 Pod 无法正常解析域名:部署 DNS 调试工具排查 问题描述 最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 ...
- 关于K8s中Pod调度[选择器,指定节点,主机亲和性]方式和节点[coedon,drain,taint]标记的Demo
写在前面 嗯,整理K8s中pod调度相关笔记,这里分享给小伙伴 博文内容涉及: kube-scheduler组件的简述 Pod的调度(选择器.指定节点.主机亲和性)方式 节点的coedon与drain ...
- k8s中pod的重启策略和健康检查
目录 k8s中pod的重启策略 pod中一共有以下三个重启策略(restartPolicy) 健康检查: 健康检查类型 支持的检查方法: 检查示例 其他检查方式示例 k8s中pod的重启策略 pod中 ...
- k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测
K8S中Pod的生命周期与ExecAction.TCPSocketAction和HTTPGetAction探针检测 主机配置规划 Pod容器生命周期 Pause容器说明 每个Pod里运行着一个特殊的被 ...
- 谈谈Silverlight 2中的视觉状态管理 Part1
概述 在WPF和Silverlight中的控件模板支持自定义控件的观感,所谓的外观,指控件的视觉效果:而感觉则是控件交互的响应性,如在控件上按下鼠标.控件获得焦点等状态的改变.微软在Silverlig ...
- 在vue项目中引用vuex状态管理工具
在vue项目中引用vuex状态管理工具 一.vuex是什么? 二.使用步骤 1.引入库 2.在main.js文件引入配置 3.配置store/index.js文件 4.获取state数据 5.获取ge ...
- K8s中Pod健康检查源代码分析
了解k8s中的Liveness和Readiness Liveness: 表明是否容器正在运行.如果liveness探测为fail,则kubelet会kill掉容器,并且会触发restart设置的策略 ...
- 图解k8s中pod的创建流程
什么是pod Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展 P ...
- pod:Kubernetes(k8s)创建pod的两种方式
目录 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64 ...
最新文章
- ROBOT STUDIO 学习笔记
- C# WPF MVVM开发框架Caliburn.Micro自定义引导程序④
- 物流 计算机管理 好处,ERP系统在物流管理中的作用
- javascript 常用的数组操作
- 七、MySQL中的字符集 - 系统的撸一遍MySQL
- Main线程与main()方法的关系
- Data Warehouse
- 【2017西安邀请赛:A】XOR(区间异或最大值多次查询---线段树+线性基合并)
- ubuntu安装tim
- mysql analyze_mysql analyze和optimize
- 特大喜讯,uni-app支持PC版了!
- 如何在Fcpx中卸载安装效果,标题,转场等FCPX模板插件
- AI大牛推荐的八本必读NLP书籍(建议收藏)
- 佛教、道教、基督教的几个问题比较
- 电力系统故障点分析,短路类型分析,中性点小电流接地 不接地故障分析,故障点定位
- win10计算机本地无法连接,win10系统电脑本地连接不见了解决方法
- jquery插件之进度条
- dnf服务器炸团门票怎么找回,DNF:还在为魔界裂缝门票发愁吗?这些地方可以轻松获取门票...
- window.postMessage - 前端跨域通信
- 基于STM32蓝牙智能手环脉搏心率计步器体温显示设计