Kubernetes入门笔记 ——(3)理解pod对象

为什么需要pod

最为熟知的一句话:pod是k8s的最小调度单位。刚开始听到这句话时会想,已经有容器了,k8s为什么还要搞个pod出来?容器和pod是什么关系?容器的本质是进程,而k8s本质上类似操作系统。
熟悉Linux的都知道,一个应用往往不只一个进程孤伶伶地运行,而是以进程组的方式协同运行。更确切地说,Linux中“进程”都是线程,多个线程组成一个线程组,它们之间共享文件、信号、数据内存等,通过紧密协作完成一个应用程序的职责。
在Linux中pid=1的进程是init,后续所有进程都是它的子进程,它负责维护进程数(pstree查看进程树)状态,如回收子进程等。但是容器中pid=1的进程是应用,在一个容器中很难管理pid不等于1的其他进程。这就是容器的设计是单进程模型,不具有管理多进程的能力。所以对于Linux进程组中每一个进程,k8s中都需要一个单独的容器,这些容器需要互相依赖紧密合作,pod的概念就应运而生。

容器和pod的关系

pod由一个或多个容器组成,它们共享网络、存储和容器的运行配置。pod中的容器总是同时被调度,有共同的运行环境。

pod的意义

pod只是逻辑的概念,pod内的容器共享了某些资源,k8s引入pod目的是容器设计模式。

pod是如何实现的

一个有A、B两个容器的pod,如果使用docker拉起,那AB会存在依赖关系,如A先启动,B共享A的Volume等资源。而在pod设计中容器是对等关系,所以k8s引入Infra中间容器。在一个pod中Infra容器是第一个被创建的,其他的容器通过Join Network Namespace的方式与Infra关联

Infra容器必须占用足够小的资源,它使用k8s.gcr.io/pause的特殊镜像,是一个由汇编语言编写、永远处于暂停状态的容器,只有100-200KB。

在这里插入图片描述

Infra容器“Hold住”Network Namespace后,用户容器会可以加入到Infra容器的Network Namespace。Pod内的容器看到的网络设备跟Infra容器一样,共享这个Network Namespace的IP地址与端口号,可以直接使用localhost进行通信。 k8s在调度时将pod作为一个整体调度到某个节点,容器内可以用过所以基于容器内共享的网络、磁盘等信息,需要基于pod层级去设计。单独对用户容器配置是不可取的,因为中间容器Infra的rootfs里几乎什么都没有,没有随意发挥的空间。所以pod的本质类似于虚拟机,容器类似于虚拟机里的应用程序。

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

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

相关文章

在git使用SSH密钥进行github身份认证学习笔记

1.生成ssh密钥对 官网文档:Https://docs.github.com/zh/authentication(本节内容对应的官方文档,不清晰的地方可参考此内容) 首先,启动我们的git bush(在桌面右键,点击 Git Bush Here &#xf…

SystemVerilog学习(0)——目录与传送门

一、验证导论 SystemVerilog学习(1)——验证导论-CSDN博客文章浏览阅读403次。SystemVerilog自学,验证系统概述,什么是SVhttps://blog.csdn.net/apple_53311083/article/details/133953016 二、数据类型 SystemVerilog学习&…

非标设计之气缸的选型三

一、气缸正确安装方式,气缸调试注意事项 气缸安装方式: 气缸正确安装方式: NB(无支架) FB(脚座支架) FR(法兰) FA(前法兰) FB(后法兰) SC(单耳支架) DC(双耳支架) CT(耳轴支架) 气缸的安装形式决定方法:根据负荷运动方向决定气缸…

二百一十二、Flume——Flume实时采集Linux中的目录文件写入到HDFS中(亲测、附截图)

一、目的 在实现Flume实时采集Linux中的Hive日志写入到HDFS后,再做一个测试,用Flume实时采集Linux中的目录文件,即使用 Flume 监听Linux整个目录的文件,并上传至 HDFS中 二、前期准备 (一)安装好Hadoop、…

微信个人号机器人开发

简要描述: 取消消息接收 请求URL: http://域名地址/cancelHttpCallbackUrl 请求方式: POST 请求头Headers: Authorization:login接口返回Content-Type:application/json 无参数 返回数据&#xff…

PADS9.5封装库转换为AD库

1、打开PADS Layout,File – Library,选中usr,如下图: 2、封装– 导入,选中你的 .d后缀文件(也就是PADS的封装文件),打开。 3、元件 – 新建 – PCB封装 - 分配 - 确定。 4、,选择“斜线”…

vue3路由跳转页面到顶部,Stable Diffusion使用ControlNet

