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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!kube-flannel状态CrashLoopBackOff通常表示kube-flannel容器正在启动时遇到问题并崩溃。引起此问题的原因可能有多种,下面是一些可能的解决方法: 1. 检查kube-flannel的日志:您可以通过kubectl logs命令检查kube-flannel容器的日志,以了解更多关于崩溃的详细信息。例如: ``` kubectl logs -n kube-system <kube-flannel-pod-name> ``` 2. 检查网络配置:确保您的Kubernetes集群的网络配置正确无误。kube-flannel与网络相关,因此如果网络配置有问题,可能会导致容器崩溃。确保您的网络插件正确安装和配置,并且与其他组件兼容。 3. 检查资源限制:kube-flannel容器可能由于资源限制不足而崩溃。请确保为kube-flannel分配了足够的资源(CPU和内存),以满足其运行需求。 4. 检查kube-flannel版本和Kubernetes版本的兼容性:确保您使用的kube-flannel版本与您的Kubernetes版本兼容。某些kube-flannel版本可能不支持特定的Kubernetes版本,这可能导致容器崩溃。 5. 重新安装kube-flannel:如果上述方法都没有解决问题,可以尝试重新安装kube-flannel。首先,删除现有的kube-flannel部署,然后再次安装它。可以使用以下命令来完成这些操作: ``` kubectl delete daemonset kube-flannel -n kube-system kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 希望这些解决方法对您有所帮助!如果您有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值