UDN vs CUDN
Le due CRD coprono due scope diversi.
UserDefinedNetwork (namespace)
Sezione intitolata “UserDefinedNetwork (namespace)”Vive in un namespace e isola quel namespace. Una rete = un tenant.
apiVersion: k8s.ovn.org/v1kind: UserDefinedNetworkmetadata: name: primary-net namespace: tenant-segregatospec: topology: Layer3 layer3: role: Primary subnets: - cidr: 10.200.0.0/16 hostSubnet: 24ClusterUserDefinedNetwork (multi-namespace)
Sezione intitolata “ClusterUserDefinedNetwork (multi-namespace)”È cluster-scoped e seleziona uno o più namespace via namespaceSelector. I namespace selezionati condividono la stessa rete primaria, restando isolati dagli altri. Nota la config annidata sotto spec.network.
cat <<'EOF' | oc apply -f -apiVersion: k8s.ovn.org/v1kind: ClusterUserDefinedNetworkmetadata: name: cudn-prodspec: namespaceSelector: matchLabels: cudn: prod network: topology: Layer2 layer2: role: Primary subnets: - 10.100.0.0/16EOFPoi i namespace che vuoi includere devono avere entrambe le label, al momento della creazione:
apiVersion: v1kind: Namespacemetadata: name: app-prod-1 labels: k8s.ovn.org/primary-user-defined-network: "" cudn: prodQuale usare
Sezione intitolata “Quale usare”| Esigenza | CRD |
|---|---|
| Un singolo namespace isolato | UserDefinedNetwork |
| Più namespace che si parlano fra loro ma isolati dagli altri | ClusterUserDefinedNetwork |
| Separazione control-plane / data-plane fra tenant | ClusterUserDefinedNetwork |