随着 Kubernetes 社区的发展 , 实际生产环境中使用 Kubernetes 越来越多 , 用户对 CNI (Container Network Interface) 的要求也越来越多 。 Fabric 作为博云自研的一款成熟的 CNI 产品 , 旨在提供能适应多种场景 , 功能丰富易用且性能卓越的容器网络管理平台 , 从而有效的回应用户对于 CNI 的期待 。
本期我们将着重介绍 Fabric 的一些常用基础功能 。
一、IP/MAC 固定 1.1 使用场景
- 保证 Pod IP/MAC 不变
固定 IP/MAC 使漂移后的 pod 可以保持原有的身份发生网络访问 , 提高了业务可用性 , 保证了关联业务都能正常与之发生访问 。
- 简化相关网络策略的配置
1.2 产品特点 Fabric 固定 IP/MAC 的功能有如下特点:
(1) 更灵活的 IP/MAC 预约池 , 只要 IP/MAC 未被使用就能加入预约池 。
(2) CRD 设计 , 更符合 Kubernetes 的设计原则 。
(3) 支持常见的 Kubernetes Workload 。
(4) Namespace 级别的安全隔离 , 不同的租户可以使用不同的 IP/MAC 预约池 。
(5) 预约池可以根据使用需求动态扩缩容 。
(6) 对于无状态服务 , 每次分配会从 IP 池中随机分配;对于有状态的 Statefulset 类型应用 , 每个 Pod 实例会获取整个生命周期固定的 IP 地址 。
1.3 实现原理 集群中的 Pod 在某一节点被创建时 , Kubelet 都会通过 CNI 去请求分配 IP , Fabric CNI 会通过 http 请求的方式向 fabric api-server 发送申请 IP 的请求 。 当 fabric api-server 收到申请 IP 的请求之后 , 首先会根据请求中的 pod 信息去查看 pod 对应的 annotation , 判断 annotation 是否绑定 IP/MAC 预约池(即判断是否需要固定 IP/MAC) 。 如果没有绑定 IP/MAC 预约池则正常分配 IP , 如果存在 IP/MAC 预约池 , 则使用 IP/MAC 预约池中的 IP/MAC , 即完成固定 IP/MAC 。
基本固定 IP/MAC 流程如图 1 所示:
文章图片
图 1:fabric 固定 IP/MAC 流程
二、流量出口 - EgressIp 2.1 使用场景
- 集群流量审计
- 安全运维
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
