当前位置: 首页 > news >正文

关于k8s集群Pod启动过程

目录

1.Pod启动阶段(相位 phase)

1.1 phase的可能状态

2.Pod故障排除步骤

3.总结


1.Pod启动阶段(相位 phase)

Pod 创建完之后,一直到持久运行起来,中间有很多步骤,也就有很多出错的可能,因此会有很多不同的状态。
一般来说,pod 这个过程包含以下几个步骤:

(1)调度到某台 node 上。kubernetes 根据一定的优先级算法选择一台 node 节点将其作为 Pod 运行的 node
(2)拉取镜像
(3)挂载 存储卷 等
(4)容器运行起来。如果有健康检查,会根据检查的结果来设置其状态。

1.1 phase的可能状态

Pending:表示APIServer创建了Pod资源对象并已经存入了etcd中,但是它并未被调度完成(比如还没有调度到某台node上),或者仍然处于从仓库下载镜像的过程中。(pod调度失败、拉取镜像失败、挂载存储卷失败)

Running:Pod已经被调度到某节点之上,并且Pod中所有容器都已经被kubelet创建。至少有一个容器正在运行,或者正处于启动或者重启状态(也就是说Running状态下的Pod不一定能被正常访问)。

Succeeded:有些pod不是长久运行的,比如job、cronjob,一段时间后Pod中的所有容器都被成功终止,并且不会再重启。需要反馈任务执行的结果。

Failed:Pod中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止,比如 command 写的有问题。

Unknown:表示无法读取 Pod 状态,通常是 kube-controller-manager 无法与 Pod 通信。Pod 所在的 Node 出了问题或失联,从而导致 Pod 的状态为 Unknown

如何删除 Unknown 状态的 Pod ?

  1. 从集群中删除有问题的 Node。使用公有云时,kube-controller-manager 会在 VM 删除后自动删除对应的 Node。 而在物理机部署的集群中,需要管理员手动删除 Node(kubectl delete node <node_name>)。
  2. 被动等待 Node 恢复正常,Kubelet 会重新跟 kube-apiserver 通信确认这些 Pod 的期待状态,进而再决定删除或者继续运行这些 Pod。
  3. 主动删除 Pod,通过执行 kubectl delete pod <pod_name> --grace-period=0 --force 强制删除 Pod。但是这里需要注意的是,除非明确知道 Pod 的确处于停止状态(比如 Node 所在 VM 或物理机已经关机),否则不建议使用该方法。特别是 StatefulSet 管理的 Pod,强制删除容易导致脑裂或者数据丢失等问题。

Worker Node 节点宕机,请说明一下 Pod 的驱逐流程

  1. K8S 的节点生命控制器在超出一定时间后不能与 kubelet 通信,就会标记该节点为 unknown 状态,并自动创建 NoExecute 污点防止调度器调度新 Pod 到该节点。
  2. 而那些已经在 Node 节点上运行的 Pod,在经过容忍度时间后(默认tolerationSeconds: 300),会被 NoExecute 污点自动驱逐。

2.Pod故障排除步骤

查看Pod事件
kubectl describe TYPE NAME_PREFIX  

查看Pod日志(Failed状态下)
kubectl logs <POD_NAME> [-c Container_NAME] [–p]

进入Pod(状态为running,但是服务没有提供)
kubectl exec –it <POD_NAME> bash

kubectl debug -it <POD_NAME> --image=busybox:1.28 --target=${container_name}

查看集群信息
kubectl get nodes

发现集群状态正常
kubectl cluster-info

查看kubelet日志发现
journalctl -xefu kubelet

3.总结

pod启动过程

1.contorller-manager管理的控制器创建pod资源

2.scheduler调度器根据调度算法选择最适合的node节点调度pod

3.kubelet拉取镜像

4.kubelet挂载存储卷

5.kubelet创建并运行容器

6.kubelet根据容器探针的探测结果设置pod状态

pod生命周期的5种状态

Pending:pod已经创建,但是pod还处于包括未完成调度到node节点或还处于在拉取镜像的过程中或存储卷挂载失败的情况

