k8s的网络优化(metallb)_metallb二层网络(1)

复制代码
[root@server2 ingress-nginx]# cat demo.yml 
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nginx-test
spec:
 # tls:
 # - hosts:
 # - www1.westos.org
 # secretName: tls-secret
  rules:
    - host: www1.westos.org
      http:
        paths:
        - path: /
          backend:
            serviceName: nginx-svc
            servicePort: 80

[root@server2 ingress-nginx]# kubectl apply -f nginx-svc.yml
[root@server2 ingress-nginx]# kubectl apply -f demo.yml
[root@server2 ingress-nginx]# kubectl get ingress
[root@server2 ingress-nginx]# kubectl describe ingress nginx-test
复制代码
[root@server2 ingress-nginx]# kubectl get svc nginx-svc

这里需要给这个ip做好地址解析,然后在外部访问域名查看效果。

三、calico网络插件

官网:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises

calico简介:

flannel实现的是网络通信,calico的特性是在pod之间的隔离。

通过BGP路由,但大规模端点的拓扑计算和收敛往往需要一定的时间和计算资源。

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。

Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

准备环境

复制代码
[root@server2 ~]# mkdir calico
[root@server2 ~]# cd calico/
[root@server2 calico]# ls
[root@server2 calico]# wget https://docs.projectcalico.org/manifests/calico.yaml
从yaml文件中找到所需的镜像,从官方拉取并上传到自己的私有仓库

注意此处我已经在仓库中创建的calico项目

复制代码
[root@server1 harbor]# docker pull docker.io/calico/cni:v3.18.1
[root@server1 harbor]# docker tag docker.io/calico/cni:v3.18.1 reg.westos.org/calico/cni:v3.18.1
[root@server1 harbor]# docker push reg.westos.org/calico/cni:v3.18.1
[root@server1 harbor]# docker pull docker.io/calico/node:v3.18.1
[root@server1 harbor]# docker tag docker.io/calico/node:v3.18.1 reg.westos.org/calico/node:v3.18.1
[root@server1 harbor]# docker push reg.westos.org/calico/node:v3.18.1
[root@server1 harbor]# docker pull docker.io/calico/pod2daemon-flexvol:v3.18.1
[root@server1 harbor]# docker tag docker.io/calico/pod2daemon-flexvol:v3.18.1 reg.westos.org/calico/pod2daemon-flexvol:v3.18.1
[root@server1 harbor]# docker push reg.westos.org/calico/pod2daemon-flexvol:v3.18.1
[root@server1 harbor]# docker pull docker.io/calico/kube-controllers:v3.18.1
[root@server1 harbor]# docker tag docker.io/calico/kube-controllers:v3.18.1 reg.westos.org/calico/kube-controllers:v3.18.1
[root@server1 harbor]# docker push reg.westos.org/calico/kube-controllers:v3.18.1

最后将yaml文件中的image地址改成如图所示:

此处将IPIP模式关闭

之前安装的flannel插件,需保持一致;如果没有安装过flannel,则不需要管

先将之前flannel网络组件删除

复制代码
[root@server2 ~]# kubectl delete -f kube-flannel.yml

安装插件

复制代码
所有节点都需要进行以下两步操作
[root@server2 calico]# cd /etc/cni/net.d/
[root@server2 net.d]# mv 10-flannel.conflist /mnt
[root@server2 calico]# kubectl apply -f calico.yaml
[root@server2 calico]# kubectl -n kube-system get pod

calico网络架构

Felix:监听ECTD中心的存储获取事件,用户创建pod后,Felix负责将其网卡、IP、MAC都设置好,然后在内核的路由表里面写一条,注明这个IP应该到这张网卡。同样如果用户制定了隔离策略,Felix同样会将该策略创建到ACL中,以实现隔离。

BIRD:一个标准的路由程序,它会从内核里面获取哪一些IP的路由发生了变化,然后通过标准BGP的路由协议扩散到整个其他的宿主机上,让外界都知道这个IP在这里,路由的时候到这里来。

IPIP工作模式:适用于互相访问的pod不在同一个网段中,跨网段访问的场景。

BGP工作模式:适用于互相访问的pod在同一个网段,适用于大型网络。

网络策略

NetworkPolicy策略模型:控制某个namespace下的pod的网络出入站规则

官网:https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/

限制访问指定服务:

复制代码
# vim nginx-policy.yml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-nginx
spec:
  podSelector:
    matchLabels:
      app: nginx

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。




既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)

识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)

外链图片转存中...(img-0W76WcPT-1712501488254)

相关推荐
yunlaodacom15 小时前
华为云国际站服务代理商:BMS数据库延迟突然升高?磁盘I/O、网络与CPU排查方法
网络·数据库·华为云
张宇Joaquin15 小时前
自研SP600系列网卡驱动跟麒麟V10 SP3 2403配套关系
linux·运维·网络
睡一觉就好了。15 小时前
Cookie与Session
网络
步行cgn15 小时前
HTTP 常用请求方法详解
网络·网络协议·http
mengge.cloud15 小时前
1019Namespace ,Contexts ,Kubernetes Pod
运维·服务器·网络·云原生·容器·kubernetes·云计算
艾iYYY16 小时前
【无标题】
linux·开发语言·网络·操作系统
QZ1665609515916 小时前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
大数据·网络·安全·网络安全
aixingkong92116 小时前
UALink 技术白皮书解读
服务器·网络·硬件架构
flytalei16 小时前
从 Docker Compose 到 K3s:逐浪博客 MySQL 数据迁移实战与一致性验证
mysql·docker·容器
周周爱喝粥呀16 小时前
详细教程:在 Docker 中部署 PostgreSQL 并使用 pgAdmin 可视化管理
docker·postgresql·容器