cni是k8s的一个接口,如果需要对接k8s就需要遵循cni接口标准,部署cni主要是为了接通第三方网络;
关于第三方网络插件实现 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
关于cni和flanel安装规划
- cni安装到每台node节点
- flannel安装到master节点
node节点安装cni
cni二进制包下载地址: https://github.com/containernetworking/plugins/releases
一、下载安装包cni
二、解压安装包cni
mkdir -p /opt/cni/bin #工作目录
mkdir -p /etc/cni/net.d #配置文件
tar -zxvf cni-plugins-linux-amd64-v0.8.5.tgz -C /opt/cni/bin
master节点安装flannel
三、我们安装flannel
flannel安装教程 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
or
使用我们准备好的yaml文件(推荐)
注意:
- 这个flannel只需要安装到master节点上
- 这个文件需要翻墙,下载到服务器后直接执行 kubectl apply -f kube-flannel.yml(里面的镜像需要翻墙,直接安装国外的会失败,不建议)
- yaml里面的网络net-conf.json要和 cat /opt/kubernetes/cfg/kube-controller-manager.conf 里面的cluster-cidr值一致
- 如果不使用flannel,其他的组件也一样
四、执行ymal
kubectl apply -f kube-flannel.yml
五、安装好后查看
kubectl get pods -n kube-system
输出以下内容
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-amd64-q8rmk 1/1 Running 0 19m
kube-flannel-ds-amd64-zq7hc 1/1 Running 0 19m
1/1表示启动成功,0/1表示启动失败
六、查看pod
安装好后,每个node都会启动一个pod
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-flannel-ds-amd64-q8rmk 1/1 Running 0 18m 172.19.216.179 k8s-node1
kube-flannel-ds-amd64-zq7hc 1/1 Running 0 18m 172.19.216.180 k8s-node2
七、我们在每个node节点查看flannel网卡
通过ifconfig 我们会看到节点都有flannel网卡