Networking 如何配置kubernetes群集以使用平面网络

Networking 如何配置kubernetes群集以使用平面网络,networking,kubernetes,Networking,Kubernetes,我想在KVM虚拟机中设置一个kubernetes群集,它的所有通信都使用平面DHCP网络 虚拟机的VNIC(将成为kube主服务器和kube工作服务器)通过桥接使用现有的物理DHCP网络 我想知道是否有可能让kubernetes对POD和kubernetes内部使用相同的物理DHCP网络。有人知道如何配置它吗 我试图在/etc/cni/net.d中配置一个网桥网络,但没有成功。我是否必须尝试IPVLAN或其他方法 谢谢我建议您阅读Kubernetes关于的文档 您可以使用(多网络插件)。CNI支

我想在KVM虚拟机中设置一个kubernetes群集,它的所有通信都使用平面DHCP网络

虚拟机的VNIC(将成为kube主服务器和kube工作服务器)通过桥接使用现有的物理DHCP网络

我想知道是否有可能让kubernetes对POD和kubernetes内部使用相同的物理DHCP网络。有人知道如何配置它吗

我试图在/etc/cni/net.d中配置一个网桥网络,但没有成功。我是否必须尝试IPVLAN或其他方法


谢谢

我建议您阅读Kubernetes关于的文档

您可以使用(多网络插件)。CNI支持将多个网络接口连接到Kubernetes中的POD

是一个多CNI插件,使用Kubernetes中基于CRD的网络对象支持Kubernetes中的多网络功能

Multus支持实现CNI规范的所有插件(如,,)和第三方插件(如,,,)。除此之外,Multus还支持Kubernetes中的、工作负载以及Kubernetes中的云本机和基于NFV的应用程序

有了它,你可以使用

使用dhcp插件,容器可以获得已在网络上运行的dhcp服务器分配的IP。这对于macvlan等插件类型尤其有用。由于DHCP租约必须在容器生存期内定期续订,因此需要运行一个单独的守护程序。同样的插件二进制文件也可以在守护程序模式下运行

还有

此部署使用了几个kubernetes特性,这些特性主要由旧isc dhcpd的假设和限制驱动。重点是:

  • Isc dhcpd必须在配置时知道自身及其故障切换对等方的地址,这显然与kubernetes pod寻址和自愈功能冲突,但Isc dhcpd允许DNS解析这些值,因此我们使用kubernetes来克服这些问题
  • Isc dhcpd将其dhcp租约存储在一个文件中,但不会在启动时自动创建该文件。为了确保它始终按预期工作,我们使用,在启动dhcpd之前触摸文件
  • 虽然一个pod可以通过DNS查询自己的FQDN来找到自己的IP,但它不能通过自己的FQDN查询其他pod IP,这让这个过程中断了一段时间,但实际上可以通过创建一个DNS来巧妙地解决问题,这将通过DNS公开其pod IP地址
  • 部署和服务实际上分为两部分;小学和中学。这是一种变通方法,因为dhcpd要求每个实例的配置略有不同,所以我们通过拥有两个实例来实现这一点,仍然进行部署的优点是,如果一个实例出现故障,我们可以让复制控制器启动一个替换实例
  • 这两个部署共享大部分配置,除了一些细节,因此我们可以使用共享配置创建kubernetes,然后将kubernetes装载在pod内的几个不同细节,安装在主配置和辅助配置的同一位置
  • 由于我们有两个部署,我们希望确保它们不会部署在集群中的同一个物理节点上,因此我们使用kubernetes将更喜欢将其放置在单独的节点上
  • 使用新的可能会更干净,因此我们可以避免重复部署,这是NPF 2018需要考虑的问题。我们不支持PersistentVolumeClaims,但在iSCSI SAN中只支持PersistentVolumes,这对于statefulsets atm来说可能有点困难
更新

我想这可能是你最好的解决办法。 您在
bridget.yaml
中拥有整个部署,该部署正在创建DeamonSet](),因此它将在所有(或某些)节点上运行,并将运行pod的副本

bridget-它是一个简短的shell脚本,可以帮助您为Kubernetes组织简单的桥接网络。没有重叠,没有政治。只需跨所有主机和吊舱构建平面L2网络

此外,bridget可以为此自动配置VLAN和网桥接口。如图所示:

bridget自动从pod网络检索节点cidr,并配置cni以使用它


我建议您阅读Kubernetes关于的文档

您可以使用(多网络插件)。CNI支持将多个网络接口连接到Kubernetes中的POD

是一个多CNI插件,使用Kubernetes中基于CRD的网络对象支持Kubernetes中的多网络功能

Multus支持实现CNI规范的所有插件(如,,)和第三方插件(如,,,)。除此之外,Multus还支持Kubernetes中的、工作负载以及Kubernetes中的云本机和基于NFV的应用程序

有了它,你可以使用

使用dhcp插件,容器可以获得已在网络上运行的dhcp服务器分配的IP。这对于macvlan等插件类型尤其有用。由于DHCP租约必须在容器生存期内定期续订,因此需要运行一个单独的守护程序。同样的插件二进制文件也可以在守护程序模式下运行

还有

此部署使用了几个kubernetes特性,这些特性主要由旧isc dhcpd的假设和限制驱动。重点是:

  • Isc dhcpd必须在配置时知道自身及其故障切换对等方的地址,这显然与kubernetes pod寻址和自愈功能冲突,但Isc dhcpd允许DNS解析这些值,因此我们使用kubernetes来克服这些问题
  • Isc dhcpd将其dhcp租约存储在一个文件中,但不会在启动时自动创建该文件。为确保其始终按预期工作,我们使用,