# 背景和挑战 本文简要说明 DCE 5.0 容器网络的研发背景和面临的挑战。 ## 网络背景 **多云混合云** 云原生应用场景逐渐规模化,上云应用不断激增,场景越来越复杂。 为应对高可用、容灾、业务流量激增等场景,用户逐步采用多集群、跨云部署,而在方案的实施过程中,应用分发、应用连通以及平台管理等问题逐渐凸显。 其中,网络是整体方案落地的关键,主要面临的问题如下: - 多集群管理需求增加,而且底层基础设施多样化,需要考虑不同的公有云、私有云以及跨地域环境。因此,在环境异构的场景下,需要异构集群网络的互通互联,并且具备公共服务跨集群服务发现的能力。 - 为保障高可用,微服务应用负载在不同集群中互为主备。在此场景中,同样需要保障网络的互联互通。 ![all-in-one](https://docs.daocloud.io/daocloud-docs-images/docs/network/images/intro01.png) **传统应用云原生化** - IP 管理:一些传统行业如制造、教育、能源在上云的过程中,应用常常未经微服务改造,很多应用仍需要通过某个固定 IP 进行访问。而且,此类 IP 也需要进行强管控,如严格的防火墙管控。因此,需要更灵活及更高效的 IP 管理能力。 - 集群内外互联互通:在传统应用微服务化过程中,用户会逐步将一部分应用容器化。部分容器化的应用需要具备可对外访问的 IP,实现集群内外互联互通。因此,此类应用同样也需要使用固定并且可对外访问的 IP。 - 网络类型多样化:基于对外访问 IP 的强管控需求,用户常在一个容器云平台中开放部分应用对外访问。而对于无需对外访问的应用,仍使用动态虚拟 IP,如部分应用使用 MacVLAN CNI 进行对外访问,部分使用 Calico CNI。因此,网络类型多样化同样也逐渐成为应用上云需求。 ![cloud-native](https://docs.daocloud.io/daocloud-docs-images/docs/network/images/intro02.png) **数据库、机器学习等应用上云** 随着云原生领域的发展,数据库,机器学习等资源敏感性应用也开始运行在 Kubernetes 平台上。 此类应用对计算能力、网络性能和时延有较高的要求。 因此, SR-IOV (Single Root I/O Virtualization) 等基于硬件的虚拟化加速网络方案和 eBPF 等网络加速方案同 Kubernetes 融合也是一个必然的发展方向。 **网络安全监管要求** 容器和云原生平台帮助企业实现自动化应用部署,带来巨大的业务收益。 但是平台内部的 Pod 都是扁平的,横向的网络安全隔离缺少保障。 此外,随着云原生规模的扩张,以及微服务化的推进,东西向网络流量剧增。 尽管可以通过传统的防火墙和主机安全工具保护单体应用,但对于在主机之间甚至各种云之间动态部署的容器来说,必须对东西向流量以及内部流量攻击加强监控。 企业在构建容器云平台时,需要考虑更细粒度的网络策略,提升网络安全。 ## 网络面临的挑战 **多云多集群下的网络连通性** 多集群环境下,不仅要考虑各集群使用不同的网络 CNI,还需要实现各集群互联互通。 因此,需要解决 Cluster IP 互通、DNS 互通等问题。 **多云多集群下的统一 IP 资源管理** 多云多集群环境下要实现网络互通,集群与集群内的 IP 不能重复及冲突。因此,要基于多集群视角进行 IP 管理和规划,避免 IP 冲突、网段冲突(Underlay IP、Service IP 等)。 **单一 CNI 难以满足多样化场景需求** 面对多样化的网络场景,目前不同类型应用的网络需求不尽相同。单一的网络 CNI 很难满足多样化的场景需求。因此,在特定场景中需要使用特定 CNI 满足业务需求,在较复杂的场景中,还需要进行 CNI 组合。 **固定并且可对外访问的 IP 需求旺盛,但缺乏灵活高效的 IPAM 机制** 基于 Underlay CNI 实现固定并且可对外访问的 IP,但 Underlay CNI 中的 IP 资源相对紧缺,并且需要防火墙严格管控。因此,对于 Underlay IP 的使用,需要严格规划和分配。 当 IP 地址释放及分配失败时,需要及时回收,防止资源浪费。 **网络安全策略和网络流量统一管理** 需要统一不同集群的网络安全策略下发,以及对不同集群间的网络流量进行管控和加密。 **软硬结合、网络加速等新技术结合带来的新挑战** 为满足高性能、低延迟的网络需求,同 SR-IOV 等基于硬件的虚拟化加速网络方案以及 eBPF 等网络加速方案的结合也是云原生容器网络面临的一大机遇与挑战。