首页 > 其他分享 >k8s 调用CNI

k8s 调用CNI

时间:2022-12-29 18:12:15浏览次数:55  
标签:容器 插件 CRI 调用 pod k8s CNI

参考文档:https://zhuanlan.zhihu.com/p/450140876

简单总结一下 CNI 相关。

  1. k8s 的 kubelet 在启动一个容器之前,会先做一些预先检查以及 csi 的操作
  2. 然后 kubelet 调用 CRI 的接口,通过 grpc 的方式和 CRI runtime 通信,告知 CRI 要创建 pod 了
  3. 随后 CRI 的 Server 端收到通知后调用 OCI 的接口去真正的执行拉起 Pod 的操作
  4. 不过在真的拉起 pod 之前,会先给 pod 创建一个 pause 容器,这个 pause 容器是一个特别小又特别稳定的进程,主要用来挂载网络命名空间和存储资源
  5. 然后 CRI 调用 CNI 提供的接口,先在 /etc/cni/net.d 目录中获取网络插件配置(这个配置由每个插件自己通过 daemonset 的方式拷贝到主机上), 然后把插件的配置作为标准输入, 再把容器的运行时信息作为环境变量, 最后执行插件
  6. CNI 插件执行完毕后, 把执行结果(结果要包含一些关键信息比如 Pod IP 等)直接干到标准输出上
  7. CRI 从标准输出上读取插件执行结果再做后续操作, 后续操作就是拉起真正的容器等

标签:容器,插件,CRI,调用,pod,k8s,CNI
From: https://www.cnblogs.com/wangjq19920210/p/17013184.html

相关文章