Kubernetes基础_02_Pod全解析

news2024/12/19 16:47:16

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、Pod的生命周期Lifecycle
  • 二、Pod的重启策略RestartPolicy
  • 三、静态Pod
  • 四、Pod的健康检查
  • 总结


前言

Pod是Kubernetes最小单位,当然一个Pod可以有多个Container,但是container是docker的元素,不是Kubernetes的元素,所以Pod就是Kubernetes的最小单位。

Pod 组成 ReplicaSet(就是RS),ReplicaSet组成 Deployment StatefulSet DaemonSet Job/CronJob,浙西都是Controller,由静态Pod ControllerManager 来管理,然后Service资源通过 selecter - label 标签选择器与各种 Controller 绑定,通过 targetPort - port 完成端口映射,Service 分为普通Service和无头Service两类,所有的这些都在 namespace 命令空间里面。

一、Pod的生命周期Lifecycle

官网:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/

  • 挂起(Pending):Pod 已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度 Pod 的时间和通过网络下载镜像的时间,这可能需要花点时间。

  • 运行中(Running):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。

  • 成功(Succeeded):Pod 中的所有容器都被成功终止,并且不会再重启。

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

  • 未知(Unknown):因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败。

注意:对于最小逻辑单元pod来说( kubectl get pod) 正常状态是 running;
对于最小物理单元node来说( kubectl get node),正常状态是 ready 。

二、Pod的重启策略RestartPolicy

官网:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

A PodSpec has a restartPolicy field with possible values Always, OnFailure, and Never. The default value is Always. (默认是always) restartPolicy applies to all Containers in the Pod. restartPolicy only refers to restarts of the Containers by the kubelet on the same node. Exited Containers that are restarted by the kubelet are restarted with an exponential back-off delay (10s, 20s, 40s …) capped at five minutes, and is reset after ten minutes of successful execution. As discussed in the Pods document, once bound to a node, a Pod will never be rebound to another node.

小结:Pod中重启策略包括三种,如下:

  • Always:容器失效时重启(默认方式)
  • OnFailure:容器终止运行且退出码不为0时重启,即失败重启
  • Never:永远不重启

三、静态Pod

Pod分为两类,一类是普通Pod,通过yaml创建,一类是静态Pod(Static Pod)。

静态Pod
(1) 静态Pod是由kubelet进行管理的;
(2) 存在于特定的Node上,比如master节点Node;
(3) 无法与ReplicationController,Ddeployment或者DaemonSet进行关联,也无法进行健康检查。

普通Pod
(1) 通过API Server进行管理;
(2) 随机分配到某个node执行,除非使用 selectNode 属性指定运行在哪个node上;
(3) 可以与ReplicationController,Ddeployment或者DaemonSet进行关联,也无法进行健康检查。

静态Pod可以通过 kubectl get pods -o wide -n kube-system 来查看,这些都是 kubeadm-init 初始化安装的, 在 /etc/kubernetes/manifests 目录下, 里面有很多 yaml ,如下:
在这里插入图片描述

问题:开发中,程序员如何一眼判断哪些是静态Pod,哪些是普通Pod?
回答:静态Pod存在于特定的Node上,比如master节点Node。使用 kubectl get pod -o wide ,查看 IP 这一列,这一列都是内网ip,但是有不同,静态Pod都是使用的是具体的node的内网ip,普通Pod使用的都是 calico 生成的虚拟IP。

在这里插入图片描述

四、Pod的健康检查

pod的健康检查:deployment里面的一个可选属性,即是否开启健康检查。

官网:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes

Pod的健康检查是通过探针来完成的,针对运行中的容器,kubelet 可以选择是否执行以下三种探针(存活态探针、就绪态探针、启动探针 ),以及如何针对探测结果作出反应:

livenessProbe
指示容器是否正在运行。如果存活态探测失败,则 kubelet 会杀死容器, 并且容器将根据其重启策略(三种:Always、OnFailure、Never)决定未来。如果容器不提供存活探针, 则默认状态为 Success。

readinessProbe
指示容器是否准备好为请求提供服务。如果就绪态探测失败, 端点控制器将从与 Pod 匹配的所有服务的端点列表中删除该 Pod 的 IP 地址。 初始延迟之前的就绪态的状态值默认为 Failure。 如果容器不提供就绪态探针,则默认状态为 Success。

startupProbe
指示容器中的应用是否已经启动。如果提供了启动探针,则所有其他探针都会被 禁用,直到此探针成功为止。如果启动探测失败,kubelet 将杀死容器,而容器依其 重启策略进行重启。 如果容器没有提供启动探测,则默认状态为 Success。


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CTFHub | 布尔盲注

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…

无限题库公众号系统搭建

