cni k8s 插件安装_kubernetes源码阅读 kubelet对cni的实现

本文深入探讨了CNI项目,它是CNCF的一个项目,提供了容器网络接口和插件。文章详细介绍了如何使用CNI插件创建Docker容器,解析了CNI接口,并重点分析了Kubelet如何实现CNI插件,特别是在SetUpPod和TearDownPod中的应用。实验环境中,Kubernetes集群通过--network-plugin=cni选项调用CNI插件,并通过--cni-conf-dir和--cni-bin-dir指定配置和二进制文件路径。
摘要由CSDN通过智能技术生成

6c9bb41b85ef4a4202d9cc9ea977025c.png

这是一篇关于CNI项目和kubelet实现CNI插件的源码分析的文章。这篇文章在春节前就已经写好大部分,春节两周多的时间,一笔没写,为啥上学时候曾经大年初二参加英语考试的自己,春节却再没Good Good Study,Day Day Up。明年春节再见,好怀念春节的日子。~(文章有不足和错误的地方,望指出)

CNI项目

CNI是CNCF的项目,它定义了容器网络接口和库文件,并且包括一些支持的容器网络插件;代码分别在:

https://github.com/containernetworking/cni

https://github.com/containernetworking/plugins

使用CNI插件创建Docker容器

在CNI项目的README中,有如何使用CNI插件创建Docker容器的例子:

创建/etc/cni/net.d下创建networkconfig文件

$ mkdir -p /etc/cni/net.d
$ cat >/etc/cni/net.d/10-mynet.conf <<EOF
{
	"cniVersion": "0.2.0",
	"name": "mynet",
	"type": "bridge",
	"bridge": "cni0",
	"isGateway": true,
	"ipMasq": true,
	"ipam": {
		"type": "host-local",
		"subnet": "10.22.0.0/16",
		"routes": [
			{ "dst": "0.0.0.0/0" }
		]
	}
}
EOF
$ cat >/etc/cni/net.d/99-loopback.conf <<EOF
{
	"cniVersion": "0.2.0",
	"type": "loopback"
}
EOF

networkconfig配置信息,最主要包括type和IPAM;如上以bridge的CNI插件为例;

编译CNI插件二进制可执行文件

$ cd $GOPATH/src/github.com/containernetworking/plugins
$ ./build.sh
Building plugins
  flannel
  portmap
  tuning
  bridge
  host-device
  ipvlan
  loopback
  macvlan
  ptp
  vlan
  dhcp
  host-local
  sample

创建netns、bridge及veth

$ CNI_PATH=$GOPATH/src/github.com/containernetworking/plugins/bin
$ cd $GOPATH/src/github.com/containernetworking/cni/scripts
$ sudo CNI_PATH=$CNI_PATH ./priv-net-run.sh ifconfig

使用CNI插件创建Docker容器

CNI插件(type:bridge)负责将veth对的一端网络接口插入容器网络命名空间,将veth的另一端连接到网桥;然后,将IP分配给接口,并通过调用适当的IPAM插件来设置与“IP地址管理”一致的路由;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值