手写CNI配置

自动生成CNI配置的脚本

#!/bin/bash
INF=enp0s1
R=$(($RANDOM % 250))

mkdir -p /etc/cni/net.d/
cat > /etc/cni/net.d/10-mynet.conflist << EOF
{
   "name":"cni0",
   "cniVersion":"0.3.1",
   "plugins":[
      {
         "nodename":"$(hostname)",
         "name":"myipvlan",
         "type":"ipvlan",
         "master":"$INF",
         "mode":"l2",
         "ipam":{
            "type":"host-local",
            "ranges": [
                [{ "subnet":"10.244.$R.0/24" }],
                [{ "subnet":"2001:db8:42:0:$R::/80" }]
            ],
            "routes": [
                {"dst": "0.0.0.0/0"},
                {"dst": "::/0"},
                {"dst": "10.244.$R.0/24", "gw": "10.244.$R.1" },
                {"dst": "2001:db8:42:0:$R::/80", "gw": "2001:db8:42:0:$R::1" }
            ]
         }
      }
   ]
}
EOF