打开新页面时,页面自动回到顶部 在router.js页面添加 router.beforeEach((to, from, next) > {// 在每次导航之前滚动到页面顶部window.scrollTo({top: 0,behavior: smooth // 可选的,使滚动平滑进行});next(); }); Controlnet ControlNet 是用来…

RocketMQ-源码架构

源码环境搭建 1、主要功能模块 RocketMQ官方Git仓库地址:GitHub - apache/rocketmq: Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications. RocketMQ的官方网站下载:下载 | R…

001 LLM大模型之Transformer 模型

参考《大规模语言模型--从理论到实践》 目录 一、综述 二、Transformer 模型 三、 嵌入表示层(位置编码代码) 一、综述 语言模型目标是建模自然语言的概率分布,在自然语言处理研究中具有重要的作用,是自然 语言处理基础任务之一…

【软考中级——软件设计师】备战经验 笔记总结分享

考试成绩 我第一次备考是在2022 然后那时候取消了这次是第二次 靠前我一个月复习的看了以前的笔记 然后刷了七八道历年题目学习资料推荐 :zst——2021 b站链接自荐一下我的笔记 : 软考笔记专栏 视频确实很长 , 我的建议就是先看笔记 然后不会…

深度学习之全面了解网络架构

在这篇文章中,我们将和大家探讨“深度学习中的网络架构”这个主题,解释相关背景知识,并就一些问题进行解答。 我选择的问题反映的是常见用法,而不是学术用例。我将概括介绍该主题,然后探讨以下四个问题: …

泽攸科技二维材料转移台的应用场景及优势

随着二维材料的广泛研究和各种潜在应用的开发,对于二维材料样品的精密操控与转移的需求日益增加。特别是一些新型二维材料的制备和器件集成制备中,需要在显微镜下对样品进行观察与定位,并能够在微米甚至纳米量级上精确移動和转移样品。 传统…

做数据分析为何要学统计学(6)——什么问题适合使用方差分析?

方差分析(ANOVA,也称变异数分析)是英国统计学家Fisher(1890.2.17-1962.7.29)提出的对两个或以上样本总体均值进行差异显著性检验的方法。 它的基本思想是将测量数据的总变异(即总方差&#xff…

Go语言初始化数组的六种方式

介绍 在Go语言中,有多种方式可以初始化数组,本文将介绍初始化数组的六种方法。 方式1:指定数组大小并初始化 var array [3]int [3]int{1, 2, 3}指定数组的大小为3,并初始化为指定的值1, 2, 3。 方式2:根据初始化值…

Linux 中用户与权限

目录 1.添加用户 useradd 2.修改用户属性 usermod 3.用户组管理 3.1新建组 3.2 组和用户的关系 3.3 修改组名 3.4 删除组 4.权限管理 4.1.文件类型 4.2 权限 4.3 修改文件权限 1.添加用户 useradd 1)创建用户 useradd 用户名 2)设置用户密码…

Vue3问题:如何在页面上添加水印?

前端功能问题系列文章,点击上方合集↑ 序言 大家好,我是大澈! 本文约3100字,整篇阅读大约需要5分钟。 本文主要内容分三部分,如果您只需要解决问题,请阅读第一、二部分即可。如果您有更多时间&#xff…

【npm | npm常用命令及镜像设置】

npm常用命令及镜像设置 概述常用命令对比本地安装全局安装--save (或 -S)--save-dev (或 -D) 镜像设置设置镜像方法切换回npm官方镜像选择镜像源 主页传送门:📀 传送 概述 npm致力于让 JavaScript 开发变得…

MyBatis进阶之结果集映射注解版

文章目录 注解实现结果集映射注解实现关系映射常用功能注解汇总 注解实现结果集映射 注意 配置结果集映射&#xff0c;只用看 SQL 执行结果&#xff0c;不看 SQL 语句&#xff01; 注意 由于注解在映射结果集上没有实现 <resultMap> 的 100% 功能&#xff0c;因此&#x…

在AWS Lambda上部署标准FFmpeg工具——Docker方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 启动EC23 编写调用FFmpeg的代码4 生成docker镜像4.1 安装和启动Docker服务4.2 编写Dockerfile脚本4.3 生成镜像 5 推送镜像5.1 创建存储库5.2 给EC2赋予角色5.2.1 创建策略5.2.2…

Swagger2的使用

手写Api文档的几个痛点&#xff1a; 文档需要更新的时候&#xff0c;需要再次发送一份给前端&#xff0c;也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口&#xff0c;通常需要使用工具&#xff0c;比如postman 接口文档太多&#xff0c;不好管理 Sw…