01 k8s核心技术-Pod

K8s核心技术-Pod

  • 一、Pod基本概念
  • 二、Pod存在的意义
  • 三、Pod实现机制
  • 四、镜像拉取策略
  • 五、Pod资源限制
  • 六、Pod 重启策略
  • 七、Pod 健康检查
  • 八、Pod创建过程
  • 九、Pod 的调度
  • 十、污点和污点容忍
    • 节点添加污点
    • 污点容忍
  • 总结

一、Pod基本概念

  1. 最小部署的单元
  2. 包含多个容器(一组容器的集合)
  3. 一个Pod中容器共享网络名称空间
  4. Pod是短暂的

二、Pod存在的意义

  1. 创建容器使用 docker,一个docker 对应一个容器,一个容器有进程 一个容器运行一个应用程序
  2. pod是多进程设计,运行多个应用程序
    一个 Pod 有多个容器,一个容器里面运行一个应用程序
  3. Pod 存在为了亲密性应用
    两个应用之间进行交互
    网络之间进行调用
    两个应用需要频繁调用

三、Pod实现机制

  1. 共享网络
    通过Pause 容器,把其他业务容器加入到 Pause 容器里面,让所有业务容器在同一个名称空间中,实现网络共享
  2. 共享存储
    引入数据卷概念 Volumn,使用数据卷进行持久化存储

四、镜像拉取策略

  1. IfNotPresent: 默认值,镜像在宿主机上不存在时才拉取
  2. Always:每次创建 Pod 都会重新拉取一次镜像
  3. Never:Pod 永远不会主动拉取这个镜像

五、Pod资源限制

01 k8s核心技术-Pod_第1张图片

六、Pod 重启策略

Always: 当容器终止退出后,总是重启容器,默认策略
OnFailure: 当容器异常退出后时,(退出状态码非0)才重启容器
Never: 当容器终止退出,从不重启

七、Pod 健康检查

01 k8s核心技术-Pod_第2张图片

八、Pod创建过程

01 k8s核心技术-Pod_第3张图片

九、Pod 的调度

影响Pod 调度的属性

  1. Pod 资源限制对 Pod 调度产生影响
    在这里插入图片描述

    根据 request 找到足够Node 节点进行调度

  2. 节点选择器标签影响 Pod 调度
    01 k8s核心技术-Pod_第4张图片
    首先对节点创建标签

kubectl label node node1 env_role=prod
kubectl label node node1 env_role=dev
  1. 节点亲和性 、反亲和性
    01 k8s核心技术-Pod_第5张图片

十、污点和污点容忍

01 k8s核心技术-Pod_第6张图片
01 k8s核心技术-Pod_第7张图片

节点添加污点

kubectl taint node [node] key=value:污点的三个值
kubectl taint node k8snode1 env_role=yes:NoSchedule
# 删除污点
kubectl taint node k8snode1 env_role:NoSchedule-

污点容忍

污点容忍就是某个节点可能被调度,也可能不被调度
01 k8s核心技术-Pod_第8张图片


总结

你可能感兴趣的:(k8s,kubernetes)