无限题库公众号系统搭建 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(…

《设计模式:可复用面向对象软件的基础》——行为模式(笔记)

文章目录五、行为模式5.1 CHAIN OF RESPONSIBILITY(职责链)1.意图2.动机3.适用性4.结构5.参与者6.协作7.效果8.实现9.代码示例10.相关模式5.2 COMMAND(命令)1.意图2.别名3.动机4.适用性5.结构6.参与者.7.协作8.效果9.实现10.代码示例11.相关模式5.3 INTE…

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录

很高兴和大家在这里分享我的最新专栏 Pytorch深度学习理论篇(2023版),恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~ 0 Pytorch深度学习理论篇实战篇(2023版)大纲 1 Pytorch深度学习理论篇实战篇(2023版)专栏地址&…

嵌入式应用-详解移植并使用freetype显示文字

目录 前言 1. freetype和相关概念简介 2.freetype显示文字流程和主要函数 2.1 包含头文件及API头文件:ft2build.h 2.2 初始化: FT_InitFreetype 2.3 加载(打开)字体Face: FT_New_Face 2.4 设置字体大小&#x…

sqrt函数模拟实现的两种方法

起因:在leetcode刷题时,有一道题目考察了有关sqrt的原理的题目,当时就去查了网上的文章,结果发现,一开始的时候看的很懵,最后也是搞定了两种方法,今天我就以最简单的方式写下这两种方式的思路讲解&#xff…

Python批量获取高校基本信息

文章目录前言一、需求二、分析三、处理四、运行效果前言 为了更好的掌握数据处理的能力,因而开启Python网络爬虫系列小项目文章。 小项目小需求驱动,每篇文章会使用两种以上的方式(Xpath、Bs4、PyQuery、正则等)获取想要的数据。…

T31快启图像效果优化

T31快启图像效果优化 liwen01 20220821 (一)基础方法及概念 参考文档 《Ingenic_Zeratul_T31_快起效果调试说明_20200927_CN》 (1)起始EV参数 IPC 每次启动都是冷启动,画面有一个暗变亮的过程,称作为AE收敛过程(自动曝光收敛过程)。 为了加快AE收…

LeetCode50天刷题计划第二季(Day 23 — 重排链表(16.20- 17.00)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、题目重排链表示例提示二、思路三、代码前言 链表基础题加一 一、题目 重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为&#xff…

基于粒子群优化算法的时间调制非线性频偏FDA(Matlab代码实现)

🎉🎉🎉🎉欢迎您的到来😊😊😊 🥬博客主页:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 📝床头铭:将来的我一定会感谢…

ARM64下构建 UEFI 模块

构建Application工程目录 mkdir edk2/ShellPkg/Application/ShellHello 目录内容如下: 编写 ShellHello.c /* edk2/ShellPkg/Application/ShellHello/ShellHello.c*/ #include <Uefi.h> #include <Library/UefiLib.h> #include <Library/DebugLib.h> #i…

上手之Python之异常

什么是异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生 早期计算机采用大量继电器工作&#xff0c;马克二型计算机就是这样的。 1945年9月9日&…

【JVM技术专题】 深入学习JIT编译器实现机制「 原理篇」

前提概要 解释器 Java程序最初是通过解释器(Interpreter)进行解释执行的&#xff0c;当虚拟机发现某个方法或代码块的运行特别频繁的时候&#xff0c;就会把这些代码认定为“热点代码”&#xff08;hotspot code&#xff09;。正因为如此&#xff0c;我们的hotspot的虚拟机就是…

将matlab数据导入到Python中使用

相信不少小伙伴都遇到过和我一样的问题&#xff0c;就是在尝试使用scipy.io.loadmat将matlab类型的数据导入python中的时候遇到如下错误提示。 import scipy as sc# 设定需要导入的matlab数据目录 path_TE00 r"D:\Window自带文件夹\桌面\PIC Design\Lumerical\Tutorials…

Apollo GraphQL

一、Apollo GraphQL介绍 Apollo 是一个开源的 GraphQL 开发平台&#xff0c; 提供了符合 GraphQL 规范的服务端和客户端实现。使用 Apollo 可以帮助我们更方便快捷的开发使用 GraphQL。 ● 官网&#xff1a;https://www.apollographql.com/ ● GitHub 相关开源仓库&#xff1a…

Vite+Vue+Electron环境搭建

因为electron可以直接加载html文件&#xff0c;也可以直接加载url链接&#xff0c;所以&#xff0c;我们可以在调试过程中使用url地址&#xff0c;来动态显示我们的改变过程。 electron简单来说就是对html的一种封装&#xff0c;所以我们先来搭建vue的开发环境&#xff0c;这里…

LQ0135 左孩子右兄弟【DFS+二叉树】

题目来源&#xff1a;蓝桥杯2021初赛 C A组H题 题目描述 对于一棵多叉树&#xff0c;我们可以通过“左孩子右兄弟” 表示法&#xff0c;将其转化成一棵二叉树。 如果我们认为每个结点的子结点是无序的&#xff0c;那么得到的二叉树可能不唯一。 换句话说&#xff0c;每个结点可…

并发编程之ForkJoin框架

什么是 Fork/Join 框架 Fork/Join 是从 java7 开始提供的并行执行任务的框架&#xff0c;是一个把大任务分割成若干个小任务&#xff0c;最终汇总每个小任务的结果&#xff0c;得到大任务结果的框架. 如下图&#xff1a; Fork/Join 的特性 ForJoinPool 不是为了替代 Execu…

毕业仅1年,干Python赚了50W!网友:不是吹的

前言 惊讶 ​Py现状&#xff1a;Python职位月薪5W起&#xff1f; 其他程序员&#xff1a;心态塌了&#xff01; 秒杀各行业薪资榜单&#xff0c;拿下编程语言排行榜的Python&#xff0c;工资真的如网上说的开挂了吗&#xff1f;有人在网上发现这样的一条评论信息&#xff1a…

公众号网课查题接口题库

公众号网课查题接口题库 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…