Kubernetes中把flannel 更换为 kube-router

之前我搭建Kubernetes时 使用的是flannel网络插件,但是这款网络插件不好的一点就是不支持 网络策略。因为我在实际使用中需要使用网络策略,所以没办法 只好更好网络策略。在这里我准备把flannel 更改为 kube-router

什么是网络策略?
网络策略(Network Policy)是Kubernetes 提供的一种规范,它描述里一组pod 是如何被允许相互通信的,以及和其他端点是如何通信的。

Kubernetes 只是提供了这样的机制,具体实现功能由网络插件(Network Plugins) 实现,流行的网络插件有很多,但并不是所有的网络插件都提供了网络策略功能, 如flannel就没有提供这样的功能,目前已知的支持网络策略的有Calico, Cilium, Kube-router, Romana, Weave Net, Canal。
网络策略的应用和Kubernetes中很多操作类似,是通过labels来选取一组Pods的,然后再配置具体的规则(目前的实现都是通过配置iptables rule)来控制什么流量被允许发送到这组选取的Pods。
关于网络策略的详细内容请点击连接了解更多关于网络策略

在工作中,由于不同的需求,需要更换网络插件
建议:在生产场景中,建议提前规划好k8s的网络,如果中途更换网络插件,产生的影响会比较大;

先卸载flannel 网络插件步骤:
第一步: 在 master 节点中删除 flannel

kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

rm -rf /etc/cni/net.d/*

第二步: 在node 节点清理flannel 网络插件留下的文件

ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -f /etc/cni/net.d/*
注:执行完上面的操作,重启kubelet
systemctl  restart kubelet

安装kube-router网络插件:
# 创建kube-router目录下载相关文件
mkdir kube-router && cd kube-router
wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter-all-features.yaml
 
# 以下两种部署方式任选其一
 
# 1. 只启用 pod网络通信,网络隔离策略 功能
kubectl apply -f kubeadm-kuberouter.yaml
 
# 2. 启用 pod网络通信,网络隔离策略,服务代理 所有功能
# 删除kube-proxy和其之前配置的服务代理
kubectl apply -f kubeadm-kuberouter-all-features.yaml
kubectl -n kube-system delete ds kube-proxy
# 以上两种其一  根据需要
 
# 在每个节点上执行 master node 都执行
docker run --privileged --net=host registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.10.2 kube-proxy --cleanup
 
# 查看
kubectl get pods --namespace kube-system
kubectl get svc --namespace kube-system

之后在master节点上运行 kubectl get nodes 查看节点状态

在这里插入图片描述
此时 node 节点没有起来

我把node节点 那个虚拟机 重启后
node起来了
在这里插入图片描述
在master节点上 运行 kubectl get pods --all-namespaces 查看所有pdo
此时 与 flannel相关的 pod都没了
在这里插入图片描述

在 master 中 查看相关进程
此时可以看到 kube-proxy 没了 由kube-router进行替代
在这里插入图片描述

在 node中 查看相关进程
在这里插入图片描述

参考博文 https://blog.51cto.com/liuzhengwei521/2382257?source=dra
https://juejin.im/post/5b460f506fb9a04fcf59bf73

发布了26 篇原创文章 · 获赞 10 · 访问量 6510

猜你喜欢

转载自blog.csdn.net/qq_40806970/article/details/99550274