diff --git a/content/fr/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md b/content/fr/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md
index 69d3467d11..3783b264c4 100644
--- a/content/fr/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md
+++ b/content/fr/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md
@@ -1,16 +1,17 @@
---
title: Installer kubeadm
-description: kubeadm installation Kubernetes
content_type: task
-weight: 20
+weight: 10
+card:
+ name: setup
+ weight: 20
+ title: Installez l'outil de configuration kubeadm
---
-
Cette page vous
-apprend comment installer la boîte à outils `kubeadm`.
-Pour plus d'informations sur la création d'un cluster avec kubeadm, une fois que vous avez
-effectué ce processus d'installation, voir la page: [Utiliser kubeadm pour créer un cluster](/fr/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/).
+
Cette page vous apprend comment installer la boîte à outils `kubeadm`.
+Pour plus d'informations sur la création d'un cluster avec kubeadm, une fois que vous avez effectué ce processus d'installation, voir la page: [Utiliser kubeadm pour créer un cluster](/fr/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/).
@@ -19,39 +20,53 @@ effectué ce processus d'installation, voir la page: [Utiliser kubeadm pour cré
* Une ou plusieurs machines exécutant:
- Ubuntu 16.04+
- - Debian 9
+ - Debian 9+
- CentOS 7
- - RHEL 7
- - Fedora 25/26 (best-effort)
+ - Red Hat Enterprise Linux (RHEL) 7
+ - Fedora 25+
- HypriotOS v1.0.1+
- - Container Linux (testé avec 1800.6.0)
+ - Flatcar Container Linux (testé avec 2512.3.0)
* 2 Go ou plus de RAM par machine (toute quantité inférieure laissera peu de place à vos applications)
* 2 processeurs ou plus
* Connectivité réseau complète entre toutes les machines du cluster (réseau public ou privé)
* Nom d'hôte, adresse MAC et product_uuid uniques pour chaque nœud. Voir [ici](#verify-the-mac-address-and-product-uuid-are-unique-for-every-node) pour plus de détails.
* Certains ports doivent êtres ouverts sur vos machines. Voir [ici](#check-required-ports) pour plus de détails.
-* Swap désactivé. Vous devez impérativement désactiver le swap pour que la kubelet fonctionne correctement.
+* Swap désactivé. Vous **devez** impérativement désactiver le swap pour que la kubelet fonctionne correctement.
-## Vérifiez que les adresses MAC et product_uuid sont uniques pour chaque nœud {#verify-the-mac-address-and-product-uuid-are-unique-for-every-node}
+## Vérifiez que les adresses MAC et product_uuid sont uniques pour chaque nœud {#verify-mac-address}
* Vous pouvez obtenir l'adresse MAC des interfaces réseau en utilisant la commande `ip link` ou` ifconfig -a`
* Le product_uuid peut être vérifié en utilisant la commande `sudo cat/sys/class/dmi/id/product_uuid`
Il est très probable que les périphériques matériels aient des adresses uniques, bien que
-certaines machines virtuelles puissent avoir des valeurs identiques. Kubernetes utilise
-ces valeurs pour identifier de manière unique les nœuds du cluster.
+certaines machines virtuelles puissent avoir des valeurs identiques. Kubernetes utilise ces valeurs pour identifier de manière unique les nœuds du cluster.
Si ces valeurs ne sont pas uniques à chaque nœud, le processus d'installation
peut [échouer](https://github.com/kubernetes/kubeadm/issues/31).
## Vérifiez les cartes réseaux
-Si vous avez plusieurs cartes réseaux et que vos composants Kubernetes ne sont pas accessibles par la
-route par défaut, nous vous recommandons d’ajouter une ou plusieurs routes IP afin que les adresses
-de cluster Kubernetes soient acheminées via la carte approprié.
+Si vous avez plusieurs cartes réseaux et que vos composants Kubernetes ne sont pas accessibles par la route par défaut,
+nous vous recommandons d’ajouter une ou plusieurs routes IP afin que les adresses de cluster Kubernetes soient acheminées via la carte approprié.
+
+## Permettre à iptables de voir le trafic ponté
+
+Assurez-vous que le module `br_netfilter` est chargé. Cela peut être fait en exécutant `lsmod | grep br_netfilter`. Pour le charger explicitement, appelez `sudo modprobe br_netfilter`.
+
+Pour que les iptables de votre nœud Linux voient correctement le trafic ponté, vous devez vous assurer que `net.bridge.bridge-nf-call-iptables` est défini sur 1 dans votre configuration` sysctl`, par ex.
+
+```bash
+cat <}}.
-Les autres runtimes basés sur la CRI incluent:
+{{< tabs name="container_runtime" >}}
+{{% tab name="Linux nodes" %}}
-- [containerd](https://github.com/containerd/cri) (plugin CRI construit dans containerd)
-- [cri-o](https://cri-o.io/)
-- [frakti](https://github.com/kubernetes/frakti)
+Par défaut, Kubernetes utilise le
+{{< glossary_tooltip term_id="cri" text="Container Runtime Interface">}} (CRI)
+pour s'interfacer avec votre environnement d'exécution de conteneur choisi.
+
+Si vous ne spécifiez pas de runtime, kubeadm essaie automatiquement de détecter un
+Runtime de conteneur en parcourant une liste de sockets de domaine Unix bien connus.
+Le tableau suivant répertorie les environnements d'exécution des conteneurs et leurs chemins de socket associés:
+
+{{< table caption = "Les environnements d'exécution des conteneurs et leurs chemins de socket" >}}
+| Runtime | Chemin vers le socket de domaine Unix |
+|------------|---------------------------------------|
+| Docker | `/var/run/docker.sock` |
+| containerd | `/run/containerd/containerd.sock` |
+| CRI-O | `/var/run/crio/crio.sock` |
+{{< /table >}}
+
+
+Si Docker et containerd sont détectés, Docker est prioritaire. C'est
+nécessaire car Docker 18.09 est livré avec containerd et les deux sont détectables même si vous
+installé Docker.
+Si deux autres environnements d'exécution ou plus sont détectés, kubeadm se ferme avec une erreur.
+
+Le kubelet s'intègre à Docker via l'implémentation CRI intégrée de `dockershim`.
+
+Voir [runtimes de conteneur](/docs/setup/production-environment/container-runtimes/)
+pour plus d'informations.
+{{% /tab %}}
+{{% tab name="autres systèmes d'exploitation" %}}
+Par défaut, kubeadm utilise {{< glossary_tooltip term_id="docker" >}} comme environnement d'exécution du conteneur.
+Le kubelet s'intègre à Docker via l'implémentation CRI intégrée de `dockershim`.
+
+Voir [runtimes de conteneur](/docs/setup/production-environment/container-runtimes/)
+pour plus d'informations.
+{{% /tab %}}
+{{< /tabs >}}
-Reportez-vous aux [instructions d'installation de la CRI](/docs/setup/cri) pour plus d'informations.
## Installation de kubeadm, des kubelets et de kubectl
@@ -108,17 +156,17 @@ Vous installerez ces paquets sur toutes vos machines:
* `kubectl`: la ligne de commande utilisée pour parler à votre cluster.
kubeadm **n'installera pas** ni ne gèrera les `kubelet` ou` kubectl` pour vous.
-Vous devez vous assurer qu'ils correspondent à la version du control plane de Kubernetes que vous
- souhaitez que kubeadm installe pour vous. Si vous ne le faites pas, vous risquez qu'
- une erreur de version se produise, qui pourrait conduire à un comportement inattendu.
- Cependant, une version mineure entre les kubelets et le control plane est pris en charge,
- mais la version de la kubelet ne doit jamais dépasser la version de l'API server. Par exemple,
- les kubelets exécutant la version 1.7.0 devraient être entièrement compatibles avec un API
- server en 1.8.0, mais pas l'inverse.
+Vous devez vous assurer qu'ils correspondent à la version du control plane de Kubernetes que vous souhaitez que kubeadm installe pour vous. Si vous ne le faites pas, vous risquez qu'une
+erreur de version se produise, qui pourrait conduire à un comportement inattendu.
+Cependant, une version mineure entre les kubelets et le control plane est pris en charge,
+mais la version de la kubelet ne doit jamais dépasser la version de l'API server.
+Par exemple, les kubelets exécutant la version 1.7.0 devraient être entièrement compatiblesavec un API server en 1.8.0,
+mais pas l'inverse.
+
+For information about installing `kubectl`, see [Install and set up kubectl](/fr/docs/tasks/tools/install-kubectl/).
{{< warning >}}
-Ces instructions excluent tous les packages Kubernetes de toutes les mises à niveau du système
-d'exploitation.
+Ces instructions excluent tous les packages Kubernetes de toutes les mises à niveau du système d'exploitation.
C’est parce que kubeadm et Kubernetes ont besoin d'une
[attention particulière lors de la mise à niveau](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/).
{{ warning >}}
@@ -131,118 +179,131 @@ Pour plus d'informations sur les compatibilités de version, voir:
{{< tabs name="k8s_install" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
```bash
-apt-get update && apt-get install -y apt-transport-https curl
-curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
-cat </etc/apt/sources.list.d/kubernetes.list
+sudo apt-get update && sudo apt-get install -y apt-transport-https curl
+curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
+cat < /etc/yum.repos.d/kubernetes.repo
+cat < /etc/sysctl.d/k8s.conf
- net.bridge.bridge-nf-call-ip6tables = 1
- net.bridge.bridge-nf-call-iptables = 1
- EOF
- sysctl --system
- ```
- - Assurez-vous que le module `br_netfilter` est chargé avant cette étape. Cela peut être fait en exécutant `lsmod | grep br_netfilter`. Pour le charger explicitement, lancez `modprobe br_netfilter`.
+ - Vous pouvez laisser SELinux activé si vous savez comment le configurer, mais il peut nécessiter des paramètres qui ne sont pas pris en charge par kubeadm.
+
{{% /tab %}}
-{{% tab name="Container Linux" %}}
-Installez les plugins CNI (requis pour la plupart des réseaux de pod):
+{{% tab name="Fedora CoreOS ou Flatcar Container Linux" %}}
+Installez les plugins CNI (requis pour la plupart des réseaux de pods) :
```bash
-CNI_VERSION="v0.6.0"
-mkdir -p /opt/cni/bin
-curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-amd64-${CNI_VERSION}.tgz" | tar -C /opt/cni/bin -xz
+CNI_VERSION="v0.8.2"
+sudo mkdir -p /opt/cni/bin
+curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-amd64-${CNI_VERSION}.tgz" | sudo tar -C /opt/cni/bin -xz
```
-Installez crictl (obligatoire pour kubeadm / Kubelet Container Runtime Interface (CRI))
+Définissez le répertoire pour télécharger les fichiers de commande
+
+{{< note >}}
+La variable DOWNLOAD_DIR doit être définie sur un répertoire accessible en écriture.
+Si vous exécutez Flatcar Container Linux, définissez DOWNLOAD_DIR=/opt/bin
+{{< /note >}}
```bash
-CRICTL_VERSION="v1.11.1"
-mkdir -p /opt/bin
-curl -L "https://github.com/kubernetes-incubator/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" | tar -C /opt/bin -xz
+DOWNLOAD_DIR=/usr/local/bin
+sudo mkdir -p $DOWNLOAD_DIR
```
-Installez `kubeadm`, `kubelet`, `kubectl` et ajouter un service systemd `kubelet`:
+Installer crictl (requis pour Kubeadm / Kubelet Container Runtime Interface (CRI))
+
+```bash
+CRICTL_VERSION="v1.17.0"
+curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz
+```
+
+Installez `kubeadm`,` kubelet`, `kubectl` et ajoutez un service systemd` kubelet`:
```bash
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
+cd $DOWNLOAD_DIR
+sudo curl -L --remote-name-all https://storage.googleapis.com/kubernetes-release/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubelet,kubectl}
+sudo chmod +x {kubeadm,kubelet,kubectl}
-mkdir -p /opt/bin
-cd /opt/bin
-curl -L --remote-name-all https://storage.googleapis.com/kubernetes-release/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubelet,kubectl}
-chmod +x {kubeadm,kubelet,kubectl}
-
-curl -sSL "https://raw.githubusercontent.com/kubernetes/kubernetes/${RELEASE}/build/debs/kubelet.service" | sed "s:/usr/bin:/opt/bin:g" > /etc/systemd/system/kubelet.service
-mkdir -p /etc/systemd/system/kubelet.service.d
-curl -sSL "https://raw.githubusercontent.com/kubernetes/kubernetes/${RELEASE}/build/debs/10-kubeadm.conf" | sed "s:/usr/bin:/opt/bin:g" > /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
+RELEASE_VERSION="v0.4.0"
+curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/kubepkg/templates/latest/deb/kubelet/lib/systemd/system/kubelet.service" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service
+sudo mkdir -p /etc/systemd/system/kubelet.service.d
+curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/kubepkg/templates/latest/deb/kubeadm/10-kubeadm.conf" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
```
-Activez et démarrez la `kubelet`:
+Activez et démarrez `kubelet` :
```bash
-systemctl enable --now kubelet
+sudo systemctl enable --now kubelet
```
+
+{{< note >}}
+La distribution Linux Flatcar Container monte le répertoire `/usr` comme un système de fichiers en lecture seule.
+Avant de démarrer votre cluster, vous devez effectuer des étapes supplémentaires pour configurer un répertoire accessible en écriture.
+Consultez le [Guide de dépannage de Kubeadm](/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/#usr-mounted-read-only/) pour savoir comment configurer un répertoire accessible en écriture.
+{{< /note >}}
{{% /tab %}}
{{< /tabs >}}
-La kubelet redémarre maintenant toutes les secondes et quelques, car elle attend dans une boucle
-kubeadm, pour lui dire quoi faire.
+Le kubelet redémarre maintenant toutes les quelques secondes,
+car il attend dans une boucle de crash que kubeadm lui dise quoi faire.
## Configurer le driver de cgroup utilisé par la kubelet sur un nœud master
Lorsque vous utilisez Docker, kubeadm détecte automatiquement le pilote ( driver ) de cgroup pour la kubelet
-et le configure dans le fichier `/var/lib/kubelet/kubeadm-flags.env` lors de son éxecution.
+et le configure dans le fichier `/var/lib/kubelet/config.yaml` lors de son éxecution.
-Si vous utilisez un autre CRI, vous devez modifier le fichier `/etc/default/kubelet` avec votre
-valeur de `cgroup-driver` comme ceci:
+Si vous utilisez un autre CRI, vous devez passer votre valeur `cgroupDriver` avec `kubeadm init`, comme ceci :
-```bash
-KUBELET_EXTRA_ARGS=--cgroup-driver=
+```yaml
+apiVersion: kubelet.config.k8s.io/v1beta1
+kind: KubeletConfiguration
+cgroupDriver:
```
-Ce fichier sera utilisé par `kubeadm init` et` kubeadm join` pour sourcer des arguments supplémentaires définis par l'utilisateur pour la kubelet.
+Pour plus de détails, veuillez lire [Utilisation de kubeadm init avec un fichier de configuration](/docs/reference/setup-tools/kubeadm/kubeadm-init/#config-file).
Veuillez noter que vous devez **seulement** le faire si le driver de cgroupe de votre CRI
n'est pas `cgroupfs`, car c'est déjà la valeur par défaut dans la kubelet.
+{{< note >}}
+Depuis que le paramettre `--cgroup-driver` est obsolète par kubelet, si vous l'avez dans`/var/lib/kubelet/kubeadm-flags.env`
+ou `/etc/default/kubelet`(`/etc/sysconfig/kubelet` pour les RPM), veuillez le supprimer et utiliser à la place KubeletConfiguration
+(stocké dans`/var/lib/kubelet/config.yaml` par défaut).
+{{< /note >}}
+
Il est nécessaire de redémarrer la kubelet:
```bash
@@ -250,6 +311,10 @@ sudo systemctl daemon-reload
sudo systemctl restart kubelet
```
+La détection automatique du pilote cgroup pour d'autres runtimes de conteneur
+comme CRI-O et containerd est un travail en cours.
+
+
## Dépannage
Si vous rencontrez des difficultés avec kubeadm, veuillez consulter notre [documentation de dépannage](/fr/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/).
@@ -258,5 +323,3 @@ Si vous rencontrez des difficultés avec kubeadm, veuillez consulter notre [docu
* [Utiliser kubeadm pour créer un cluster](/fr/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
-
-