Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. F5技术
  3. 正文

k8s利用F5实现租户流量隔离?

2019年01月3日 8428点热度 0人点赞 0条评论

环境背景:

flannel vxlan CNI 网络模型, F5 CC容器对接方案。

目标:

实现在F5上利用route domain对不同NS的流量隔离,类似如下:

-- | -- | -- | -- | -- | --
Ns1 | Cc1 | Svc1 | cm1 | Partition 1 | Route domain1
-- | -- | -- | -- | -- | --
Ns2 | Cc2 | Svc2 | cm2 | Partition2 | Route domain2

过程分析:

要想实现不同cc监控不同NS下资源并发布到不同的partition/RD下,那么需要cc

在写入bigip配置时携带 partition/RD信息,这些配置包括:
静态FDB/静态ARP/VS/POOL/Monitor等。

F5的configmap容许在定义资源的时候携带 RD ID

对于写入FDB/ARP信息时,需要在设置cc容器配置时,告知cc 相关的flannel tunnel在哪个partition下,类似这样:

1
2
3
4
            "--bigip-partition=cka",
            "--namespace=cka",
            "--pool-member-type=cluster",
            "--flannel-name=/cka/flannel_vxlan",

1
2
3
4
            "--bigip-partition=k8s",
            "--namespace=default",
            "--pool-member-type=cluster",
            "--flannel-name=/k8s/flannel_vxlan",

那么,这就需要BIGIP上首先在不同的partition下设置不同的vxlan tunnel。类似openstack,不同的租户下使用相同的vtep地址建立不同的vxlan tunnel(tunnel里的key不一样),然后将这些tunnel分别关联到Partition对应的RD上,实现真正网络隔离。 但是flannel 无法针对不同的NS配置不同的VNI,这导致在F5上无法为不同的租户配置具有相同Key ID 的vxlan tunnel(F5会报错)。 因此做法行不通。

1
The tunnel /cka/test must have a unique VNI - the specified VNI(1) conflicts with VNI of tunnel /Common/flannel_vxlan.

那为了避开上面这个tunnel创建问题,利用BIGIP 不同VLAN 作为vtep来与k8s node建立tunnel,这样tunnel可以建立,此时对于flannel来说,BIGIP上的这两个vtep 就需要像两个k8s node (按照F5 cc的思路,每个BIGIP vtep,在k8s里模拟成一个假 node),于是就需要给这两个不同的tunnel分别配置self IP, 按照flannel的默认要求,tunnel的selfIP需要/16掩码(容器使用/24),此时就会出现需要给两个不同的tunnel 都配置相同的网络号的问题,类似这样:

Tunnel 1 selfip 10.244.244.0/16

Tunnel 2 selfip 10.244.245.0/16

但实际上tunnel2 是属于另一个RD的,所以携带上RD号后,可以成功设置self ip。

随后,就需要开始为F5上这两个tunnel的vtep分别设置假的k8s node,但是此时,F5上的这两个tunnel的MAC地址是一样的,这导致k8s真节点上的flannel无法正确添加相关fdb表:

第一个tunnel vtep作为fake node加入后
00:50:56:b3:2e:29 dev flannel.1 dst 172.16.40.202 self permanent

第二个tunnel vtep作为fake node加入后
00:50:56:b3:2e:29 dev flannel.1 dst 172.16.30.202 self permanent

 所以,实际无法达成真正的通过RD流量的隔离。这并不是CC的问题,而是flannle本身实际上无法真正的给不同的NS分配不同的VNI号来实现不同NS的不同tunnel流量隔离。

就目前来看,要实现NS流量隔离,需要用不同cc对接不同的BIGIP。

同一个bigip可以做到不同的NS配置对应到不同的partition下,但是route domain层面无法隔离,不同partition还需要都用相同的route domain。

相关文章

  • F5 CC 租户配置隔离配置方法
  • DOCKER容器跨宿主机通信方法(4):Flannel-Vxlan
  • 项目:k8s Gateway API 的BIG-IP实现
  • F5 CES 用融合的思想保护k8s出向流量安全
  • Container Egress Services 容器出向流量策略管控
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: flannel k8s route domain vxlan 租户隔离
最后更新:2019年01月3日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

页面AI聊天助手

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    network openstack istio DNS k8s nginx envoy irule gtm api flannel docker neutron F5 bigip
    最近评论
    汤姆 发布于 8 个月前(09月10日) 嗨,楼主,里面的json怎么下载啊,怎么收费啊?
    汤姆 发布于 8 个月前(09月09日) 大佬,kib的页面可以分享下吗?谢谢
    zhangsha 发布于 1 年前(05月12日) 资料发给我下,谢谢纳米同志!!!!lyx895@qq.com
    李成才 发布于 1 年前(01月02日) 麻烦了,谢谢大佬
    纳米 发布于 1 年前(01月02日) 你好。是的,因为以前下载系统插件在一次升级后将所有的下载生成信息全弄丢了。所以不少文件无法下载。DN...
    浏览次数
    • Downloads - 183,756 views
    • 联系我 - 118,966 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 116,489 views
    • Github - 103,645 views
    • F5常见log日志解释 - 79,768 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 74,619 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 74,320 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 67,770 views
    • 关于本站 - 60,890 views
    • 这篇文档您是否感兴趣 - 55,491 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号