pod基础和镜像拉取策略

news2024/11/28 7:25:41

目录

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-pod
  labels:
    app: test1
spec:
  initContainers:
#定义pod内部的初始化容器,一个pod里面可以有多个容器,它包含初始化容器
  - name: centos1
    image: centos:7
    command: ["/bin/bash","-c","echo 123 > /opt/123.txt && sleep 2"]
#多个命令用 ; 表示逻辑或,用 && 表示逻辑且    
  - name: centos2
    image: centos:7
    command: ["/bin/bash","-c","echo 456 > /opt/456.txt && sleep 2"]
  containers:
#业务容器
  - name: centos3
    image: centos:7
    command: ["/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-pod
  labels:
    app: test1
spec:
  volumes:
  - name: testdata
    emptyDir: {}
#容器卷,容器内部挂载的数据卷
  initContainers:
#定义pod内部的初始化    一个pod里面有多个容器    初始化容器
  - name: centos1
    image: centos7
    command: ["/bin/bash","-c","echo 123 > /opt/123.txt && sleep 2"]
    volumeMounts:
    - name: testdata
#需要和上面的保持一致
      mountPath: /opt/data
#多个命令用 ; 表示逻辑或,用 && 表示逻辑且
    name: centos2
    image: centos7
    command: ["/bin/bash","-c","echo 456 > /opt/456.txt && sleep 2"]
    volumeMounts:
    - name: testdata
#需要和上面的保持一致
      mountPath: /opt/data
  containers:
  - name: centos3
    image: centos7
    command: ["/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.coloradmin.cn/o/2099759.html

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

相关文章

flink---window

Window介绍 DataStream: https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/datastream/operators/windows/ SQL: https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/table/sql/queries/window-tvf/ 1、为什么需要Window?…

机械学习—零基础学习日志(概率论总笔记2)

正态分布 高斯分布也叫做正态分布。假定事件A经过n次试验后发生了k次,把k的概率分布图画一下,就得到了一个中间鼓起,像倒扣的钟一样的对称图形。 18世纪,数学家棣莫弗和拉普拉斯把这种中间大,两头小的分布称为正态分布…

社交媒体的智能变革:Facebook AI优化用户体验

Facebook作为全球领先的社交平台,一直致力于通过人工智能(AI)技术提升用户体验。AI技术在Facebook的应用涵盖了推荐系统、自然语言处理、广告投放和用户反馈等多个方面,使平台的互动和内容体验更加智能和个性化。 推荐系统的智能化…

四、材料与制造工艺 笔记

目录 四、材料与制造工艺 4.1 常见聚合物类材料(塑料) 4.1.1 聚丙烯塑料发泡材料(EPP) 4.1.2 尼龙 (1)PA66 4.1.3光固化树脂 4.1.4 KT板 4.1.5 术板 4.1.6 EDA 3D打印 (1&#xf…

基于VUE的校园二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于VUE的校园二手物品交易管理系统8拥有两种角色 管理员:闲置物品管理、订单管理、用户管理 用户:登录注册、购物车、发布闲置物品、评论、发货、收货地址管理等…

C++string类(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Cstring类(1) 收录于专栏【C语法基础】 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 目录 1. 为什么学习stri…

旋转编码器模块(软件消抖)

目录 旋转编码器简介 模块接线 正交编码器控制原理 模块代码 Encoder.h Encoder.c main.c 消抖代码 Encoder.c 旋转编码器简介 旋转编码器是一种将旋转角位移转换为一连串数字脉冲信号的旋转式电位器。当编码器的旋转轴旋转时,其输出端可以输出与旋转…

C语言 strlen求字符串长度

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; C 标准库 - <string.h…

OpenCV中的颜色映射函数applyColorMap的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 OpenCV 中应用类似于 GNU Octave 或 MATLAB 中的颜色映射&#xff0c;虽然 OpenCV 中的颜色映射类型与 GNU Octave 或 MATLAB 中的颜色映射类型名…

Windows Server 安装MySQL教程(图文)

本篇教程&#xff0c;在服务器Windows Server 2016 &#xff08;中文版&#xff09;上安装MySQL8.0&#xff0c;并记录详细的安装步骤。 1、下载安装包 在mysql官网上下载安装包 下载地址&#xff1a;https://dev.mysql.com/downloads/installer/ 2、安装步骤 下载之后&#xf…

常见概念 -- WSS光层环回

光层环回&#xff0c;即业务收发经过同一块WSS单板&#xff0c;在WSS单板的DM/AM层面或内部端口层面进行环回&#xff0c;用于定位问题。 目前&#xff0c;光层环回有两种实现方式。 方式一&#xff1a;需要人工进行物理连纤&#xff0c;将WSS单板的DM和AM接口用光纤环回&…

3.2 寻址方式

&#x1f393; 微机原理考点专栏&#xff08;通篇免费&#xff09; 欢迎来到我的微机原理专栏&#xff01;我将帮助你在最短时间内掌握微机原理的核心内容&#xff0c;为你的考研或期末考试保驾护航。 为什么选择我的视频&#xff1f; 全程考点讲解&#xff1a;每一节视频都…

Datawhale x李宏毅苹果书AI夏令营深度学习详解入门 Task3

在深度学习中&#xff0c;模型偏差、优化问题和过拟合是我们经常会遇到的挑战。理解这些问题并找到合适的解决方法对于提高模型的性能至关重要。 第一章&#xff1a;模型偏差 1.1 模型过于简单可能导致模型偏差 在应用机器学习算法时&#xff0c;如果模型过于简单&#xff0c;就…

前端三件套配合MarsCode实现钉钉官网动画 # 豆包MarsCode

文章目录 如何固定动画区域创建项目MarsCode 设置样式MarsCode 优点1MarsCode 缺点MarsCode 优点2 js实现动画实现获取动画曲线的函数为什么实现这个函数&#xff1f;根据当前滚动位置&#xff0c;计算每一个元素不同的数值更新 dom 的 style更新 animationMapgetDomAnimation …

| AutoDL租服务器 |AutoDL租服务器保姆级教程

&#x1f411; | AutoDL租服务器 |AutoDL租服务器保姆级教程 &#x1f411; 文章目录 &#x1f411; | AutoDL租服务器 |AutoDL租服务器保姆级教程 &#x1f411;&#x1f411; 前言&#x1f411;&#x1f411; 实例创建&#x1f411;&#x1f411; 环境配置&#x1f411;&am…

C# DLL已定义类或方法,但是编译报错未定义

现有应用程序1个&#xff0c;动态链接库3个分别称为A、B、C。 应用程序输出在目录P1&#xff0c;动态链接库输出在目录P2。 应用程序引用A、B、C动态链接库&#xff0c;动态链接库A引用B&#xff0c;B引用C。 此时修改动态链接库C&#xff0c;在VS中开发应用程序时可以识别到…

MQ专题:消息积压相关问题和解决思路

一、如何发现消息出现了堆积 二、常见的原因及解决方案 三、消息出现了大量堆积&#xff0c;如何解决 四、建议

2024年软考-信息安全工程师考试介绍及考纲

2024年软考-信息安全工程师考试介绍及考纲 2024年软考-信息安全工程师 考试介绍及考纲 一、考试信息 考试时间&#xff1a;预计2024年11月9日-12日。 考试科目&#xff1a; 科目一&#xff1a;基础知识 客观题&#xff1a;75空 满分&#xff1a;75分 科目二&#xff1a;应用…

C++ | Leetcode C++题解之第391题完美矩形

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {int n s.size(), m t.size();vector<vector<int> > f(m 1, vector<int>(26, 0));for (int i 0; i < 26; i) {f[m][i] m;}for (int i m - 1; …

linux中最简单方式使用crontab打印当前时间

因特殊需求&#xff0c;需要在linux的某个文件中每分钟打印出当前时间。 先手动试一下命令&#xff1a; echo $(date) 打印出&#xff1a; Mon Sep 1 09:28:06 AM CST 2024 而我需要达到的效果是&#xff1a; 2024-09-01 09:28:06 于是命令改成了&#xff1a; echo $(date &quo…