默认情况下 Kube-OVN 创建的子网之间可以相互通信,Pod 也可以通过网关访问外部网络。

如需对子网间的访问进行控制,可以在子网 CRD 中将 private 设置为 true,则该子网将和其他子网以及外部网络隔离,只能进行子网内部的通信。如需开白名单,可以通过 allSubnets 进行设置。

更细粒度的访问控制可以使用 Kubernetes 的 NetworkPolicy 来实现,Kube-OVN 本身实现了 NetworkPolicy 的规则,并且 NetworkPolicy 规则的优先级将会高于子网 CRD 中的访问控制设置。

开启访问控制的子网示例

  1. apiVersion: kubeovn.io/v1
  2. kind: Subnet
  3. metadata:
  4. name: subnet-acl
  5. spec:
  6. protocol: IPv4
  7. default: false
  8. namespaces:
  9. - ns1
  10. - ns2
  11. cidrBlock: 10.69.0.0/16
  12. gateway: 100.64.0.1
  13. excludeIps:
  14. - 100.64.0.1
  15. private: true
  16. allowSubnets:
  17. - 10.16.0.0/16
  18. - 10.18.0.0/16