Running:pod所有容器都已被创建,且至少有一个容器正在运行

Succeeded:pod所有容器都已经成功退出,且不再重启

Failed:所有容器都已经退出且至少有一个容器是异常退出的

Unknown:master节点的controller-mannger无法获取到pod的状态信息,通常是因为master节点的apiserver与pod所在节点的kubelet通信失联导致的

相关文章:

关于k8s集群Pod启动过程

目录 1.Pod启动阶段&#xff08;相位 phase&#xff09; 1.1 phase的可能状态 2.Pod故障排除步骤 3.总结 1.Pod启动阶段&#xff08;相位 phase&#xff09; Pod 创建完之后&#xff0c;一直到持久运行起来&#xff0c;中间有很多步骤&#xff0c;也就有很多出错的可能&…...

Linux Vim教程(十五):使用Vimscript进行脚本编写

目录 1. Vimscript简介 2. 基本语法和结构 2.1 变量 2.2 条件语句 2.3 循环语句 2.4 函数 3. 操作缓冲区、窗口和标签页 3.1 缓冲区 3.2 窗口 3.3 标签页 4. 自动化编辑任务 4.1 自动命令 4.2 键映射 5. 编写和调试Vimscript脚本 5.1 编写脚本 5.2 调试脚本 6…...

解决element-ui回车键绑定按钮功能后却刷新浏览器的问题

最近写代码时&#xff0c;遇到要给回车键绑定确定的功能&#xff0c;并且打开对话框时要自动获取输入框焦点&#xff0c;发现一但重新打开浏览器&#xff0c;第一次执行回车键的功能时就会刷新浏览器&#xff0c;后续则会成功执行。但是一但再一次重新打开浏览器&#xff0c;还…...

MySQL基础练习题37-查找结果的质量和占比

目录 题目 准备数据 分析数据 总结 题目 找出每次的 query_name 、 quality 和 poor_query_percentage。 quality 和 poor_query_percentage 都应 四舍五入到小数点后两位 。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Que…...

酒店行业如何利用XML进行营销短信

随着信息社会的到来&#xff0c;消费者获得会所的服务也从单纯的电话方式&#xff0c;逐渐转变为电话、互联网、传真&#xff0c;群发短信等多种媒体并行的方式。今天着重介绍下酒店行业如何利用短信平台进行营销。 群发短信业务对酒店起到的效率&#xff1a;根据新产品或服务向…...

【模型】TFLiteModel

TFLiteModel 指的是 TensorFlow Lite&#xff08;TFLite&#xff09;模型&#xff0c;它是 TensorFlow 的轻量级解决方案&#xff0c;用于在移动设备、嵌入式系统和物联网设备上运行机器学习模型。TFLite 模型通常是从 TensorFlow 模型转换而来的&#xff0c;并且经过了优化&am…...

【Kubernetes】Service 概念与实战

Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod&#xff0c;而每个 Pod 又具有独立的 IP 地址。Service&#xff08;服务&#xff09;能够为一组功能相同的…...

RTSP|RTMP流如何指定坐标位置和分辨率获取RGB数据实时渲染和算法分析

接上一篇blog&#xff1a;同一路RTSP|RTMP流如何同时回调YUV和RGB数据实现渲染和算法分析-CSDN博客 我们知道&#xff0c;由于解码后的YUV或RGB数据size比较大&#xff0c;如果想把转换后的RGB数据传给比如python算法的话&#xff0c;数据量还是挺大&#xff0c;为此&#xff…...

基于ssm+vue+uniapp的英语学习交流平台小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…...

如何判断一个TimerTask是否已经完成

如何判断一个TimerTask是否已经完成 判断TimerTask是否已经完成并不是TimerTask或Timer类直接提供的功能&#xff0c;因为TimerTask一旦被提交给Timer执行&#xff0c;它就在一个独立的线程中运行&#xff0c;而Timer类并不直接提供方法来查询或控制任务的执行状态。 然而&am…...

