pod基础和镜像拉取策略

ops/2024/9/26 1:23:02/

目录

pod概念

pod的分类

1.基础容器 pause

2.初始化容器 init

实验:定义初始化容器

init容器的作用

实验:如何在容器内部进行挂载

镜像拉取策略


pod概念

pod是k8s里面的最小单位,pod也是最小化运行容器的资源对象。容器是基于pod在k8s集群当中工作的。在k8s集群当中,一个pod就代表着一个运行的进程,k8s的大部分组件都是围绕pod来进行的,主要是对pod进行支撑和扩展。deployment和service都是围绕pod来进行部署的。

k8s的pod有两种使用方式:

1.一个pod里面只有一个容器。这是最常见的方式。k8s管理的是pod,而不是容器

2.一个pod里面有多个容器。即使有多个容器,它们之间也是共享网络、共享挂载卷。

现在容器的技术要求:一个pod下的容器必须运行在同一个节点上。因为它们之间要共享网络、共享挂载卷,所以并不是pod自身提供的功能,而是pause容器提供共享网络和共享挂载卷。

流向图

流程:要在k8s集群上创建pod,此时集群分配到一个节点上,在节点上r创建pod的过程:先把pause镜像运行起来(初始化镜像),然后才拉取nginx镜像,在运行过程中,pause镜像不参与,只有删除的时候才参与,在删除镜像的过程中回收容器的资源和容器内的僵尸进程,然后再通知kubelet,kubelet回收pod,然后通知apiserver,然后通过apiserver存储到etcd

注:其中要先有pause基础容器,然后才拉取nginx镜像

pod的分类

1.基础容器 pause

用来共享网络、共享挂载卷

2.初始化容器 init

这种初始化容器包含在pod内部,属于pod的组成部分之一,而且伴随着pod的生命周期当中的一个环节:启动环节。

当我们拉起一个pod时,先构建pause,构建完成之后,如果包含初始化容器,必须要等到初始化容器部署完成之后,才会部署应用容器。

实验:定义初始化容器

mkdir k8s-yaml

cd k8s-yaml/

vim init.yaml

apiVersion: v1
kind: Pod
metadata:name: init-podlabels:app: test1
spec:initContainers:
#定义pod内部的初始化容器,一个pod里面可以有多个容器,它包含初始化容器- name: centos1image: centos:7command: ["/bin/bash","-c","echo 123 > /opt/123.txt && sleep 2"]
#多个命令用 ; 表示逻辑或,用 && 表示逻辑且    - name: centos2image: centos:7command: ["/bin/bash","-c","echo 456 > /opt/456.txt && sleep 2"]containers:
#业务容器- name: centos3image: centos:7command: ["/bin/bash","-c","echo system is running && sleep 3600"]

这里会有三个问题:

1.怎么查看这三个容器

kubectl exec -it pod名称 -c 容器名 bash  

kubectl logs -f pod名称 -c 容器名 bash   查看日志

初始化容器运行完成之后,即使命完成之后就退出了,但是节点上的容器还在,这个时候只能查询到业务容器的日志和状态。

初始化容器运行完毕之后必须要退出,否则后续的容器无法继续构建。也就是初始化容器后要加command 

2.这三个容器的启动先后顺序是什么

启动的先后顺序:先启动初始化的容器,再启业务容器。

3.初始化容器启动失败后pod能否进入ready状态

不能

init容器的作用

1.创建pod的时候,可以为业务容器初始化运行条件以及提供环境变量和一些软件(自定义)

2.初始化容器可以访问Secrets权限,不需要配置。业务容器必须要配置之后才能访问Secrets

初始化容器的核心作用:可以为业务容器运行之前,提供一些必要的条件。只有前置条件满足之后,那么业务容器才能运行。

实验:如何在容器内部进行挂载

