Skip to content

Commit 5341afa

Browse files
authored
Merge pull request #44701 from k0rventen/fr-task-declare-network-policy
[fr] translate task "Declare Network Policy"
2 parents df0e89f + 2c60938 commit 5341afa

File tree

3 files changed

+170
-0
lines changed

3 files changed

+170
-0
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
title: Déclarer une politique réseau (NetworkPolicy)
3+
min-kubernetes-server-version: v1.8
4+
content_type: task
5+
weight: 180
6+
---
7+
<!-- aperçu -->
8+
Ce document vous aide à utiliser l'[API NetworkPolicy de Kubernetes](/docs/concepts/services-networking/network-policies/) pour déclarer des politiques réseau qui gouvernent la communication entre les pods.
9+
10+
{{% thirdparty-content %}}
11+
12+
## {{% heading "prerequisites" %}}
13+
14+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
15+
16+
Assurez-vous d'avoir configuré un fournisseur de réseau qui supporte les politiques réseau. De nombreux fournisseurs de réseau prennent en charge les NetworkPolicy, notamment :
17+
18+
* [Antrea](/docs/tasks/administer-cluster/network-policy-provider/antrea-network-policy/)
19+
* [Calico](/docs/tasks/administer-cluster/network-policy-provider/calico-network-policy/)
20+
* [Cilium](/docs/tasks/administer-cluster/network-policy-provider/cilium-network-policy/)
21+
* [Kube-router](/docs/tasks/administer-cluster/network-policy-provider/kube-router-network-policy/)
22+
* [Romana](/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy/)
23+
* [Weave Net](/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy/)
24+
25+
<!-- steps -->
26+
27+
## Créer un Deployment `nginx` et l'exposer via un Service
28+
29+
Pour comprendre comment fonctionne les politiques réseau dans Kubernetes, commencez par créer un déploiement `nginx`.
30+
31+
```console
32+
kubectl create deployment nginx --image=nginx
33+
```
34+
```none
35+
deployment.apps/nginx created
36+
```
37+
38+
Exposez le déploiement via un service appelé `nginx`.
39+
40+
```console
41+
kubectl expose deployment nginx --port=80
42+
```
43+
44+
```none
45+
service/nginx exposed
46+
```
47+
48+
Les commandes ci-dessus créent un déploiement avec un Pod nginx et exposent le déploiement via un service nommé `nginx`. Le Pod et le Deployment `nginx` se trouvent dans le namespace `default`.
49+
50+
```console
51+
kubectl get svc,pod
52+
```
53+
54+
```none
55+
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
56+
service/kubernetes 10.100.0.1 <none> 443/TCP 46m
57+
service/nginx 10.100.0.16 <none> 80/TCP 33s
58+
59+
NAME READY STATUS RESTARTS AGE
60+
pod/nginx-701339712-e0qfq 1/1 Running 0 35s
61+
```
62+
63+
## Tester le Service en y accédant depuis un autre Pod
64+
65+
Vous devriez pouvoir accéder au nouveau service `nginx` depuis d'autres pods. Pour accéder au service `nginx` depuis un autre pod dans le namespace `default`, démarrez un conteneur busybox :
66+
67+
```console
68+
kubectl run busybox --rm -ti --image=busybox:1.28 -- /bin/sh
69+
```
70+
71+
Dans votre shell, exécutez la commande suivante :
72+
73+
```shell
74+
wget --spider --timeout=1 nginx
75+
```
76+
77+
```none
78+
Connecting to nginx (10.100.0.16:80)
79+
remote file exists
80+
```
81+
82+
## Limiter l'accès au Service `nginx`
83+
84+
Pour limiter l'accès au service `nginx` afin que seuls les pods avec le label `access: true` puissent le consulter, créez un objet NetworkPolicy comme suit :
85+
86+
{{% code_sample file="service/networking/nginx-policy.yaml" %}}
87+
88+
Le nom d'un objet NetworkPolicy doit être un [nom de sous-domaine DNS valide](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names).
89+
90+
{{< note >}}
91+
Les NetworkPolicy incluent un `podSelector` qui sélectionne le regroupement de pods auxquels la politique s'applique. Vous pouvez voir que cette politique sélectionne les pods avec le label `app=nginx`. Ce label a été ajouté automatiquement au pod dans le déploiement `nginx`. Un `podSelector` vide sélectionne tous les pods dans le namespace.
92+
{{< /note >}}
93+
94+
## Affecter la politique au Service
95+
96+
Utilisez kubectl pour créer une NetworkPolicy à partir du fichier `nginx-policy.yaml` ci-dessus :
97+
98+
```console
99+
kubectl apply -f https://k8s.io/examples/service/networking/nginx-policy.yaml
100+
```
101+
102+
```none
103+
networkpolicy.networking.k8s.io/access-nginx created
104+
```
105+
106+
## Tester l'accès au Service lorsque le label d'accès n'est pas défini
107+
Lorsque vous tentez d'accéder au service `nginx` depuis un pod sans les bons labels, la requête échoue :
108+
109+
```console
110+
kubectl run busybox --rm -ti --image=busybox:1.28 -- /bin/sh
111+
```
112+
113+
Dans votre shell, exécutez la commande :
114+
115+
```shell
116+
wget --spider --timeout=1 nginx
117+
```
118+
119+
```none
120+
Connecting to nginx (10.100.0.16:80)
121+
wget: download timed out
122+
```
123+
124+
## Définir le label d'accès et tester à nouveau
125+
126+
Vous pouvez créer un pod avec le bon label pour voir que la requête est autorisée :
127+
128+
```console
129+
kubectl run busybox --rm -ti --labels="access=true" --image=busybox:1.28 -- /bin/sh
130+
```
131+
132+
Dans votre shell, exécutez la commande :
133+
134+
```shell
135+
wget --spider --timeout=1 nginx
136+
```
137+
138+
```none
139+
Connecting to nginx (10.100.0.16:80)
140+
remote file exists
141+
```
142+
143+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: NetworkPolicy
3+
metadata:
4+
name: access-nginx
5+
spec:
6+
podSelector:
7+
matchLabels:
8+
app: nginx
9+
ingress:
10+
- from:
11+
- podSelector:
12+
matchLabels:
13+
access: "true"

