前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

Pod资源对象是一种集合了一到多个应用容器、存储资源、专用IP及支撑容器运行的其他选项的逻辑组件。

换言之, Pod 代表着 Kubernetes 的部署单元及原子运行单元,即一个应用程序的单一运行实例,它通常由共享资源且关系紧密的一个或多个应用容器组成。

Kubernetes 的网络模型要求其各 Pod 对象的 IP 地址位于同一网络平面内(同一 IP 网段),各 Pod 之间可使用其 IP 地址直接进行通信,无论它们运行于集群内的哪个工作节点之上,这些 Pod 对象都像是运行于同局域网中的多个主机。

我们可以将每个 Pod 对象想象成一个逻辑主机,它类似于现实世界中的物理主机或 VM ( VirtualMachine ),运行于同一个 Pod 对象中的多个进程也类似于物理机或 VM 上独立运行的进程。

不过, Pod 对象中的各进程均运行于彼此隔离的容器中,并于各容器间共享两种关键资源:网络和存储卷。

  • 网络( Networking ):每个 Pod 对象都会被分配一个集群内专用的 IP 地址,也称为 Pod IP ,同一 Pod 内部的所有容器共享 Pod 对象的 Network 和 UTS 名称空间,其中包括主机名、 IP 地址和端口等。因此,这些容器间的通信可以基于本地回环接口 IO 进行,而与 Pod 外的其他组件的通信则需要使用 Service 资源对象的 Cluster 及其相应的端口完成。
  • 存储卷( Flume ):用户可以为 Pod 对象配置一组“存储卷”资源,这些资源可以共享给其内部的所有容器使用,从而完成容器间数据的共享。存储卷还可以确保在容器终止后被重启,甚至是被删除后也能确保数据不会丢失,从而保证了生命周期内的 Pod 对象数据的持久化存储。

一个 Pod 对象代表某个应用程序的一个特定实例,如果需要扩展应用程序,则意味着为此应用程序同时创建多个 Pod 实例,每个实例均代表应用程序的一个运行的“副本”( replica )。

这些副本化的 Pod 对象的创建和管理通常由另一组称之为“控制器”(Controller) 的对象实现,例如, Deployment 控制器对象。

创建 Pod 时,还可以使用 Pod Preset 对象为 Pod 注入特定的信息,如 Configmap 、 Secret 、存储卷、卷挂载和环境变量等。

有了 Pod Preset 对象, Pod 模板的创建者就无须为每个模板显式提供所有信息,因此,也就无须事先了解需要配置的每个应用的细节即可完成模板定义。

基于期望的目标状态和各节点的资源可用性, Master 会将 Pod 对象调度至某选定的工作节点运行,工作节点于指向的镜像仓库( Imageregistry )下载镜像,并于本地的容器运行时环境中启动容器。

Master 会将整个集群的状态保存于 etcd 中,并通过 API Server 共享给集群的各组件及客户端。

Kubernetes 中的 Pod 是什么?相关推荐

  1. Kubernetes 中创建 Pod 时集群中到底发生了些什么?

    想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车. ...

  2. Kubernetes 中 设置pod不部署在同一台节点上

    在k8s中,节点的调度主要由亲和性和污点来进行控制的.   而在亲和性部分由分为了节点亲和性和节点反亲和性.   节点亲和性是指在pod部署时,尽量(软策略)或者必须满足(硬策略)部署在某些节点上. ...

  3. Kubernetes 中 Evicted pod 是如何产生的

    线上被驱逐实例数据 最近在线上发现很多实例处于 Evicted 状态,通过 pod yaml 可以看到实例是因为节点资源不足被驱逐,但是这些实例并没有被自动清理,平台的大部分用户在操作时看到服务下面出 ...

  4. Kubernetes 学习总结(25)—— Kubernetes 中的 pod 与容器的区别和联系

    前言 容器本可以成为轻量级虚拟机的替代品.但是由于 Docker/OCI 的标准化,最广泛使用的容器形式是每个容器只有一个进程服务.这种方法有很多优点--增加隔离性.简化水平扩展.更高的可重用性等.但 ...

  5. Kubernetes 中的 Pod 安全策略

    很多人分不清 SecurityContext 和 PodSecurityPolicy 这两个关键字的差别,其实很简单: •SecurityContext 是 Pod 中的一个字段,而 PSP 是一个独 ...

  6. kubernetes中给pod加hosts解析

    在一些环境中,有些服务会绑定一个域名,这个时候我们想去访问这个服务的域名就需要做下对应的解析,经常使用的做法是在主机的/etc/hosts文件里面加上域名对应的ip方可访问,如果给在k8s上运行的po ...

  7. Grafana 在 Kubernetes 中的使用

    安装 grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite.zabbix.InfluxDB.Prometheus.OpenTSDB. ...

  8. 记一次 Kubernetes 集群 Pod Eviction 问题排查过程

    声明: 本博客欢迎转发,但请保留原作者信息! 新浪微博:@Lingxian_kong; 微信公众号:飞翔的尘埃; 内容系本人学习.研究和总结,如有雷同,实属荣幸! 现象:一个普通的 k8s 集群,3 ...

  9. Spring Cloud Kubernetes 中文文档

    本参考指南介绍了如何使用Spring Cloud Kubernetes. 1.为什么需要Spring Cloud Kubernetes? Spring Cloud Kubernetes提供了使用Kub ...

最新文章

  1. python中复合条件_如何用Python选取复合条件的坐标组成新的列表?
  2. 内容处理和分发中的算法应用探究
  3. Spring Boot 内置Tomcat——getServletContext().getRealPath()为临时目录问题解决方案
  4. OVS中arp响应的流表的实现
  5. ext3文件系统反删除利器ext3grep应用实战
  6. c语言程序stm8s,stm8s的c语言编程例程
  7. js IE和Firefox下event处理
  8. 0到1:闲鱼高复杂度高性能社区圈子开发实录
  9. 实锤!Python 真没你想的那么简单…
  10. 自动提示_EXCEL2013版突然打不开,自动修复提示1907错误
  11. 学生成绩管理系统实验报告_学习60天python成果,Python变成学生成绩管理系统
  12. 【HTML+CSS网页设计与布局 从入门到精通】第7章-class、ID选择器,CSS格式
  13. Xcode 5中缺少Provisioning Profiles菜单项
  14. 【转】MIT博士林达华解说数学体系
  15. 小米发明“永动机”:走路即可为智能设备充电
  16. 前端常见问题以及处理方式 - - - (九) ES6中的set和map(map篇)
  17. 网络篇 网络设备的基本配置09
  18. 洛谷 5061 秘密任务——二分图染色
  19. Vue+Element-UI 上传图片,打开相机,相册
  20. map的valu增加算法

热门文章

  1. PC使用--记录电脑硬件使用问题
  2. 计算机策略里面屏保,组策略设置屏保
  3. SS2022-Z变换-性质-什么是ZT初值和终值定理?
  4. PHP设计模式 - 门面模式(Facade)通俗易懂 / 友好示例代码
  5. 已集成 VirtIO驱动windows server 2012, 2008, 2003的ISO镜像下载
  6. kobo touch N905B刷Koreader
  7. 中国校友会网2012中国大学排行榜100强
  8. 服务器mysql不能登录的原因排查
  9. Fusilli.js简单的弹出JavaScript插件
  10. 心灵的震撼-读《一个少年的梦--京瓷的奇迹》