20.7. Configuration de l'isolation des multitenants à l'aide d'une stratégie de réseau
En tant qu'administrateur de cluster, vous pouvez configurer vos stratégies réseau pour assurer l'isolation du réseau multitenant.
Si vous utilisez le plugin réseau OpenShift SDN, la configuration des politiques réseau comme décrit dans cette section fournit une isolation réseau similaire au mode multitenant mais avec un mode de politique réseau défini.
20.7.1. Configuration de l'isolation des multitenants à l'aide d'une stratégie de réseau
Vous pouvez configurer votre projet pour l'isoler des pods et des services dans d'autres espaces de noms de projets.
Conditions préalables
-
Votre cluster utilise un plugin réseau qui prend en charge les objets
NetworkPolicy
, tel que le fournisseur de réseau OpenShift SDN avecmode: NetworkPolicy
. Ce mode est le mode par défaut pour OpenShift SDN. -
You installed the OpenShift CLI (
oc
). -
Vous êtes connecté au cluster avec un utilisateur disposant des privilèges
admin
.
Procédure
Créez les objets
NetworkPolicy
suivants :Une police nommée
allow-from-openshift-ingress
.$ cat << EOF| oc create -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-openshift-ingress spec: ingress: - from: - namespaceSelector: matchLabels: policy-group.network.openshift.io/ingress: "" podSelector: {} policyTypes: - Ingress EOF
Notepolicy-group.network.openshift.io/ingress: ""
est l'étiquette de sélecteur d'espace de noms préférée pour OpenShift SDN. Vous pouvez utiliser l'étiquette de sélecteur d'espace de nomsnetwork.openshift.io/policy-group: ingress
, mais il s'agit d'une étiquette héritée.Une police nommée
allow-from-openshift-monitoring
:$ cat << EOF| oc create -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-openshift-monitoring spec: ingress: - from: - namespaceSelector: matchLabels: network.openshift.io/policy-group: monitoring podSelector: {} policyTypes: - Ingress EOF
Une police nommée
allow-same-namespace
:$ cat << EOF| oc create -f - kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: allow-same-namespace spec: podSelector: ingress: - from: - podSelector: {} EOF
Une police nommée
allow-from-kube-apiserver-operator
:$ cat << EOF| oc create -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-kube-apiserver-operator spec: ingress: - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: openshift-kube-apiserver-operator podSelector: matchLabels: app: kube-apiserver-operator policyTypes: - Ingress EOF
Pour plus de détails, voir Nouveau contrôleur de webhook
kube-apiserver-operator
validant l'état de santé du webhook.
Facultatif : Pour confirmer que les politiques de réseau existent dans votre projet actuel, entrez la commande suivante :
$ oc describe networkpolicy
Exemple de sortie
Name: allow-from-openshift-ingress Namespace: example1 Created on: 2020-06-09 00:28:17 -0400 EDT Labels: <none> Annotations: <none> Spec: PodSelector: <none> (Allowing the specific traffic to all pods in this namespace) Allowing ingress traffic: To Port: <any> (traffic allowed to all ports) From: NamespaceSelector: network.openshift.io/policy-group: ingress Not affecting egress traffic Policy Types: Ingress Name: allow-from-openshift-monitoring Namespace: example1 Created on: 2020-06-09 00:29:57 -0400 EDT Labels: <none> Annotations: <none> Spec: PodSelector: <none> (Allowing the specific traffic to all pods in this namespace) Allowing ingress traffic: To Port: <any> (traffic allowed to all ports) From: NamespaceSelector: network.openshift.io/policy-group: monitoring Not affecting egress traffic Policy Types: Ingress