data/i18n/fr/fr.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,5 +151,19 @@ other = "Fin du support:"
151151
[previous_patches]
152152
other = "Correctifs publiés:"
153153

154+
[thirdparty_message]
155+
other = """Cette section renvoie à des projets tiers qui fournissent des fonctionnalités requises par Kubernetes. Les auteurs du projet Kubernetes ne sont pas responsables de ces projets, classés par ordre alphabétique. Pour ajouter un projet à cette liste, lisez le <a href="/docs/contribute/style/content-guide/#third-party-content">guide</a> avant de soumettre une modification. <a href="#third-party-content-disclaimer">Plus d'informations.</a>"""
156+
157+
[thirdparty_message_edit_disclaimer]
158+
other="""Conseils sur le contenu tiers"""
159+
160+
[thirdparty_message_single_item]
161+
other = """&#128711; Cet élément renvoie à un projet ou un produit tiers qui ne fait pas partie de Kubernetes lui-même. <a class="alert-more-info" href="#third-party-content-disclaimer">Plus d'informations</a>"""
162+
163+
[thirdparty_message_disclaimer]
164+
other = """<p>Certains éléments sur cette page font référence à des produits ou projets tiers qui fournissent des fonctionnalités requises par Kubernetes. Les auteurs du projet Kubernetes ne sont pas responsables de ces produits ou projets tiers. Consultez les <a href="https://github.com/cncf/foundation/blob/master/website-guidelines.md" target="_blank">lignes directrices du site de la CNCF</a> pour plus de détails.</p> <p>Vous devriez lire le <a href="/docs/contribute/style/content-guide/#third-party-content">guide</a> avant de proposer une modification qui ajoute un nouveau lien tiers. </p>"""
165+
166+
154167
[release_date_before]
155168
other = "(publiée: "
169+

0 commit comments

Comments
 (0)