k8s常用的网络插件优化方案|干货

一、k8s网络通信

  a.容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现;

  b.pod之间的通信:pod ip <---> pod ip,pod和pod之间不经过任何转换即可通信;

  c.pod和service通信:pod ip <---->cluster ip(即service ip)<---->pod ip,它们通过iptables或ipvs实现通信。

  d.Service集群与外部通信

二、CNI网络接口

flannel:支持地址分配,不支持网络策略,flannel默认使用 vxlan的方式进行后端网络传输机制的,ifconfig可以看到有个flannel.1接口,这个是封装了网络隧道的接口,还有个cni0接口,这个是在flannel.1隧道上通信的接口。

flannel支持多种后端:

VxLAN:

 a.vxlan 叠加网络模式

 b.Directrouting #直接路由模式

vxlan:扩展的虚拟局域网

  V虚拟的

 X扩展的

 lan局域网

host-gw: Host Gateway 直接路由模式,不推荐,只能在二层网络中,不支持跨网络,如果有成千上 万的Pod,容易产生广播风暴

UDP: 一般不使用这种方式,性能差

calico:部署使用麻烦,支持地址分配,支持网络策略,calico可以实现三层网络路由,性能比flannel好;caclio:有着很强大的控制平面,有自己的面向工具使用,直接在这个层面控制网络参数的配置和使用,caclio是基于bjp的网络控制协议,通过自动学习来判定和发现有哪些路由条目需要设置,flannel是自动生成的,caclio是直接学习的

三、Calico网络优化

1、IPIP网络:

流量:tunlo设备封装数据,形成隧道,承载流量。

适用网络类型:适用于互相访问的pod不在同一个网段中,跨网段访问的场景。外层封装的ip能够解决跨网段的路由问题。

效率:流量需要tunl0设备封装,效率略低

连接方式:

              7d4a72a72569cafcf0df28c08d0b1ce8.png             

2、BGP网络:

在安装calico网络时,默认安装是IPIP网络。calico.yaml文件中,将CALICO_IPV4POOL_IPIP的值修改成 "off",就能够替换成BGP网络。

33d68744cbe3e2bb68289e162c79ff87.png

流量:使用路由信息导向流量

适用网络类型:适用于互相访问的pod在同一个网段,适用于大型网络。

效率:原生hostGW,效率高

连接方式:

43a745b98e4f7d19a060d3f5a7cd53fb.png

作者微信:luckylucky421302

2dcd05e80179a38e36a70fbaed13e5ea.png

精彩文章推荐

2022,这些技术决定你的薪资|K8S+微服务+DevOps等前沿涨薪技术最佳实践

年底了,总结下这一年,收获满满

2022年底第一波福利!

基于Jenkins+git+harbor+Helm+k8s+Istio构建DevOps流水线

基于k8s+Prometheus+Alertmanager+Grafana构建企业监控告警系统

k8s七层代理Ingress-nginx基于cookie、请求头、权重实现灰度发布

如何优化k8s网络插件?

修改k8s kube-proxy代理-由iptables模式变为ipvs模式

k8s控制器Deployment详细介绍:资源清单编写技巧

2022,这些技术决定你的薪资|K8S+微服务+DevOps等前沿涨薪技术最佳实践

每周好课推荐

目前有以下几个畅销和高口碑课程,在平台所有课程中排在第一:

【1】Docker+k8s+DevOps架构师课程:基础+高级->

https://edu.51cto.com/topic/4735.html

【2】k8s+Istio+DevOps+微服务架构师实战课程->

https://edu.51cto.com/topic/5168.html

【3】k8s架构+CKA+CKS实战培训->

https://edu.51cto.com/topic/5326.html

【4】【2022新版】CKA+CKS认证考试->

https://edu.51cto.com/topic/5263.html

【5】K8S安全认证课程CKS+k8s运维->

https://edu.51cto.com/topic/5206.html

          点亮,服务器10年不宕机9eba6de67590f3460ff0b47f8d63f321.gife1f9848f252a00b80eb143e168f4d2f9.gif

点击阅读 | 了解更多

Kubernetes (K8S) 集群使用 Calico 作为网络插件时,可能会遇到一些错误,这些问题通常会影响节点之间的网络通信。遇到错误时,重新安装 Calico 是一个可能的解决方案。以下是重新安装 Calico 网络插件的基本步骤: 1. 清理现有的 Calico 资源: 在重新安装之前,需要清理现有的 Calico 相关资源,以避免冲突或配置残留。这通常涉及删除 Calico 相关的 Pod、DaemonSet、Deployment、ConfigMap 和 CustomResourceDefinition 等资源。 ```bash kubectl delete -f <calico-manifests-dir> kubectl delete ds -n kube-system calico-node kubectl delete deployment -n kube-system calico-kube-controllers kubectl delete customresourcedefinition apiextensions.k8s.io felixconfigurations.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io bgpconfigurations.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io ippools.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io clusterinformations.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io hostendpoints.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io globalnetworkpolicies.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io globalnetworksets.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io networkpolicies.crd.projectcalico.org kubectl delete customresourcedefinition apiextensions.k8s.io networksets.crd.projectcalico.org ``` 2. 清除旧的 Calico 数据: 如果你的集群是使用 Calico 的数据存储模式,那么你可能需要清空旧的 Calico 数据,以确保重新安装时不会有问题。这通常涉及删除特定的 etcd 键或执行 Calico 清除脚本。 ```bash calicoctl delete -f <path-to-apply-cmd-output> ``` 3. 重新安装 Calico: 清理完毕后,可以通过 kubectl 应用 Calico 的官方部署 manifest 文件来重新安装 Calico。 ```bash kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml ``` 确保使用适合你的集群版本的 Calico 版本。 4. 验证安装: 安装完成后,验证 Calico Pod 的运行状态,确保所有 Calico 相关的 Pod 都处于 Running 状态。 ```bash kubectl get pods -n kube-system | grep calico ``` 5. 检查节点状态和网络连通性: 确认所有节点都已经加入集群并且网络通信正常。 ```bash kubectl get nodes kubectl get pods --all-namespaces -o wide ``` 6. 如果使用了特定的配置,比如 IP 池配置,请重新应用这些配置。 重新安装 Calico 之前,确保已经备份了集群的必要数据,并且理解了你的集群配置和 Calico 的工作原理。错误的配置可能导致集群不可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩先超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值