Pod:Kubernetes里最核心的概念

为了解决这样多应用联合运行的问题,同时还要不破坏容器的隔离,就需要在容器外面再建立一个“收纳舱”,让多个容器既保持相对独立,又能够小范围共享网络、存储等资源,而且永远是“绑在一起”的状态。

Pod 的概念也就呼之欲出了,容器正是“豆荚”里那些小小的“豌豆”,你可以在 Pod 的 YAML 里看到,“spec.containers”字段其实是一个数组,里面允许定义多个容器。

因为 Pod 是对容器的“打包”,里面的容器是一个整体,总是能够一起调度、一起运行,绝不会出现分离的情况,而且 Pod 属于 Kubernetes,可以在不触碰下层容器的情况下任意定制修改。所以有了 Pod 这个抽象概念,Kubernetes 在集群级别上管理应用就会“得心应手”了。

Kubernetes 让 Pod 去编排处理容器,然后把 Pod 作为应用调度部署的最小单位,Pod 也因此成为了 Kubernetes 世界里的“原子”(当然这个“原子”内部是有结构的,不是铁板一块),基于 Pod 就可以构建出更多更复杂的业务形态了。

 所有的 Kubernetes 资源都直接或者间接地依附在 Pod 之上,所有的 Kubernetes 功能都必须通过 Pod 来实现,所以 Pod 理所当然地成为了 Kubernetes 的核心对象。

我们在使用 Docker 创建容器的时候,可以不给容器起名字,但在 Kubernetes 里,Pod 必须要有一个名字,这也是 Kubernetes 里所有资源对象的一个约定。

“containers”是一个数组,里面的每一个元素又是一个 container 对象,也就是容器。

和 Pod 一样,container 对象也必须要有一个 name 表示名字,然后当然还要有一个 image 字段来说明它使用的镜像,这两个字段是必须要有的,否则 Kubernetes 会报告数据验证错误。

  • ports:列出容器对外暴露的端口,和 Docker 的 -p 参数有点像。
  • imagePullPolicy:指定镜像的拉取策略,可以是 Always/Never/IfNotPresent,一般默认是 IfNotPresent,也就是说只有本地不存在才会远程拉取镜像,可以减少网络消耗。
  • env:定义 Pod 的环境变量,和 Dockerfile 里的 ENV 指令有点类似,但它是运行时指定的,更加灵活可配置。
  • command:定义容器启动时要执行的命令,相当于 Dockerfile 里的 ENTRYPOINT 指令。
  • args:它是 command 运行时的参数,相当于 Dockerfile 里的 CMD 指令,这两个命令和 Docker 的含义不同,要特别注意。

不过 kubectl exec 的命令格式与 Docker 有一点小差异,需要在 Pod 后面加上 --,把 kubectl 的命令与 Shell 命令分隔开,你在用的时候需要小心一些:

kubectl exec -it ngx-pod -- sh

Pod 屏蔽了容器的一些底层细节,同时又具有足够的控制管理能力,比起容器的“细粒度”、虚拟机的“粗粒度”,Pod 可以说是“中粒度”,灵活又轻便,非常适合在云计算领域作为应用调度的基本单元,因而成为了 Kubernetes 世界里构建一切业务的“原子”。

此文章为7月Day12学习笔记,内容来源于极客时间《Kubernetes入门实战课》,推荐该课程。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我在VScode学Java类与对象(Java的类与对象、this关键字)第一辑

