Apprenez à installer Kubernetes sur Ubuntu
Kubernetes est un outil d’orchestration de conteneurs open-source développé par Google. Dans cet article, vous apprendrez à configurer Kubernetes avec un nœud maître et un nœud travailleur. Assurez-vous que Docker est installé sur le nœud maître et le nœud travailleur
Détails de l’environnement et configuration
Pour la démonstration, j’ai 2 systèmes Ubuntu, l’un sera le nœud maître et l’autre le nœud travailleur. La configuration des deux serveurs est la suivante
- 2 CPUs
- Maître – 4 GB RAM / Travailleur – 2 GB RAM
- disque dur de 10 Go
Utilisez la commande hostnamectl
pour définir le nom d’hôte sur les deux systèmes
Sur le nœud maître
geekflare@geekflare:~$ sudo hostnamectl set-hostname kubernetes-master
Sur le nœud de travail
geekflare@geekflare:~$ sudo hostnamectl set-hostname kubernetes-worker
Voici donc les détails des deux nœuds
Nœud maître
- Nom d’hôte : kubernetes-master
- Adresse IP : 192.168.0.107
Nœud de travail
- Nom d’hôte : kubernetes-worker
- Adresse IP : 192.168.0.108
Modifiez le fichier hosts sur les deux systèmes
geekflare@geekflare:~$ sudo gedit /etc/hosts
192.168.0.107 kubernetes-master
192.168.0.109 kubernetes-worker
Avant de commencer l’installation de Kubernetes, exécutez la commande ci-dessous sur les nœuds maître et travailleur pour vérifier que Docker est opérationnel
geekflare@geekflare:~$ sudo service docker status
<x><x>[sudo]</x></x> password for geekflare :
● docker.service - Docker Application Container Engine
Loaded : chargé (/lib/systemd/system/docker.service ; enabled ; vendor preset : enabled)
Active : active (running) since Sat 2019-11-23 15:39:36 EST ; 3 weeks 0 days ago
Docs : https://docs.docker.com
Main PID : 8840 (dockerd)
Tasks : 17
Mémoire : 42.3M
CGroup : /system.slice/docker.service
└─8840 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Nov 23 15:39:35 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:35.091941184-05:00" level=warning msg="Votre noyau ne supporte pas cgrou
Nov 23 15:39:35 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:35.093149218-05:00" level=info msg="Loading containers : start."
Nov 23 15:39:35 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:35.957842188-05:00" level=info msg="Default bridge (docker0) is assigned
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.078753190-05:00" level=info msg="Loading containers : done."
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.664727326-05:00" level=info msg="Docker daemon" commit=481bc77 graphdr
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.817929464-05:00" level=error msg="cluster exited with error : error whi
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.820439024-05:00" level=error msg="swarm component could not be started
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.820821712-05:00" level=info msg="Daemon has completed initialization"
Nov 23 15:39:36 geekflare systemd[1]: Started Docker Application Container Engine.
Nov 23 15:39:36 geekflare dockerd<x><x><x><x><x><x><x><x>[8840]</x></x></x></x></x></x></x></x>: time="2019-11-23T15:39:36.883382952-05:00" level=info msg="API listen on /home/geekflare/docker.sock
lines 1-20/20 (END)
Installez Kubernetes
Exécutez toutes les commandes mentionnées dans cette section sur les nœuds maître et travailleur
Tout d’abord, ajoutez la clé du dépôt de paquets Kubernetes
geekflare@kubernetes-master:~$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
<x><x>[sudo]</x></x> password for geekflare :
OK
Exécutez la commande ci-dessous pour configurer le dépôt de paquets Kubernetes
geekflare@kubernetes-master:~$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease
Hit:2 http://ppa.launchpad.net/ansible/ansible/ubuntu cosmic InRelease
Get:3 http://apt.puppetlabs.com bionic InRelease [85.3 kB]
Hit:5 http://security.ubuntu.com/ubuntu cosmic-security InRelease
Hit:6 http://us.archive.ubuntu.com/ubuntu cosmic InRelease
Ign:7 http://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:8 http://us.archive.ubuntu.com/ubuntu cosmic-updates EnRelease
Hit:9 http://pkg.jenkins.io/debian-stable binary/ Release
Hit:10 http://us.archive.ubuntu.com/ubuntu cosmic-backports EnRelease
Get:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [8,993 B]
Get:11 http://apt.puppetlabs.com bionic/puppet6 amd64 Packages [36.1 kB]
Get:13 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [32.2 kB]
Fetched 163 kB in 3s (49.1 kB/s)
Reading package lists... Terminé
Avant de continuer, désactivez le swap sur les deux noeuds
geekflare@kubernetes-master:~$ sudo swapoff -a
Installez Kubeadm
Vous devez maintenant installer kubeadm
kubeadm est un outil de Kubernetes qui est utilisé pour ajouter des nœuds dans le cluster Kubernetes
geekflare@kubernetes-master:~$ sudo apt-get install kubeadm -y
Lecture des listes de paquets... Fait
Construction de l'arbre de dépendance
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
conntrack cri-tools ebtables ethtool kubectl kubelet kubernetes-cni socat
Les NOUVEAUX paquets suivants seront installés :
conntrack cri-tools ebtables ethtool kubeadm kubectl kubelet kubernetes-cni socat
0 mis à jour, 9 nouvellement installés, 0 à supprimer et 235 non mis à jour.
Besoin de récupérer 51,8 Mo d'archives.
Après cette opération, 273 Mo d'espace disque supplémentaire seront utilisés.
Get:3 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 conntrack amd64 1:1.4.5-1 [30.2 kB]
Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-00 [8,776 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 ebtables amd64 2.0.10.4-3.5ubuntu5 [79.8 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 ethtool amd64 1:4.16-1 [115 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu cosmic/main amd64 socat amd64 1.7.3.2-2ubuntu2 [342 kB]
Get:2 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.7.5-00 [6,473 kB]
Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.17.0-00 [19.2 MB]
Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.17.0-00 [8,742 kB]
Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.17.0-00 [8,059 kB]
Fetched 51.8 MB in 8s (6,419 kB/s)
Selecting previously unselected package conntrack.
(Reading database ... 318151 files and directories currently installed.)
Preparing to unpack .../0-conntrack_1:1.4.5-1_amd64.deb .....
Unpacking conntrack (1:1.4.5-1) ...
Selecting previously unselected package cri-tools.
Preparing to unpack .../1-cri-tools_1.13.0-00_amd64.deb ...
Unpacking cri-tools (1.13.0-00) ...
Selecting previously unselected package ebtables.
Préparation du déballage de .../2-ebtables_2.0.10.4-3.5ubuntu5_amd64.deb ...
Déballage de ebtables (2.0.10.4-3.5ubuntu5) ...
Sélection du paquet ethtool non sélectionné précédemment.
Préparation du déballage de .../3-ethtool_1:4.16-1_amd64.deb ...
Unpacking ethtool (1:4.16-1) ...
Selecting previously unselected package kubernetes-cni.
Preparing to unpack .../4-kubernetes-cni_0.7.5-00_amd64.deb ...
Unpacking kubernetes-cni (0.7.5-00) ...
Selecting previously unselected package socat.
Préparation du déballage de .../5-socat_1.7.3.2-2ubuntu2_amd64.deb ...
Déballage de socat (1.7.3.2-2ubuntu2) ...
Sélection du paquet kubelet non sélectionné précédemment.
Préparation du déballage de .../6-kubelet_1.17.0-00_amd64.deb ...
Déballage de kubelet (1.17.0-00) ...
Selecting previously unselected package kubectl.
Preparing to unpack .../7-kubectl_1.17.0-00_amd64.deb ...
Unpacking kubectl (1.17.0-00) ...
Selecting previously unselected package kubeadm.
Preparing to unpack .../8-kubeadm_1.17.0-00_amd64.deb ... Unpacking kubelet (1.17.0-00) ... Unpacking kubelet (1.17.0-00) ...../8-kubeadm_1.17.0-00_amd64.deb ...
Déballage de kubeadm (1.17.0-00) ...
Installation de conntrack (1:1.4.5-1) ...
Installation de kubernetes-cni (0.7.5-00) ...
Installation de cri-tools (1.13.0-00) ...
Installation de socat (1.7.3.2-2ubuntu2) .......
Traitement des déclencheurs pour systemd (239-7ubuntu10.12) ...
Mise en place de ebtables (2.0.10.4-3.5ubuntu5) ...
Création du lien symbolique /etc/systemd/system/multi-user.target.wants/ebtables.service → /lib/systemd/system/ebtables.service.
update-rc.d : warning : start and stop actions are no longer supported ; falling back to defaults
Installation de kubectl (1.17.0-00) ...
Processing triggers for man-db (2.8.4-2) ...
Installation de ethtool (1:4.16-1) ...
Installation de kubelet (1.
17.
0-00) ...
Création du lien symbolique /etc/systemd/system/multi-user.target.wants/kubelet.service → /lib/systemd/system/kubelet.service.
Mise en place de kubeadm (1.17.0-00) ...
Traitement des déclencheurs pour systemd (239-7ubuntu10.12) .
.
Vérifiez la version de kubeadm pour vous assurer qu’elle a été installée correctement
geekflare@kubernetes-master:~$ kubeadm version
kubeadm version : &version.Info{Major : "1", Minor : "17", GitVersion : "v1.17.0", GitCommit : "70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState : "clean", BuildDate : "2019-12-07T21:17:50Z", GoVersion : "go1.13.4", Compiler : "gc", Platform : "linux/amd64"}
Initialiser le cluster Kubernetes
Maintenant, exécutez la commande init pour initialiser le cluster Kubernetes uniquement sur le nœud maître. Utilisez --apiserver-adver-adtise-address
pour indiquer au nœud travailleur l’adresse IP du maître
geekflare@kubernetes-master:~$ sudo kubeadm init --apiserver-adtise-address=192.168.0.107 --pod-network-cidr=10.244.0.0/16
W1217 11:05:15.474854 10193 validation.go:28] Cannot validate kube-proxy config - no validator is available
W1217 11:05:15.474935 10193 validation.go:28] Cannot validate kubelet config - no validator is available
[init] Using Kubernetes version : v1.17.0
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> Running pre-flight checks
[WARNING IsDockerSystemdCheck] : detected "cgroupfs" as the Docker cgroup driver. Le pilote recommandé est "systemd". Veuillez suivre le guide à l'adresse https://kubernetes.io/docs/setup/cri/
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> Pulling images required for setting up a Kubernetes cluster
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> This may take a minute or two, depending on the speed of your internet connection
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> You can also perform this action in advance using 'kubeadm config images pull'
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Écriture de la configuration du kubelet dans le fichier "/var/lib/kubelet/config.yaml"
[kubelet-start] Démarrage du kubelet
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Utilisation du dossier certificateDir "/etc/kubernetes/pki"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "ca"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs</x></x></x></x></x></x></x></x></x></x></x></x></x></x> ] Génération du certificat et de la clé "apiserver"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Le certificat de service apiserver est signé pour les noms DNS [kubernetes-master kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] et les IP [10.96.0.1 192.168.0.107]
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "apiserver-kubelet-client"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "front-proxy-ca"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "front-proxy-client" et clé
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat "etcd/ca" et clé
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat "etcd/server" et clé
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> etcd/server serving cert est signé pour les noms DNS [kubernetes-master localhost] et les IP [192.168.0.107 127.0.0.1 ::1]
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "etcd/peer"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Le certificat de service etcd/peer est signé pour les noms DNS [kubernetes-master localhost] et les IP [192.168.0.107 127.0.0.1 ::1]
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "etcd/healthcheck-client"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération du certificat et de la clé "apiserver-etcd-client"
<x><x><x><x><x><x><x><x><x><x><x><x><x><x>[certs]</x></x></x></x></x></x></x></x></x></x></x></x></x></x> Génération de la clé "sa" et de la clé publique
<x><x><x><x>[kubeconfig]</x></x></x></x> Utilisation du dossier kubeconfig "/etc/kubernetes"
<x><x><x><x>[kubeconfig]</x></x></x></x> Écriture du fichier kubeconfig "admin.conf" fichier kubeconfig
<x><x><x><x>[kubeconfig]</x></x></x></x> Écriture du fichier kubeconfig "kubelet.conf"
<x><x><x><x>[kubeconfig]</x></x></x></x> Écriture du fichier kubeconfig "controller-manager.conf"
<x><x><x><x>[kubeconfig]</x></x></x></x> Écriture du fichier kubeconfig "scheduler.conf"
[control-plane] Utilisation du dossier manifest "/etc/kubernetes/manifests"
[control-plane] Création d'un manifeste Pod statique pour "kube-apiserver"
[control-plane] Création d'un manifeste Pod statique pour "kube-controller-manager"
W1217 11:05:25.584769 10193 manifests.go:214] le mode d'autorisation par défaut de kube-apiserver est "Node,RBAC" ; utilisation de "Node,RBAC"
[control-plane] Création d'un manifeste Pod statique pour "kube-scheduler"
W1217 11:05:25.587128 10193 manifests.go:214] le mode d'autorisation par défaut de kube-apiserver est "Node,RBAC" ; utilisation de "Node,RBAC"
[etcd] Création d'un manifeste Pod statique pour etcd local dans "/etc/kubernetes/manifests"
[wait-control-plane] Attendre que le kubelet démarre le plan de contrôle en tant que Pods statiques à partir du répertoire "/etc/kubernetes/manifests". Cela peut prendre jusqu'à 4m0s
[apiclient] Tous les composants du plan de contrôle sont sains après 35.010368 secondes
[upload-config] Stockage de la configuration utilisée dans le ConfigMap "kubeadm-config" dans l'espace de noms "kube-system"
[kubelet] Création d'un ConfigMap "kubelet-config-1.17" dans l'espace de noms "kube-system" avec la configuration pour les kubelets dans le cluster
[upload-certs] Sauter la phase. Veuillez consulter --upload-certs
[mark-control-plane] Marquer le nœud kubernetes-master comme control-plane en ajoutant l'étiquette "node-role.kubernetes.io/master=''"
[mark-control-plane] Marquer le nœud kubernetes-master comme control-plane en ajoutant les taints [node-role.kubernetes.io/master:NoSchedule]
[bootstrap-token] Utiliser le token : dmamk9.0nmo62mhom8961qw
[bootstrap-token] Configuration des jetons d'amorçage, cluster-info ConfigMap, Rôles RBAC
[bootstrap-token] configuration des règles RBAC pour permettre aux jetons Node Bootstrap de poster des CSR afin que les nœuds obtiennent des certificats à long terme
[bootstrap-token] configuration des règles RBAC pour permettre au contrôleur csrapprover d'approuver automatiquement les CSR d'un jeton Node Bootstrap
[bootstrap-token] configuration des règles RBAC pour permettre la rotation des certificats pour tous les certificats clients des nœuds dans le cluster
[bootstrap-token] Création du ConfigMap "cluster-info" dans l'espace de noms "kube-public"
[kubelet-finalize] Mise à jour de "/etc/kubernetes/kubelet.conf" pour pointer vers un certificat client kubelet rotatif et une clé
<x>[addons]</x> Application d'un addon essentiel : CoreDNS
<x>[addons]</x> Applied essential addon : kube-proxy
Votre plan de contrôle Kubernetes a été initialisé avec succès !
Pour commencer à utiliser votre cluster, vous devez exécuter ce qui suit en tant qu’utilisateur normal
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Ensuite, vous devez déployer un réseau de pods sur le cluster
Exécutez kubectl apply -f [podnetwork].yaml
avec l’une des options listées sur https://kubernetes.io/docs/concepts/cluster-administration/addons/
Ensuite, vous pouvez joindre n’importe quel nombre de nœuds de travail en exécutant ce qui suit sur chacun d’entre eux en tant que root
kubeadm join 192.168.0.107:6443 --token dmamk9.0nmo62mhom8961qw --discovery-token-ca-cert-hash sha256:2de92f42e84d20d8b19b1778785df5f8196e5eedaa5664ad911e8c23f58963
Comme indiqué dans la sortie ci-dessus, créez un répertoire .kube et copiez le fichier admin.conf dans le fichier de configuration du répertoire .kube
geekflare@kubernetes-master:~$ mkdir -p $HOME/.kube
geekflare@kubernetes-master:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
geekflare@kubernetes-master:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
À ce moment, lorsque vous exécutez la commande kubectl get nodes
, vous verrez que le statut du nœud maître est NotReady
geekflare@kubernetes-master:~$ sudo kubectl get nodes
NOM
STATUS ROLES AGE VERSION
kubernetes-master
NotReady master 2m34s v1.17.0
Déployer un réseau de pods – Flannel
Ensuite, vous devez déployer un réseau de pods sur le nœud maître. J’utilise le réseau de pods Flannel. Il est utilisé pour communiquer entre les nœuds du cluster Kubernetes
geekflare@kubernetes-master:~$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged créé
clusterrole.rbac.authorization.k8s.io/flannel créé
clusterrolebinding.rbac.authorization.k8s.io/flannel créé
serviceaccount/flannel créé
configmap/kube-flannel-cfg créé
daemonset.apps/kube-flannel-ds-amd64 créé
daemonset.apps/kube-flannel-ds-arm64 créé
daemonset.apps/kube-flannel-ds-arm créé
daemonset.apps/kube-flannel-ds-ppc64le créé
daemonset.apps/kube-flannel-ds-s390x créé
Vérifiez l’état du nœud maître, il doit être dans l’état Ready
geekflare@kubernetes-master:~$ sudo kubectl get nodes
NOM
STATUS ROLES AGE VERSION
kubernetes-master
Ready master 4m41s v1.17.0
Après quelques secondes, vérifiez si tous les pods sont opérationnels
geekflare@kubernetes-master :~$ kubectl get pods --all-namespaces
NAMESPACE NOM READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-rzw9d 1/1 Running 0 4m17s
kube-system coredns-6955765f44-xvgdp 1/1 Running 0 4m17s
kube-system etcd-kubernetes-master 1/1 Running 0 4m27s
kube-system kube-apiserver-kubernetes-master 1/1 Exécution 0 4m27s
kube-system
kube-controller-manager-kubernetes-master 1/1 Exécution 0 4m27s
kube-system
kube-flannel-ds-amd64-c2rf5 1/1 Exécution 0 81s
kube-system
kube-proxy-mvdd7 1/1 Exécution 0 4m17s
kube-system
kube-scheduler-kubernetes-master 1/1 Exécution 0 4m27s
Ajouter un nœud de travail au cluster
Maintenant que votre nœud maître est correctement configuré et fonctionne, il est temps d’ajouter le nœud de travail. Ici, vous devez exécuter la commande join sur le nœud ouvrier, que vous avez obtenu après avoir initialisé kubeadm
Exécutez la commande ci-dessous sur le nœud de travailleur pour rejoindre le nœud maître
geekflare@kubernetes-worker:~$ sudo kubeadm join 192.168.0.107:6443 --token dmamk9.0nmo62mhom8961qw --discovery-token-ca-cert-hash sha256:2de92f42e84d20d8b19b1778785df5f8196e5eedaa5664ad911e8c23f58963
<x><x>[sudo]</x></x> mot de passe pour geekflare :
W1217 11:08:01.066191 28968 join.go:346] <x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> WARNING : JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> Running pre-flight checks
[WARNING IsDockerSystemdCheck] : detected "cgroupfs" as the Docker cgroup driver. Le pilote recommandé est "systemd". Veuillez suivre le guide à l'adresse https://kubernetes.io/docs/setup/cri/
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> Reading configuration from the cluster...
<x><x><x><x><x><x><x>[preflight]</x></x></x></x></x></x></x> FYI : Vous pouvez consulter ce fichier de configuration avec 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.17" ConfigMap dans l'espace de noms kube-system
[kubelet-start] Écriture de la configuration du kubelet dans le fichier "/var/lib/kubelet/config.yaml"
[kubelet-start] Écriture du fichier d'environnement du kubelet avec les drapeaux dans le fichier "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Démarrage du kubelet
[kubelet-start] Attente de l'exécution du bootstrap TLS par le kubelet...
Ce nœud a rejoint le cluster :
*
Une demande de signature de certificat a été envoyée à apiserver et une réponse a été reçue.
*
Le Kubelet a été informé des nouveaux détails de la connexion sécurisée.
Exécutez 'kubectl get nodes' sur le plan de contrôle pour voir ce nœud rejoindre le cluster
Sur le nœud maître
Vous verrez que quelques pods supplémentaires sont en cours d’exécution après que le nœud de travail a rejoint le cluster
geekflare@kubernetes-master :~$ kubectl get pods --all-namespaces
NAMESPACE NOM READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-9c7jc 1/1 Running 0 5m3s
kube-system coredns-6955765f44-c9s9r 1/1 Running 0 5m3s
kube-system etcd-kubernetes-master 1/1 Running 0 5m12s
kube-system kube-apiserver-kubernetes-master 1/1 Running 0 5m12s
kube-system kube-controller-manager-kubernetes-master 1/1 Running 0 5m13s
kube-system kube-flannel-ds-amd64-lgr62 1/1 Running 0 3m35s
kube-system kube-flannel-ds-amd64-n6vwm 1/1 Running 0 27s
kube-system kube-proxy-9mqp6 1/1 Running 0 27s
kube-system
kube-proxy-kwkz2 1/1 Running 0 5m3s
kube-system
kube-scheduler-kubernetes-master 1/1 Running 0 5m13s
Maintenant, exécutez à nouveau la commande kubectl
sur le nœud maître pour vérifier si le nœud travailleur a rejoint le cluster et s’il fonctionne dans l’état Ready
geekflare@kubernetes-master:~$ kubectl get nodes
NAME
STATUS ROLES AGE VERSION
kubernetes-master
Ready master 5m27s v1.17.0
kubernetes-worker
Ready <none> 31s v1.17.0
Conclusion
Maintenant que la configuration de Kubernetes est prête, vous pouvez commencer à orchestrer des conteneurs sur le cluster Kubernetes. Si Kubernetes vous intéresse, vous pouvez suivre ce cours Udemy.
-
Avi est un passionné de technologie avec une expertise dans les technologies en vogue telles que DevOps, Cloud Computing, Big Data et bien d'autres. Il est passionné par l'apprentissage des technologies de pointe et le partage de ses connaissances avec d'autres... en savoir plus