什么是pod

Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展 Pod 对象功能的,比如控制器对象是用来管控 Pod 对象的,Service 或者Ingress 资源对象是用来暴露 Pod 引用对象的,PersistentVolume 资源对象是用来为 Pod提供存储等等,k8s 不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为”根容器“的 Pause容器。Pause 容器对应的镜 像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod还包含一个或多个紧密相关的用户业务容器

pod的特性

(1)资源共享
一个 Pod 里的多个容器可以共享存储和网络,可以看作一个逻辑的主机。共享的如namespace,cgroups 或者其他的隔离资源。多个容器共享同一 network namespace,由此在一个 Pod 里的多个容器共享 Pod 的 IP 和端口 namespace,所以一个 Pod 内的多个容器之间可以通过 localhost 来进行通信,所需要注意的是不同容器要注意不要有端口冲突即可。不同的 Pod 有不同的 IP,不同 Pod 内的多个容器之前通信,不可以使用 IPC(如果没有特殊指定的话)通信,通常情况下使用 Pod的 IP 进行通信。一个 Pod 里的多个容器可以共享存储卷,这个存储卷会被定义为 Pod 的一部分,并且可以挂载到该 Pod 里的所有容器的文件系统上。
(2)生命周期短暂
Pod 属于生命周期比较短暂的组件,比如,当 Pod 所在节点发生故障,那么该节点上的 Pod会被调度到其他节点,但需要注意的是,被重新调度的 Pod 是一个全新的 Pod,跟之前的Pod 没有半毛钱关系。
(3)平坦的网络
K8s 集群中的所有 Pod 都在同一个共享网络地址空间中,也就是说每个 Pod 都可以通过其他 Pod 的 IP 地址来实现访问。

创建pod的流程

  • 由client向master上的API Sever请求,然后将pod存储在etcd上,存储信息返回至API Server
  • 由API Server告知Schedule为其分配node,在分配完node之后将结果返回API Server,并将结果存储在etcd上
  • node节点访问API Server然后读取etcd拿到分配给当前节点的pod,然后响应给docker创建容器。

    整个流程图就是

图解k8s中pod的创建流程相关推荐

  1. k8s中pod sandbox创建失败failed to start sandbox container

    背景 今天在k8s更新服务时,发现pod启动失败,报错failed to start sandbox container,如下所示: Events:Type Reason Age From Messa ...

  2. 关于K8s中Pod调度[选择器,指定节点,主机亲和性]方式和节点[coedon,drain,taint]标记的Demo

    写在前面 嗯,整理K8s中pod调度相关笔记,这里分享给小伙伴 博文内容涉及: kube-scheduler组件的简述 Pod的调度(选择器.指定节点.主机亲和性)方式 节点的coedon与drain ...

  3. 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查

    k8s 中 Pod 无法正常解析域名:部署 DNS 调试工具排查 问题描述 最近将 Kubernetes 升级到 1.18.1 版本,不过升级完后,查看工作节点的部分 Pod 无法启动,查看消息全是 ...

  4. k8s中pod的重启策略和健康检查

    目录 k8s中pod的重启策略 pod中一共有以下三个重启策略(restartPolicy) 健康检查: 健康检查类型 支持的检查方法: 检查示例 其他检查方式示例 k8s中pod的重启策略 pod中 ...

  5. K8S中pod健康状态的检查

    对于Pod的健康状态检测,kubernetes提供了两类探针(Probe)来实现对k8s中Pod的健康状态进行检测 什么是 Container Probes 通过k8s的架构图,我们可以发现,每个No ...

  6. K8s中Pod健康检查源代码分析

    了解k8s中的Liveness和Readiness Liveness:  表明是否容器正在运行.如果liveness探测为fail,则kubelet会kill掉容器,并且会触发restart设置的策略 ...

  7. 查看k8s中Pod里容器的数量和名称

    查看Pod里容器的名称 初始化一个包含两个容器的Pod(tomcat和nginx),其中文件名为ini-pod.yaml apiVersion: v1 kind: Pod metadata:name: ...

  8. k8s pod的创建流程图示

  9. 解决K8S中Pod无法正常Mount PVC的问题

    微信公众号:运维开发故事,作者:乔克 今天发现一个Pod一直处于ContainerCreating状态,通过Describe查看,发现以下错误. Warning FailedMount 15s kub ...

最新文章

  1. SZOJ 142 钦定
  2. BAT 批处理命令 - 解决cmd控制台中文乱码问题实例演示
  3. POI的入门:单元格样式处理
  4. 算法6-1:哈希函数
  5. 面向.NET开发人员的Dapr——俯瞰Dapr
  6. .NET Core 下使用 Exceptionless 记录日志
  7. c语言诡异程序,为什么C语言诡异离奇、缺陷重重,却获得了巨大的成功?
  8. Canvas Clock
  9. SAP License:国网面试手记
  10. ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall
  11. 【ubuntu】查看服务器上的进程占用GPU情况
  12. Java 将Excel转为OFD
  13. java applet插件下载_Java Applet.zip
  14. HTML+css制作简单游戏界面
  15. 码力十足学量化|macd 指标详解
  16. C语言:成绩等级划分!
  17. 世界上十个著名悖论详解
  18. homeassistant mysql_二、(可选)安装MariaDB替换homeassistant数据库
  19. libnet的使用详解
  20. UCenter 基本原理

热门文章

  1. git重置用户git账号金与密码
  2. 吴恩达机器学习(五)逻辑回归练习-二分类练习
  3. PCB的地与机壳(连接大地)为什么用阻容连接
  4. 转载:云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据
  5. DOS命令:你知道多少?
  6. matlab struct结构体变量 横向和纵向数据 (1xn) 和(nx1)
  7. java利用子类求正方形_Java 作业 重写正方形周长方法
  8. Go基础系列 01-Golang简介
  9. java mjd_RSA加密Java/Kotlin
  10. Coding and Paper Letter(六十八)