apiVersion: v1
kind: Pod
matadata:name: init-podlabels:app: test1
spec:volumes:- name: testdataemptyDir: {}
#容器卷,容器内部挂载的数据卷initContainers:
#定义pod内部的初始化    一个pod里面有多个容器    初始化容器- name: centos1image: centos7command: ["/bin/bash","-c","echo 123 > /opt/123.txt && sleep 2"]volumeMounts:- name: testdata
#需要和上面的保持一致mountPath: /opt/data
#多个命令用 ; 表示逻辑或,用 && 表示逻辑且name: centos2image: centos7command: ["/bin/bash","-c","echo 456 > /opt/456.txt && sleep 2"]volumeMounts:- name: testdata
#需要和上面的保持一致mountPath: /opt/datacontainers:- name: centos3image: centos7command: ["/bin/bash","-c","echo system is running && sleep 3600"]volumeMounts:- name: testdata
#需要和上面的保持一致mountPath: /opt/data

镜像拉取策略

1. IfNotPresent :镜像在本地已经存在,就不会到镜像仓库再一次拉取镜像  (默认方式)

2. Always :每次创建pod都会拉取镜像

3. Never :从来不去仓库拉取镜像,只使用本地镜像

镜像的标签:nginx:1.22

如果不加标签就是nginx  默认就是nginx:laster    laster指的是最新版

如果没有镜像拉取策略,默认策略就是ifNotPresent,但是如果镜像没有指定标签,即使没有声明镜像的拉取策略,那么默认策略也是 Always


http://www.ppmy.cn/ops/105519.html

相关文章

【Centos】制作一键安装包.bin 文件

【Centos】制作一键安装包.bin 文件 1. 安装 Makeself2. 制作第一个Bin文件3. 执行 .bin 文件 在某些场景下,我们希望将一系列安装的动作打包在一个 .bin文件里面,在新的环境安装部署时,直接使用 .bin 文件来无脑部署。这时候就可以将安装所…

Java导出图片到excel

1、例如你有这样一个集合,具体结合你的业务场景 Data public class Student {/*** 姓名*/private String xh;/*** 学号*/private String xm;/*** 照片*/private byte[] zp; }2、相关代码 RequestMapping(value "/quereImgByPkid/{pkid}",method Requ…

通过组合Self-XSS + CSRF得到存储型XSS

在一次漏洞赏金挖掘中,我在更改用户名的功能点出发现了一个XSS,在修改用户名的地方添加了一个简单的XSS payload并且刷新页面: 用户设置面板 XSS证明 但是问题是这个功能配置并不是公共的,造成XSS漏洞的唯一方法是告诉受害者将其…

互联网算法备案必要性+攻略全流程详解【附件+流程】

一、算法备案的重要性 算法备案是指相关企业或组织向有关部门提交其使用的算法的相关信息,以接受监管和审查。这一举措有助于确保算法的公正性、透明性和合法性,保护用户的权益,促进数字经济的健康发展。 算法备案必要性强制性 例如&#x…

【PHP小课堂】学习PHP中的类相关函数

学习PHP中的类相关函数 今天我们学习的内容主要是和类、对象有关的一些数据函数。也就是以获取类、对象的信息属性为主的一些函数。这些函数本身比较简单,在日常的业务开发中,或者说很多框架的实现中都能见到它们的身影,但真正我们自己使用的…

火山引擎携手Keep,让线上健身更快更稳

今年年初,一部《热辣滚烫》又掀起了健身塑型风潮。作为健身领域的佼佼者,Keep 为用户提供全面的健身方案,以帮助用户实现健身目标。随着短视频运动的流行,Keep 覆盖的运动品类超过60类,同时不断尝试直播等新的内容承载…

科研绘图系列:R语言富集火山图和通路图(volcano plot pathway)

介绍 火山图是一种用于可视化基因表达差异的分析工具,它通过二维坐标系展示基因的表达量变化和统计显著性。该图谱的x轴表示基因表达的对数变化,而y轴表示其统计显著性。利用火山图,研究者能够快速识别出在不同条件下显著差异表达的基因。 随后,通过KEGG数据库提供的通路…

前端跨域问题详解与解决方案指南

什么是跨域问题 跨域问题通常是由浏览器的同源策略(Same-OriginPolicy,SOP)引起的访问问题 同源策略是浏览器的一个重要安全机制,它用于限制一个来源的文档或脚本如何能够与另一个来源的资源进行交互 同源策略的定义 同源策略要…