kubelet启动一个Pod CRI、CNI、CSI 起作用的顺序

  • 启动Pod流程

    • 每个Pod,都伴随一个Pause容器(沙箱容器)。真正的容器(nginx-pvc)和沙箱容器是公用一个网络、存储、名称空间。。。。

    • 启动沙箱容器。给沙箱容器设置好网络,存储

      • CRI。创建沙箱容器的运行时环境

      • CNI。挂载沙箱容器网络等

      • CSI。调用存储系统进行数据挂载。(提前把应用容器需要挂载的挂进来)

    • 启动应用容器。(kubectl get pod 1/1【不算沙箱容器】 )

      • 应用容器直接创建运行时CRI,用以上的 CNI、CSI

  • 从应用容器角度出发:CSI先与CRI启动

  • 从Pod出发。CRI。CNI。CSI

    • 沙箱容器代码 https://github.com/kubernetes/kubernetes/blob/d541872f9a036ed4f792232e43fde6dacf0e1084/pkg/kubelet/dockershim/docker_sandb

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