3

我需要使用最适合 Dotnet 核心的 cni 和 SQL 服务器(相同网络但不同 IP)Kubernetes 部署。

4

2 回答 2

2

CNI 的制作方式是从应用程序中抽象出网络逻辑。这使我们可以使用 CNI 而不必过多担心细节。

如果您开始使用 CNI,您几乎可以使用任何您喜欢的 CNI,因为您的应用程序将照常使用网络。

您使用哪个应用程序/语言/框架/数据库无关紧要,CNI 只负责您的应用程序永远不会知道的网络。

CNI 主要用于允许网络策略和管理节点网络。

如果您想看到一篇关于 Kubernetes 之外的 CNI 的精彩文章(将使您了解 CNI 的实际含义和作用)。*不是我写的,而是一篇了解 CNI 的好帖子。

因此,无论您选择哪种,都将纯粹受 CNI 的影响,而不是它如何与您的应用程序一起使用。

首先,Calico 是一个不错的选择,因为它易于部署和使用,并且允许网络策略。

于 2019-09-18T08:04:51.933 回答
2

这取决于...

TCP 很重要

关于不同 CNI 的性能有一篇很棒的文章:Kubernetes 网络插件 (CNI) 的基准测试结果

根据图表,几乎所有 CNI 都最适合 TCP。

请参阅:CNI 中的 TCP 性能 CNI 之间的 TCP 性能

由于您在评论中指出您使用的是 MS SQL,因此 TCP 是您案例的主要协议。默认 MS SQL 设置使用 TCP/IP 协议

所以,在所有 CNI 中,根据它们的性能,你几乎可以选择任何一种(除了加密的 Clilium 和加密的 WaveNet)

MTU 也很重要

但是,如果您将性能图表与 CNI 自动检测 MTU 选项进行比较,您会发现只有 Cilium 和 Flannel 仍然是冠军(裸机除外):

CNI 自动检测到的 MTU

安全重要吗?

这取决于。

假设 MS SQL 提供了开箱即用的适当安全级别,您可以跳过这部分建议。

如果您认为额外的安全级别您的情况很重要,您可以参考此矩阵:

安全基准测试结果摘要

结论

所以,对于 SQL,如果你从性能上选择,那么你可以选择 Flannel 或 Cilium,稍微有优势。如果安全很重要,那么 Cilium 更好。

PS下面的答案提到了Calico。正如您在 TCP 性能图表上所见,Calico 是领先者。但是,如果您可以在云中设置正确的 MTU。

于 2019-09-18T09:26:10.343 回答