默认情况下 Kube-OVN 创建的子网之间可以相互通信,Pod 也可以通过网关访问外部网络。
如需对子网间的访问进行控制,可以在子网 CRD 中将 private 设置为 true,则该子网将和其他子网以及外部网络隔离,只能进行子网内部的通信。如需开白名单,可以通过 allSubnets 进行设置。
更细粒度的访问控制可以使用 Kubernetes 的 NetworkPolicy 来实现,Kube-OVN 本身实现了 NetworkPolicy 的规则,并且 NetworkPolicy 规则的优先级将会高于子网 CRD 中的访问控制设置。
开启访问控制的子网示例
- apiVersion: kubeovn.io/v1
- kind: Subnet
- metadata:
- name: subnet-acl
- spec:
- protocol: IPv4
- default: false
- namespaces:
- - ns1
- - ns2
- cidrBlock: 10.69.0.0/16
- gateway: 100.64.0.1
- excludeIps:
- - 100.64.0.1
- private: true
- allowSubnets:
- - 10.16.0.0/16
- - 10.18.0.0/16