三、k8s pod详解

pod详解的相关的基础知识和初始化容器,以及私有化的镜像仓库*。

pod进阶:pod的状态,pod的探针

pod的详解:

pod是k8s集群管理的最小单位,最小的资源组件,也是最小化运行容器的资源对象。

容器运行在pod里面,一个pod里面可以有多个容器。

一个pod代表的是在k8s集群中运行的进程,k8s的大多数组件都是围绕pod来进行支撑和运行。扩展pod的可能。

控制器就是用来管理pod,绝大多的pod都是基于控制器创建的。

每个pod都有一个独立的ip地址,创建pod的时候由cni网络插件从网段中指定一个ip地址分配给pod。

pod中的多个容器也是共享这一个ip地址。

一般情况下,一个pod里面只允许一个容器。

多个容器的情况下,一个pod的容器都在一个节点上。

pause容器:可以使pod内容器共享两种资源。网络和存储

每创建一个pod都会一个pod容器

网络:pod内的所有容器共享网络空间,包括ip和端口。

pod内的容器可以直接使用localhost互相通信。

存储:pod的生命周期是有限的,容器也会随着pod的销毁而销毁,也会因为pod的重启而重启

定义pod的时候,可以创建多个数据卷和宿主机挂载,pod内的所有容器共享数据卷。

pause容器又被称为初始化容器

初始化容器:

init容器,必须在应用容器启动之前完成,必须是成功,不能失败。

特点:

1、当定义了初始化容器之后,必须是允许到成功完成为止。

2、如果在pod运行过程中,init容器失败了,k8s会一直重启这个pod,知道init容器成功为止(pod重启策略是never就不会重启)

init容器的作用:

init容器必须要先成功运行,所以和应用容器之间是有分离的。

所以在业务容器运行之前,可以为应用容器安装一些需要的工具,代码,环境等等。

3、初始化容器运行完毕之后,就结束了,后面都是和业务容器进行交互。

4、pod内每个容器的名称不能重复

5、重启pod,相当于初始化容器也会重启,也必须成功,才会进入业务容器。

用来给业务容器传参数,初始化不是必须的,根据情况来进行调整。

镜像的拉取策略:

k8s中如何拉取镜像:

pod的核心就是容器,容器必须要有镜像,k8s在拉取镜像的时候可以由用户来定拉取镜像的方式

1、Always每次创建pod都会重新拉取一次镜像(保证镜像永远是最新的)

2、Nerver pod不会主动从网络拉取镜像,只从本地拉取。

3、IfNotPresent:默认模式,只有本地没有镜像时,才会去仓库中重新拉取

拉取策略

创建本地镜像仓库

创建一个登录凭证的清单:

直接把加密信息保存到集群中,无需在输入密码

base64 -w 0:

pod的状态说明:

1、pending,所有创建的资源对象都可能pending,pending属于已经提交给了apiserver,并且保存在了etcd当中。

但是因为种种原因,资源对象无法被创建。

1)、资源不足,节点上的磁盘,内存,cpu不足,无法创建资源对象。

2)、端口被占用,尤其是在pod当中使用hostPort,直接使用了宿主机的端口。

3)、网络原因,cni插件故障,flannel或者calico网络pod有问题,无法分配ip地址给pod。

4)、无节点可以部署资源对象,集群当中没有满足部署条件的节点,节点上有污点,设置了指定部署的条件。

以上的情况,只要满足了条件,pending会自动解除。

2、ContainerCreateing,pod正在拉取镜像,镜像拉取失败,或者超时,会出现

3、imagePullBackoff,镜像拉取失败,超时,镜像名称配置错误,和仓库的密钥配置错误。

4、CrashLoopBackOff:pod内的容器已经启动了,但是以异常状态退出了,就要查看一下pod的日志。也可能是部署的时候节点资源有,但是pod内的容器运行之后,资源不足,也会导致容器异常退出。

5、complete:容器已经运行完毕,以正常状态退出,返回码是0

容器没有可持久化运行的命令,启动之后就会立刻退出。或者是用户使用了command和args,把容器的输出命令覆盖了。

6、error:pod在启动过程中发生错误,自定义执行的命令报错,挂载点不存在,configmap配置和secret,以及pv等不存在。

pod的权限不足,容器无法使用集群资源。

7、Terminating状态,表示资源对象正在被删除和回收资源的过程。

删除pod时i,会进入这个状态,有一个资源回收的过程。

特殊情况下,需要使用立刻删除,正常情况下不需要使用。

8、initialized:pod中的所有容器已经初始化完毕

9、ready 正常状态,表示pod已经部署完毕,可以使用