Android常用面试题

1、如何理解Java的多态&#xff1f;其中&#xff0c;重载和重写有什么区别&#xff1f; 2、谈一下JVM内存区域划分&#xff1f;哪部分是线程公有的&#xff0c;哪部分是私有的&#xff1f; 3、final关键字的用法&#xff1f; 4、死锁是怎么导致的&#xff1f;如何定位死锁 5、数…...

JSON与Jsoncpp库:数据交换的灵活选择

目录 引言 一.JSON简介 二. Jsoncpp库概述 三. Jsoncpp核心类介绍 3.1 Json::Value类 3.2 序列化与反序列化类 四. 实现序列化 五. 实现反序列化 结语 引言 在现代软件开发中&#xff0c;数据交换格式扮演着至关重要的角色。JSON&#xff08;JavaScript Object Notati…...

salesforce rich text 字段支持html中内嵌JavaScript吗

Salesforce 的富文本字段&#xff08;Rich Text Field&#xff09;不支持在 HTML 中内嵌 JavaScript。为了安全&#xff0c;Salesforce 会自动移除或过滤用户输入中的任何 JavaScript 代码。这是为了防止跨站点脚本&#xff08;XSS&#xff09;攻击&#xff0c;从而保护 Salesf…...

Ubuntu24.04、22.04或20.04安装Golang方法教程

在Ubuntu Linux&#xff08;例如 Ubuntu 24.04、22.04 或 20.04&#xff09;上安装Go&#xff08;Golang&#xff09;是一个简单的过程。我们可以使用默认系统存储库使用本教程中给出的命令下载开源 Go 编程语言&#xff0c;轻松构建简单、可靠和高效的软件。 Go语言由Google…...

学习记录第二十二天

time函数与localtime函数 在Linux环境下使用C语言处理时间&#xff0c;通常会涉及到几个重要的头文件和函数。主要的头文件是 <time.h>&#xff0c;它包含了处理时间的各种函数和数据结构。 1. 数据结构 1.time_t: 一个类型定义&#xff0c;用于存储时间值&#xff0c…...

红酒与艺术展览:品味艺术与风味的双重盛宴

当艺术的魅力与红酒的醇香交织在一起&#xff0c;一场别开生面的盛宴便悄然展开。今天&#xff0c;让我们一同走进这场红酒与艺术展览的邂逅&#xff0c;品味艺术与风味的双重盛宴。 一、艺术展览的瑰丽世界 艺术展览&#xff0c;如同一座瑰丽的宝库&#xff0c;汇聚了无数艺…...

1Panel配置

1. 脚本安装 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh2. 配置镜像加速 在容器-> 配置中设置&#xff0c;否则安装软件会失败。 https://docker.211678.top https://docker.1panel.live …...

场外期权是如何定价的?场外期权定价的基本原理是什么?

场外期权的定价通常基于多种复杂的因素&#xff0c;以下是一些场外期权主要的影响因素和常见的定价方法&#xff1a; 影响场外期权定价的因素&#xff1a; 标的资产价格&#xff1a;标的资产当前的市场价格是定价的基础。标的资产价格波动率&#xff1a;波动率反映了标的资产价…...

vue中数据持久化

在Vue中&#xff0c;数据持久化通常指的是将Vue组件或应用中的数据保存到用户的浏览器或设备的存储中&#xff0c;以便在用户的会话&#xff08;session&#xff09;或跨会话&#xff08;如重新加载页面或重新打开浏览器&#xff09;中保持这些数据。Vue本身并不直接提供数据持…...

小白零基础学数学建模系列-Day3-线性回归模型的构建与评估

文章目录 1 线性回归基础1.1 线性回归概念与应用1.2 数学原理与推导1.3 线性回归的实现 2 案例分析&#xff1a;房价预测2.1 加载数据2.2 数据预处理2.3 探索性数据分析2.4 观察选择特征2.5 准备训练模型的数据2.6 将数据拆分为训练集和测试集2.7 训练和测试模型2.8 模型评估 3…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...