我的个人博客主页:如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客:《我在VScode学Java》 关于我在VScode学Java(Java方法method) 类是描述了一组有相同特性(属性&#xff09…

从实体按键看 Android 车载的自定义事件机制

在汽车数字化、智能化变革的进程中,越来越多的车机设计或部分、或全部地舍弃了实体按键,进而把车主操作的入口转移到了车机 UI 以及语音助手。 但统一、高效的零层级 UI 颇为困难,语音的准确率、覆盖率亦不够完善,那么在当下的阶段…

PCIe总线的链路训练

目录 概述 链路训练的目的 几个关键概念 Lane reveral : Polarity inversion: De-skew: link number: Lane number: Bit lock: Symbol lock: 几个特殊序列: TS1和TS2&am…

微软开源了一个 助力开发LLM 加持的应用的 工具包 semantic-kernel

在首席执行官萨蒂亚纳德拉(Satya Nadella)的支持下,微软似乎正在迅速转变为一家以人工智能为中心的公司。最近微软的众多产品线都采用GPT-4加持,从Microsoft 365等商业产品到“新必应”搜索引擎,再到低代码/无代码Powe…

手把手教你写通讯录(含动态版)

目录 一、框架 二、实现 1.初始化通讯录 2.增加联系人 3.打印通讯录 4.删除联系人 5.修改联系人 6.查找联系人 7.退出通讯录 8.拓展:通讯录排序 9.全代码 三、动态版 1.结构体修改 2.初始化修改 3.扩容实现 4.善后函数 5.全代码 一、框架 实现通讯录…

稀疏光流法跟中移动物体、监督学习聚类、K均值聚类、加载深度神经网络模型、深度神经网络模型的使用

目录 1、稀疏光流法跟中移动物体 2、监督学习聚类 3、K均值聚类 4、加载深度神经网络模型 5、深度神经网络模型的使用 1、稀疏光流法跟中移动物体 //稀疏光流法跟中移动物体 vector<Scalar> color_lut;//颜色查找表 void draw_lines(Mat &image, vector<Point…

【已解决】pcl引用头文件convolution_3d.hpp时报错

在做pcl的高斯滤波/卷积滤波的时候&#xff0c;引用convolution_3d.hpp出现问题,报下面的错误 当前pcl版本号为pcl1.12.1 错误内容 严重性 代码 说明 文件 行 错误 C2143 语法错误: 缺少“;”(在“<”的前面) C:\pcl12\PCL 1.12.1\include\pcl-1.12\pcl\filters\con…

机器学习实战 | 深度学习初级项目学习和总结

目录 简介神经网络类型和用法总结1. 卷积神经网络CNN特点结构用处 2. 循环神经网络RNN特点结构用处 3. 长短期记忆网络LSTM特点结构用处 基于Keras的神经网络用法总结1. 创建2. 编译3. 训练4. 保存5. 预测 简介 准备写个系列博客介绍机器学习实战中的部分公开项目。首先从初级…

安卓开发错误记录

1、报错FATAL EXCEPTION: main 运行出现报错 原因&#xff1a;没有在AndroidManifest声明页面 声明实现应用部分可视化界面的 Activity&#xff0c;必须使用 AndroidManifest 中的 元素表示所有 Activity。系统不会识别和运行任何未进行声明的Activity。 如果在AndroidMainife…

90%的人都理解错了HTTP中GET与POST的区别

Get和Post是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别就是Get把参数包含在URL中&#xff0c;Post通过request body传递参数。 你可能自己写过无数个Get和Post请求&#xff0c;或者已经看过很多权威网站总结…

【Atcoder】 [ARC149D] Simultaneous Sugoroku

题目链接 Atcoder方向 Luogu方向 题目解法 首先可以观察到一个 s i m p l e simple simple 的性质&#xff1a;两个相反数每次移动到的位置也是相反数 同时因为坐标的范围较小&#xff0c;所以可以考虑维护一部分位置的信息&#xff0c;来推出其他与它对称的点的信息 首先维…

2. CSS3的新特性

2.1 CSS3的现状 ●新增的CSS3特性有兼容性问题, ie9才支持 ●移动端支持优于PC端 ●不断改进中 ●应用相对广泛 ●现阶段主要学习: 新增选择器和盒子模型以及其他特性 CSS3给我们新增了选择器,可以更加便捷,更加自由的选择目标元素&#xff1a; 1.属性选择器 2.结构伪类选择器…