1/1:表示的业务容器的数量,初始化容器不再这个范围,所有的容器都是ready之后,才可以使用。

pod状态一览:
CrashLoopBackOff:    容器退出,kubelet正在将它重启
InvalidImageName:    无法解析镜像名称
ImageInspectError:   无法校验镜像
ErrImageNeverPull:   策略禁止拉取镜像
ImagePullBackOff:    正在重试拉取
RegistryUnavailable: 连接不到镜像中心
ErrImagePull:        通用的拉取镜像出错
CreateContainerConfigError: 不能创建kubelet使用的容器配置
CreateContainerError: 创建容器失败
m.internalLifecycle.PreStartContainer 执行hook报错
RunContainerError:   启动容器失败
PostStartHookError:   执行hook报错
ContainersNotInitialized: 容器没有初始化完毕
ContainersNotReady:   容器没有准备完毕
ContainerCreating:    容器创建中
PodInitializing:pod   初始化中
DockerDaemonNotReady:  docker还没有完全启动
NetworkPluginNotReady: 网络插件还没有完全启动
Evicte:     pod被驱赶

pod的资源限制:

pod只能使用节点资源的配额:

cpu:

数字表达:1   2    0.5

1个cpu,2个cpu,0.5半个cpu,最小0.1个cpu。

单位表达:millicores为单位

m:1000m    2000m   500m    100m

内存:ki  Mi   Gi   Ti

在工作中,只需要limits字段,可以不写requests。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV 相机标定流程指南

OpenCV 相机标定流程指南 前置准备标定流程结果输出与验证建议源代码 OpenCV 相机标定流程指南 https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html https://learnopencv.com/camera-calibration-using-opencv/ 前置准备 制作标定板:生成高精度棋…

【Windows】PowerShell 缓存区大小调节

PowerShell 缓存区大小调节 方式1 打开powershell 窗口属性调节方式2,修改 PowerShell 配置文件 方式1 打开powershell 窗口属性调节 打开 CMD(按 Win R,输入 cmd)。右键标题栏 → 选择 属性(Properties)…

127,【3】 buuctf [NPUCTF2020]ReadlezPHP

进入靶场 吓我一跳 查看源码 点击 审计 <?php// 定义一个名为 HelloPhp 的类&#xff0c;该类可能用于执行与日期格式化相关的操作 class HelloPhp {// 定义一个公共属性 $a&#xff0c;用于存储日期格式化的模板public $a;// 定义一个公共属性 $b&#xff0c;用于存储…

问题:通过策略模式+工厂模式+模板方法模式实现ifelse优化

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 示例&#xff1a;商城系统有会员系统&#xff0c;不同会员有不同优惠程度&#xff0c;普通会员不优惠&#xff1b;黄金会员打8折&#xff1b;白金会员优惠50元&#xff0c;再打7折&#xff1b; 问题描…

Android Studio2024版本安装环境SDK、Gradle配置

一、软件版本&#xff0c;安装包附上 &#x1f449;android-studio-2024.1.2.12-windows.exe&#x1f448; &#x1f449;百度网盘Android Studio安装包&#x1f448; &#xff08;若下载连链接失效可去百度网盘链接下载&#xff09; 二、软件安装过程 ​ ​ ​ 三、准备运行…

Leetcode - 149双周赛

目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件&#xff1a; 相邻数字互不相同两个数字的的…

使用 meshgrid函数绘制网格点坐标的原理与代码实现

使用 meshgrid 绘制网格点坐标的原理与代码实现 在 MATLAB 中&#xff0c;meshgrid 是一个常用函数&#xff0c;用于生成二维平面网格点的坐标矩阵。本文将详细介绍如何利用 meshgrid 函数生成的矩阵绘制网格点的坐标&#xff0c;并给出具体的代码实现和原理解析。 实现思路 …

【AI赋能】蓝耘智算平台实战指南:3步构建企业级DeepSeek智能助手

蓝耘智算平台实战指南&#xff1a;3步构建企业级DeepSeek智能助手 引言&#xff1a;AI大模型时代的算力革命 在2025年全球AI技术峰会上&#xff0c;DeepSeek-R1凭借其开源架构与实时推理能力&#xff0c;成为首个通过图灵测试的中文大模型。该模型在语言理解、跨模态交互等维…

Mac(m1)本地部署deepseek-R1模型

1. 下载安装ollama 直接下载软件&#xff0c;下载完成之后&#xff0c;安装即可&#xff0c;安装完成之后&#xff0c;命令行中可出现ollama命令 2. 在ollama官网查看需要下载的模型下载命令 1. 在官网查看deepseek对应的模型 2. 选择使用电脑配置的模型 3. copy 对应模型的安…

