- 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)最小部署的单元
(2)包含多个容器(一组容器的集合)
(3)一个pod中容器共享网络命名空间
(4)pod是短暂的(重启就可能发生变化)
Pod存在的意义
- 创建容器使用docker,一个docker对应是一个容器,一个容器有进程,一个容器运行一个应用程序
- Pod是多进程设计,运行多个应用程序
- 一个Pod有多个容器,一个容器里面运行一个应用程序
- Pod存在为了亲密性应用
- 两个应用之间(频繁)交互
- 网络之间的调用
机制
容器用Docker创建,容器本身之间是相互隔离的(namespace->名称空间, group)
- 共享网络
- 首先pod会创建Pause容器(根容器/info容器)
- 通过Pause容器,把其他业务容器加入到Pause容器里面,让所有业务容器在同一个名称空间(namespace)中,可以实现网络共享
- 共享存储
- 引入数据卷概念Volumn,使用数据卷进行持久化存储
演示:
Pod镜像拉取策略
-
IfNotPresent: 默认值,镜像在宿主机上不存在时才拉取
-
Always: 每次创建Pod都会重新拉取一次镜像
-
Never: Pod永远不