kubernetes网络模型与网络插件与网络策略

时间:2020-11-09 13:57:23

标签: kubernetes

在网络方面,众多的概念和选项让我不知所措。 所以我的问题是:这些kubernetes概念的用例和区别是什么?

我到目前为止发现的内容:

网络策略文档非常清楚地描述了用例:

您要在IP地址或端口级别上控制流量

但是此处未始终使用网络策略:Calico是Networking Model in kubernetes doc或Azure Portal中的网络策略(s。image)。

Azure Networking

我怀疑Azure在这里使用了错误的术语。

但是我仍然不了解模型和插件之间的区别。当然,这是关于管理资源之间的通信的。

为什么我需要两个不同的概念和两个配置选项来管理网络流量?

1 个答案:

答案 0 :(得分:1)

Kubernetes解决了一些网络问题:

  1. 容器间通信
  2. 点对点通信
  3. 点对点通信
  4. 外部网络到服务的通信

容器运行时解决的第一个问题,其余部分(services涵盖的第3和第4个问题,仍取决于基础网络模型)由Kubernetes网络模型解决。

网络模型是Kubernetes中网络应该如何工作的高级描述,它提出了3个主要要求:

  • 每个Pod都有自己的IP地址
  • 节点上的Pod可以与所有节点上的所有Pod通信,而无需NAT
  • 节点上的代理可以与该节点上的所有Pod通信

此抽象模型允许实际网络层的不同实现,例如称为kubenetCalicoCilium等的默认网络实现。

基本上,网络插件是实现NetworkPlugin接口的任何东西。实际上,所有网络模型实现都是网络插件,甚至是default one。当然,您可以设置some additional插件以获得更多功能/网络控制。

但是为什么Azure会提到Calico作为网络策略?好吧,网络策略是通过网络插件实现的,kubenetCalico提供了自己的网络策略实现。