第七节 文件与流

基本的输入输出&#xff08;iostream&#xff09; C标准库提供了一组丰富的输入/输出功能&#xff0c;C的I/O发生在流中&#xff0c;流是字节序列。如果字节流是从设备&#xff08;键盘、磁盘驱动器、网络连接等&#xff09;流向内存&#xff0c;叫做输入操作。如果字节流是从…

网络安全溯源 思路 网络安全原理

网络安全背景 网络就是实现不同主机之间的通讯。网络出现之初利用TCP/IP协议簇的相关协议概念&#xff0c;已经满足了互连两台主机之间可以进行通讯的目的&#xff0c;虽然看似简简单单几句话&#xff0c;就描述了网络概念与网络出现的目的&#xff0c;但是为了真正实现两台主机…

内网ip网段记录

1.介绍 常见的内网IP段有&#xff1a; A类&#xff1a; 10.0.0.0/8 大型企业内部网络&#xff08;如 AWS、阿里云&#xff09; 10.0.0.0 - 10.255.255.255 B类&#xff1a;172.16.0.0/12 中型企业、学校 172.16.0.0 - 172.31.255.255 C类&#xff1a;192.168.0.0/16 家庭…

SQL Server 逻辑查询处理阶段及其处理顺序

在 SQL Server 中&#xff0c;查询的执行并不是按照我们编写的 SQL 语句的顺序进行的。相反&#xff0c;SQL Server 有自己的一套逻辑处理顺序&#xff0c;这个顺序决定了查询的执行方式和结果集的生成。了解这些处理阶段和顺序对于优化查询性能和调试复杂查询非常重要。 SQL …

四、OSG学习笔记-基础图元

前一章节&#xff1a; 三、OSG学习笔记-应用基础-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145514021 代码&#xff1a;CuiQingCheng/OsgStudy - Gitee.com 一、绘制盒子模型 下面一个简单的 demo #include<windows.h> #include<osg/Node&…

性格测评小程序03搭建用户管理

目录 1 创建数据源2 搭建后台3 开通权限4 搭建启用禁用功能最终效果总结 性格测评小程序我们期望是用户先进行注册&#xff0c;注册之后使用测评功能。这样方便留存用户的联系信息&#xff0c;日后还可以推送对应的相关活动促进应用的活跃。实现这个功能我们要先创建数据源&…

Ubuntu 如何安装Snipaste截图软件

在Ubuntu上安装Snipaste-2.10.5-x86_64.AppImage的步骤如下&#xff1a; 1. 下载Snipaste AppImage 首先&#xff0c;从Snipaste的官方网站或GitHub Releases页面下载Snipaste-2.10.5-x86_64.AppImage文件。 2. 赋予执行权限 下载完成后&#xff0c;打开终端并导航到文件所在…

突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长

文章目录 写在文章开头为什么想尝试用go复刻redis复刻redis的心路历程程序员对于舒适区的一点看法关于mini-redis的一些展望结语 写在文章开头 在程序员的技术生涯长河中&#xff0c;我们常常会在熟悉的领域中建立起自己的“舒适区”。于我而言&#xff0c;Java 就是这片承载…

【自然语言处理】TextRank 算法提取关键词、短语、句(Python源码实现)

文章目录 一、TextRank 算法提取关键词 [工具包]二、TextRank 算法提取关键短语[工具包]三、TextRank 算法提取关键句[工具包]四、TextRank 算法提取关键句&#xff08;Python源码实现&#xff09; 一、TextRank 算法提取关键词 [工具包] 见链接 【自然语言处理】TextRank 算法…

展厅为何倾向使用三维数字沙盘进行多媒体互动设计?优势探讨!

随着数字技术的迅猛进步&#xff0c;展厅多媒体互动设计正迎来深刻变革。其中&#xff0c;三维数字沙盘作为经典沙盘模型的革新之作&#xff0c;不仅保留了其空间布局直观展示的优点&#xff0c;更巧妙融入光影互动与中控系统&#xff0c;推动展览展示向智能化迈进。今日&#…

SDKMAN! 的英文全称是 Software Development Kit Manager(软件开发工具包管理器)

文章目录 SDKMAN! 的核心功能SDKMAN! 的常用命令SDKMAN! 的优势总结 SDKMAN! 的英文全称是 Software Development Kit Manager。它是一个用于管理多个软件开发工具&#xff08;如 Java、Groovy、Scala、Kotlin 等&#xff09;版本的工具。SDKMAN! 提供了一个简单的方式来安装、…