Pod是短暂存在的
创建容器使用docker,一个docker对应一个容器,一个容器有进程,一个容器运行一个应用程序
Pod是多进程设计,运行多个应用程序。
一个Pod有多个容器,一个容器里面运行一个应用程序
Pod存在为了亲密性应用
两个应用进行交互
网络之间的调用
两个应用需要频繁调用
容器之间相互隔离,namespace,group 多个容器在同一个namespace里面 pause(info)是根容器 新容器(业务容器)会加入info容器之中 info容器会独立出IP地址,MAC地址 在同一个namespace里面
pod持久化数据-日志数据,业务数据 持久化存储--数据卷(volumn)
never:Pod永远不会主动拉取这镜像
限制由docker实现
容器检查-无法检查潜在危险,例如不能提供服务 应用层面健康检查
master节点 create --- apiserver -- etcd scheduler -- apiserver -- etcd --调度算法,把Pod调度某个node系欸但上
node节点 kublet -- apiserver -- 读取etcd拿到分配给当前节点的pod -- docker创建容器
首先对节点创建标签
和nodeselector基本一样,根据节点上标签约束来决定Pod调度到那些节点上 (1)硬亲和性-required 约束条件必须满足 (2)软亲和性-preferred 尝试满足,不保证
支持的操作符 In NotIn Exists Gt Li DoesNotExists
Taint污点:节点不做普通分配调度,是节点属性 (上面三个都是对Pod做的限制,污点是对节点表示限制)
污点值有三个 NoSchedule:一定不被调度 PreferNoSchdule:尽量不被调度 NoExecute:不会调度,并且还会驱逐Node已有Pod