Kubernetes également appelé k8 , est un outil gratuit et open source utilisé pour la gestion des conteneurs Docker. Il s'agit d'une plate-forme d'orchestration de conteneurs conçue pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Dans ce guide, vous apprendrez à installer et à configurer Kubernetes sur Ubuntu 18.04 LTS.
Prérequis
Avant de commencer, nous allons avoir un laboratoire de test comprenant 3 nœuds Ubuntu 18.04 comme indiqué ci-dessous
- Adresse IP du nœud maître Kubernetes :172.31.4.36 Nom d'hôte :k8-master
- Adresse IP du nœud esclave Kubernetes 1 :172.31.4.170 Nom d'hôte :k8-slave
- Adresse IP du nœud esclave Kubernetes 2 :172.31.10.30 Nom d'hôte :k8-slave2
De plus, assurez-vous que votre système répond aux exigences minimales suivantes.
- 2 processeurs
- 4 Go de RAM
- 8 Go d'espace libre sur le disque dur
Plongeons maintenant et commençons.
Étape 1. Configuration du nom d'hôte et mise à jour du fichier d'hôtes
Pour commencer, vous allez vous connecter au nœud maître via SSH et configurer le nom d'hôte comme indiqué
$ sudo hostnamectl set-hostname "k8-master"
Sur les nœuds esclaves, exécutez les commandes suivantes
$ sudo hostnamectl set-hostname k8-slave
$ sudo hostnamectl set-hostname k8-slave2
À l'aide de votre éditeur de texte préféré, apportez les modifications suivantes dans le fichier /etc/hosts
fichier pour chacun des 3 nœuds, c'est-à-dire respectivement k8-master, k8-slave et k9-slave2.
172.31.4.36 k8s-master
172.31.4.170 k8-slave
172.31.10.30 k8-slave2
Étape 2. Installation de Docker sur les nœuds maître et esclave
Pour installer docker sur le nœud maître, commencez par mettre à jour et mettre à niveau le système à l'aide de la commande ci-dessous
$ sudo apt-get update && sudo apt-get upgrade
Ensuite, installez Docker sur les nœuds maître et esclave à l'aide de la commande suivante
$ sudo apt-get install docker.io -y
Sortie
Une fois Docker installé avec succès, démarrez et activez le service Docker sur les nœuds maître et esclave à l'aide des commandes ci-dessous.
$ sudo systemctl start docker
$ sudo systemctl enable docker
Sortie
Pour vérifier que docker est en cours d'exécution, lancez la commande sur les nœuds maître et esclave
$ sudo systemctl status docker
Sortie
Pour afficher la version de Docker que vous venez d'installer, exécutez
$ docker --version
Sortie
Étape 3. Configuration du référentiel Kubernetes sur les nœuds maître et esclave
Avant de passer à l'étape suivante, nous devons installer quelques packages utiles. exécutez les commandes suivantes sur tous les nœuds
$ sudo apt-get install apt-transport-https curl -y
Sortie
Ensuite, ajoutez la clé du référentiel de packages Kubernetes en exécutant la commande ci-dessous
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Sortie
Ensuite, ajoutez le référentiel Kubernetes à l'aide de la commande ci-dessous.
$ sudo apt-add-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
Sortie
REMARQUE :
Le référentiel de packages Kubernetes pour Ubuntu 18.04 LTS n'est pas disponible. Néanmoins, nous avons utilisé le référentiel de packages Xenial Kubernetes.
Étape 4. Désactivation de l'échange et installation de kubeadm
Nous allons installer kubeadm package pour nous permettre de déployer plusieurs nœuds sur notre cluster.
Mais avant cela, le site officiel de Kubernetes recommande de désactiver la fonction d'échange de système d'exploitation. Pour ce faire, exécutez la commande suivante.
$ sudo swapoff -a
vous pouvez maintenant installer le kubeadm paquet comme suit.
$ sudo apt-get install kubeadm -y
Sortie
Une fois l'installation réussie de kubeadm package, vérifiez sa version à l'aide de la commande ci-dessous
$ kubeadm version
Sortie
Étape 5. Démarrage du cluster Kubernetes à l'aide de Kubeadm
Sur le nœud maître, connectez-vous et initialisez kubernetes à l'aide de kubeadm comme indiqué.
$ sudo kubeadm init --pod-network-cidr=172.31.4.0/20
Exemple de sortie
La sortie ci-dessus est une confirmation que nous avons lancé avec succès le nœud maître Kubernetes. Pour démarrer le cluster, exécutez les commandes incluses dans la surbrillance verte, l'une après l'autre
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Nous allons maintenant vérifier l'état du nœud maître en exécutant la commande ci-dessous.
$ kubectl get nodes
À ce stade, vous recevrez une invite indiquant que le nœud maître n'est pas prêt car nous n'avons pas encore déployé de pod. Dans l'étape suivante, nous allons déployer un réseau de pods qui est le réseau sur lequel nos nœuds de cluster pourront communiquer entre eux. Pour ce faire, nous allons déployer Flannel comme réseau de pods. Flannel va fournir un réseau superposé entre les nœuds du cluster
Étape 6. Déploiement de Flannel en tant que réseau de pods
Pour déployer le réseau de pods, exécutez la commande suivante dans le nœud maître
$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Exemple de sortie
À ce stade, nous pouvons maintenant vérifier l'état du nœud maître à l'aide de kubectl
commande
$ sudo kubectl get nodes
Sortie
Comme vu ci-dessus, le statut du nœud maître est passé à "Prêt". De plus, vérifiez les espaces de noms de pod comme indiqué.
$ sudo kubectl get pods --all-namespaces
Sortie
La sortie ci-dessus montre que tous les espaces de noms de pod sont en cours d'exécution. la dernière étape consistera à joindre les nœuds esclaves au cluster.
Étape 7. Ajouter un nœud esclave au cluster
Dans cette étape, nous allons nous connecter aux deux nœuds esclaves (k8-slave et k8-slave2) et exécuter la commande suivante qui apparaît en surbrillance rouge à Étape 5
$ kubeadm join 172.31.4.36:6443 --token w8kbni.wiyevyov0yxwwtdj --discovery-token-ca-cert-hash sha256:29adc042c538f59f0c7339ebad2126d5836de06ffe0ae22c54ce0aef2eb4cb76
Exemple de sortie
Dirigez-vous maintenant vers l'esclave maître et vérifiez l'état des nœuds maître et esclave à l'aide de kubectl
commande
$ kubectl get nodes
Sortie
La sortie ci-dessus confirme que nous avons ajouté avec succès nos deux nœuds esclaves au cluster et que leur statut, ainsi que le nœud maître, est prêt !
Formidable! Nous avons terminé notre tutoriel sur l'installation et la configuration de Kubernetes sur Ubuntu 18.04 LTS. Vos commentaires sont les bienvenus.