Update install-kubeadm.md from EN version
This commit is contained in:
parent
5ef309d6ec
commit
ced18e88ff
|
@ -1,16 +1,17 @@
|
||||||
---
|
---
|
||||||
title: Installer kubeadm
|
title: Installer kubeadm
|
||||||
description: kubeadm installation Kubernetes
|
|
||||||
content_type: task
|
content_type: task
|
||||||
weight: 20
|
weight: 10
|
||||||
|
card:
|
||||||
|
name: setup
|
||||||
|
weight: 20
|
||||||
|
title: Installez l'outil de configuration kubeadm
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- overview -->
|
<!-- overview -->
|
||||||
|
|
||||||
<img src="https://raw.githubusercontent.com/cncf/artwork/master/projects/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">Cette page vous
|
<img src="https://raw.githubusercontent.com/kubernetes/kubeadm/master/logos/stacked/color/kubeadm-stacked-color.png" align="right" width="150px">Cette page vous apprend comment installer la boîte à outils `kubeadm`.
|
||||||
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/).
|
||||||
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:
|
* Une ou plusieurs machines exécutant:
|
||||||
- Ubuntu 16.04+
|
- Ubuntu 16.04+
|
||||||
- Debian 9
|
- Debian 9+
|
||||||
- CentOS 7
|
- CentOS 7
|
||||||
- RHEL 7
|
- Red Hat Enterprise Linux (RHEL) 7
|
||||||
- Fedora 25/26 (best-effort)
|
- Fedora 25+
|
||||||
- HypriotOS v1.0.1+
|
- 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 Go ou plus de RAM par machine (toute quantité inférieure laissera peu de place à vos applications)
|
||||||
* 2 processeurs ou plus
|
* 2 processeurs ou plus
|
||||||
* Connectivité réseau complète entre toutes les machines du cluster (réseau public ou privé)
|
* 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.
|
* 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.
|
* 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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- steps -->
|
<!-- steps -->
|
||||||
|
|
||||||
## 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`
|
* 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`
|
* 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
|
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
|
certaines machines virtuelles puissent avoir des valeurs identiques. Kubernetes utilise ces valeurs pour identifier de manière unique les nœuds du cluster.
|
||||||
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
|
Si ces valeurs ne sont pas uniques à chaque nœud, le processus d'installation
|
||||||
peut [échouer](https://github.com/kubernetes/kubeadm/issues/31).
|
peut [échouer](https://github.com/kubernetes/kubeadm/issues/31).
|
||||||
|
|
||||||
## Vérifiez les cartes réseaux
|
## Vérifiez les cartes réseaux
|
||||||
|
|
||||||
Si vous avez plusieurs cartes réseaux et que vos composants Kubernetes ne sont pas accessibles par la
|
Si vous avez plusieurs cartes réseaux et que vos composants Kubernetes ne sont pas accessibles par la route par défaut,
|
||||||
route par défaut, nous vous recommandons d’ajouter une ou plusieurs routes IP afin que les adresses
|
nous vous recommandons d’ajouter une ou plusieurs routes IP afin que les adresses de cluster Kubernetes soient acheminées via la carte approprié.
|
||||||
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 <<EOF | sudo tee /etc/sysctl.d/k8s.conf
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
EOF
|
||||||
|
sudo sysctl --system
|
||||||
|
```
|
||||||
|
|
||||||
|
Pour plus de détails, veuillez consulter la page [Configuration requise pour le plug-in réseau](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#network-plugin-requirements).
|
||||||
|
|
||||||
## Vérifiez les ports requis {#check-required-ports}
|
## Vérifiez les ports requis {#check-required-ports}
|
||||||
|
|
||||||
|
@ -80,21 +95,54 @@ les ports personnalisés que vous utilisez sont également ouverts.
|
||||||
Bien que les ports etcd soient inclus dans les nœuds masters, vous pouvez également héberger
|
Bien que les ports etcd soient inclus dans les nœuds masters, vous pouvez également héberger
|
||||||
votre propre cluster etcd en externe ou sur des ports personnalisés.
|
votre propre cluster etcd en externe ou sur des ports personnalisés.
|
||||||
|
|
||||||
Le plug-in de réseau de pod que vous utilisez (voir ci-dessous) peut également nécessiter certains ports à ouvrir. Étant donné que cela diffère d’un plugin à l’autre, veuillez vous reporter à la
|
Le plug-in de réseau de pod que vous utilisez (voir ci-dessous) peut également nécessiter certains ports à ouvrir.
|
||||||
|
Étant donné que cela diffère d’un plugin à l’autre, veuillez vous reporter à la
|
||||||
documentation des plugins sur le(s) port(s) requis(s).
|
documentation des plugins sur le(s) port(s) requis(s).
|
||||||
|
|
||||||
## Installing runtime
|
## Installation du runtime {#installing-runtime}
|
||||||
|
|
||||||
Depuis la version 1.6.0, Kubernetes a activé l'utilisation de la CRI, Container Runtime Interface, par défaut.
|
Pour exécuter des conteneurs dans des pods, Kubernetes utilise un
|
||||||
Le moteur de runtime de conteneur utilisé par défaut est Docker, activé par le biais de la l'implémentation CRI `dockershim` intégrée à l'interieur de la `kubelet`.
|
{{< glossary_tooltip term_id="container-runtime" text="container runtime" >}}.
|
||||||
|
|
||||||
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)
|
Par défaut, Kubernetes utilise le
|
||||||
- [cri-o](https://cri-o.io/)
|
{{< glossary_tooltip term_id="cri" text="Container Runtime Interface">}} (CRI)
|
||||||
- [frakti](https://github.com/kubernetes/frakti)
|
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 >}}
|
||||||
|
|
||||||
|
<br />
|
||||||
|
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
|
## 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.
|
* `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.
|
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
|
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
|
||||||
souhaitez que kubeadm installe pour vous. Si vous ne le faites pas, vous risquez qu'
|
erreur de version se produise, qui pourrait conduire à un comportement inattendu.
|
||||||
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,
|
||||||
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.
|
||||||
mais la version de la kubelet ne doit jamais dépasser la version de l'API server. Par exemple,
|
Par exemple, les kubelets exécutant la version 1.7.0 devraient être entièrement compatiblesavec un API server en 1.8.0,
|
||||||
les kubelets exécutant la version 1.7.0 devraient être entièrement compatibles avec un API
|
mais pas l'inverse.
|
||||||
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 >}}
|
{{< warning >}}
|
||||||
Ces instructions excluent tous les packages Kubernetes de toutes les mises à niveau du système
|
Ces instructions excluent tous les packages Kubernetes de toutes les mises à niveau du système d'exploitation.
|
||||||
d'exploitation.
|
|
||||||
C’est parce que kubeadm et Kubernetes ont besoin d'une
|
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/).
|
[attention particulière lors de la mise à niveau](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/).
|
||||||
{{</ warning >}}
|
{{</ warning >}}
|
||||||
|
@ -131,118 +179,131 @@ Pour plus d'informations sur les compatibilités de version, voir:
|
||||||
{{< tabs name="k8s_install" >}}
|
{{< tabs name="k8s_install" >}}
|
||||||
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
||||||
```bash
|
```bash
|
||||||
apt-get update && apt-get install -y apt-transport-https curl
|
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 | apt-key add -
|
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
|
||||||
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
|
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||||
deb https://apt.kubernetes.io/ kubernetes-xenial main
|
deb https://apt.kubernetes.io/ kubernetes-xenial main
|
||||||
EOF
|
EOF
|
||||||
apt-get update
|
sudo apt-get update
|
||||||
apt-get install -y kubelet kubeadm kubectl
|
sudo apt-get install -y kubelet kubeadm kubectl
|
||||||
apt-mark hold kubelet kubeadm kubectl
|
sudo apt-mark hold kubelet kubeadm kubectl
|
||||||
```
|
```
|
||||||
{{% /tab %}}
|
{{% /tab %}}
|
||||||
{{% tab name="CentOS, RHEL or Fedora" %}}
|
{{% tab name="CentOS, RHEL or Fedora" %}}
|
||||||
```bash
|
```bash
|
||||||
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
|
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
|
||||||
[kubernetes]
|
[kubernetes]
|
||||||
name=Kubernetes
|
name=Kubernetes
|
||||||
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
|
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
|
||||||
enabled=1
|
enabled=1
|
||||||
gpgcheck=1
|
gpgcheck=1
|
||||||
repo_gpgcheck=1
|
repo_gpgcheck=1
|
||||||
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
|
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
|
||||||
exclude=kube*
|
exclude=kubelet kubeadm kubectl
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Mettre SELinux en mode permissif (le désactiver efficacement)
|
# Mettre SELinux en mode permissif (le désactiver efficacement)
|
||||||
setenforce 0
|
sudo setenforce 0
|
||||||
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
|
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
|
||||||
|
|
||||||
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
|
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
|
||||||
|
|
||||||
systemctl enable --now kubelet
|
sudo systemctl enable --now kubelet
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:**
|
**Note:**
|
||||||
|
|
||||||
- Mettre SELinux en mode permissif en lançant `setenforce 0` et `sed ... `le désactive efficacement.
|
- Mettre SELinux en mode permissif en lançant `setenforce 0` et `sed ... `le désactive efficacement.
|
||||||
C'est nécessaire pour permettre aux conteneurs d'accéder au système de fichiers hôte, qui
|
C'est nécessaire pour permettre aux conteneurs d'accéder au système de fichiers hôte, qui est nécessaire par exemple pour les réseaux de pod.
|
||||||
est nécessaire par exemple pour les réseaux de pod.
|
|
||||||
Vous devez le faire jusqu'à ce que le support de SELinux soit amélioré dans la kubelet.
|
Vous devez le faire jusqu'à ce que le support de SELinux soit amélioré dans la kubelet.
|
||||||
- Certains utilisateurs de RHEL / CentOS 7 ont signalé des problèmes de routage incorrect
|
|
||||||
du trafic en raison du contournement d'iptables. Vous devez vous assurer que
|
|
||||||
`net.bridge.bridge-nf-call-iptables` est configuré à 1 dans votre config `sysctl` par exemple:
|
|
||||||
|
|
||||||
```bash
|
- 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.
|
||||||
cat <<EOF > /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`.
|
|
||||||
{{% /tab %}}
|
{{% /tab %}}
|
||||||
{{% tab name="Container Linux" %}}
|
{{% tab name="Fedora CoreOS ou Flatcar Container Linux" %}}
|
||||||
Installez les plugins CNI (requis pour la plupart des réseaux de pod):
|
Installez les plugins CNI (requis pour la plupart des réseaux de pods) :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
CNI_VERSION="v0.6.0"
|
CNI_VERSION="v0.8.2"
|
||||||
mkdir -p /opt/cni/bin
|
sudo 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
|
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
|
```bash
|
||||||
CRICTL_VERSION="v1.11.1"
|
DOWNLOAD_DIR=/usr/local/bin
|
||||||
mkdir -p /opt/bin
|
sudo mkdir -p $DOWNLOAD_DIR
|
||||||
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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
```bash
|
||||||
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
|
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
|
RELEASE_VERSION="v0.4.0"
|
||||||
cd /opt/bin
|
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
|
||||||
curl -L --remote-name-all https://storage.googleapis.com/kubernetes-release/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubelet,kubectl}
|
sudo mkdir -p /etc/systemd/system/kubelet.service.d
|
||||||
chmod +x {kubeadm,kubelet,kubectl}
|
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
|
||||||
|
|
||||||
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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Activez et démarrez la `kubelet`:
|
Activez et démarrez `kubelet` :
|
||||||
|
|
||||||
```bash
|
```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 %}}
|
{{% /tab %}}
|
||||||
{{< /tabs >}}
|
{{< /tabs >}}
|
||||||
|
|
||||||
|
|
||||||
La kubelet redémarre maintenant toutes les secondes et quelques, car elle attend dans une boucle
|
Le kubelet redémarre maintenant toutes les quelques secondes,
|
||||||
kubeadm, pour lui dire quoi faire.
|
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
|
## 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
|
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
|
Si vous utilisez un autre CRI, vous devez passer votre valeur `cgroupDriver` avec `kubeadm init`, comme ceci :
|
||||||
valeur de `cgroup-driver` comme ceci:
|
|
||||||
|
|
||||||
```bash
|
```yaml
|
||||||
KUBELET_EXTRA_ARGS=--cgroup-driver=<value>
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
|
kind: KubeletConfiguration
|
||||||
|
cgroupDriver: <value>
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
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.
|
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:
|
Il est nécessaire de redémarrer la kubelet:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -250,6 +311,10 @@ sudo systemctl daemon-reload
|
||||||
sudo systemctl restart kubelet
|
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
|
## 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/).
|
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/)
|
* [Utiliser kubeadm pour créer un cluster](/fr/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue