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运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

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

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

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

识点,真正体系化!**

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

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-0W76WcPT-1712501488254)]

相关推荐

  1. <span style='color:red;'>K</span><span style='color:red;'>8</span><span style='color:red;'>S</span><span style='color:red;'>网络</span>

    K8S网络

    2024-04-08 13:22:03      32 阅读
  2. k8s网络类型

    2024-04-08 13:22:03       28 阅读
  3. k8s网络类型

    2024-04-08 13:22:03       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 13:22:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 13:22:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 13:22:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 13:22:03       20 阅读

热门阅读

  1. 什么是存储服务器?

    2024-04-08 13:22:03       12 阅读
  2. 人机协同会带来基础领域的新的科技革命

    2024-04-08 13:22:03       10 阅读
  3. SpringBoot项目中常用注解总结

    2024-04-08 13:22:03       17 阅读
  4. windows@命令行管理用户和用户组

    2024-04-08 13:22:03       16 阅读
  5. 【架构二】胖瘦客户端

    2024-04-08 13:22:03       12 阅读
  6. onnxruntime-gpu飘红报错怎么解决?

    2024-04-08 13:22:03       15 阅读
  7. SpringBoot生成一维码和二维码

    2024-04-08 13:22:03       15 阅读
  8. 系统架构评估_1.相关概念

    2024-04-08 13:22:03       13 阅读
  9. 【flask快速上手(一)】

    2024-04-08 13:22:03       14 阅读
  10. 深入浅出 -- 系统架构之负载均衡Nginx配置SSL证书

    2024-04-08 13:22:03       15 阅读
  11. 使用数据增强和dropout的图像分类

    2024-04-08 13:22:03       14 阅读