GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Kubernetes (k8s) sur Ubuntu 18.04 LTS

Kubernetes est un outil d'orchestration de conteneurs gratuit et open source. Il est utilisé pour déployer automatiquement des applications basées sur des conteneurs dans un environnement de cluster, à part cela, il est également utilisé pour gérer les conteneurs Docker sur les hôtes du cluster Kubernetes. Kubernetes est également connu sous le nom de K8s .

Dans cet article, je vais montrer comment installer et configurer deux nœuds Kubernetes (1.13) en utilisant kubeadm sur les systèmes Ubuntu 18.04 / 18.10. Voici les détails de la configuration de mon laboratoire :

J'utiliserai trois systèmes Ubuntu 18.04 LTS, où un système agira en tant que Kubernetes Master Node et les deux autres nœuds agiront comme noeud esclave e et rejoindra le cluster Kubernetes. Je suppose qu'un minimum de 18.04 LTS est installé sur ces trois systèmes.

  • Nœud maître Kubernetes – (Nom d'hôte :k8s-master , IP :192.168.1.70, OS :Minimal Ubuntu 18.04 LTS)
  • Nœud esclave Kubernetes 1 – (Nom d'hôte :k8s-worker-node1, IP :192.168.1.80, SE :Minimal Ubuntu 18.04 LTS)
  • Nœud esclave Kubernetes 2 – (Nom d'hôte :k8s-worker-node2, IP :192.168.1.90, système d'exploitation :Minimal Ubuntu 18.04 LTS)

Remarque : Le nœud esclave Kubernetes est également connu sous le nom de nœud de travail

Passons aux étapes d'installation et de configuration de k8s.

Étape : 1) Définir le nom d'hôte et mettre à jour le fichier d'hôtes

Connectez-vous au nœud maître et configurez son nom d'hôte à l'aide de la commande hostnamectl

[email protected] :~$ sudo hostnamectl set-hostname "k8s-master"[email protected] :~$ exec bash[email protected] :~$

Connectez-vous aux nœuds esclaves / travailleurs et configurez leur nom d'hôte respectivement à l'aide de la commande hostnamectl,

[email protected] :~$ sudo hostnamectl set-hostname k8s-worker-node1[email protected] :~$ exec bash[email protected] :~$[email protected] :~$ sudo hostnamectl set-hostname k8s- worker-node2[email protected] :~$ exec bash[email protected] :~$

Ajoutez les lignes suivantes dans le fichier /etc/hosts sur les trois systèmes,

192.168.1.70     k8s-master192.168.1.80     k8s-worker-node1192.168.1.90     k8s-worker-node2

Étape :2) Installer et démarrer le service Docker sur les nœuds maître et esclave

Exécutez la commande apt-get ci-dessous pour installer Docker sur le nœud maître,

[email protected] :~$ sudo apt-get install docker.io -y

Exécutez la commande apt-get ci-dessous pour installer docker sur les nœuds esclaves,

[email protected] :~$ sudo apt-get install docker.io -y[email protected] :~$ sudo apt-get install docker.io -y

Une fois les packages Docker installés sur les trois systèmes, démarrez et activez le service Docker à l'aide des commandes systemctl ci-dessous. Ces commandes doivent être exécutées sur les nœuds maître et esclave.

~$ sudo systemctl start docker~$ sudo systemctl enable dockerSynchronisation de l'état de docker.service avec le script de service SysV avec /lib/systemd/systemd-sysv-install.Exécution :/lib/systemd/systemd-sysv-install enable docker ~$

Utilisez la commande docker ci-dessous pour vérifier quelle version de Docker a été installée sur ces systèmes,

~$ docker --versionDocker version 18.06.1-ce, build e68fc7a~$

Étape 3) Configurer le référentiel de packages Kubernetes sur les nœuds maître et esclave

Remarque : Toutes les commandes de cette étape sont mandatées pour s'exécuter sur les nœuds maître et esclave

Commençons par installer certains packages requis, exécutez les commandes suivantes sur tous les nœuds, y compris le nœud maître

~$ sudo apt-get install apt-transport-https curl -y

Ajoutez maintenant la clé du référentiel de packages Kubernetes à l'aide de la commande suivante,

 :~$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addOK :~$

Configurez maintenant le référentiel Kubernetes à l'aide des commandes apt ci-dessous. À ce stade, le référentiel de packages Kubernetes Ubuntu 18.04 (bionic weaver) n'est pas disponible. Nous utiliserons donc le référentiel de packages Xenial Kubernetes.

 :~$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Étape :4) Désactivez Swap et installez Kubeadm sur tous les nœuds

Remarque : Toutes les commandes de cette étape sont mandatées pour s'exécuter sur les nœuds maître et esclave

Kubeadm est l'une des méthodes les plus couramment utilisées pour déployer un cluster kubernetes ou, en d'autres termes, nous pouvons dire qu'il est utilisé pour déployer plusieurs nœuds sur un cluster kubernetes.

Selon le site Web officiel de Kubernetes, il est recommandé de désactiver l'échange sur tous les nœuds, y compris le nœud maître.

Exécutez la commande suivante pour désactiver le swap temporaire,

 :~$ échange sudo -a

Pour désactiver l'échange permanent, commentez l'entrée du fichier d'échange ou de la partition d'échange dans le fichier /etc/fstab.

Installez maintenant le package Kubeadm sur tous les nœuds, y compris le maître.

 :~$ sudo apt-get install kubeadm -y

Une fois les packages kubeadm installés avec succès, vérifiez la version de kubeadm à l'aide de la commande ci-dessous.

 :~$ kubeadm versionkubeadm version :&version.Info{Major :"1", Minor :"13", GitVersion :"v1.13.2", GitCommit :"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState :"clean", BuildDate :"2019 -01-10T23:33:30Z", GoVersion :"go1.11.4", Compilateur :"gc", Plate-forme :"linux/amd64"} :~$

Étape :5) Initialiser et démarrer le cluster Kubernetes sur le nœud maître à l'aide de Kubeadm

Utilisez la commande kubeadm ci-dessous sur le nœud maître uniquement pour initialiser Kubernetes

[email protected] :~$ sudo kubeadm init --pod-network-cidr=172.168.10.0/24

Dans la commande ci-dessus, vous pouvez utiliser le même réseau de pods ou choisir votre propre réseau de pods adapté à votre environnement. Une fois la commande exécutée avec succès, nous obtiendrons la sortie quelque chose comme ci-dessous,

La sortie ci-dessus confirme que le nœud maître a été initialisé avec succès, donc pour démarrer le cluster, exécutez les commandes ci-dessous l'une après l'autre,

[email protected] :~$  mkdir -p $HOME/.kube[email protected] :~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[email protected] :~ $ sudo chown $(id -u):$(id -g) $HOME/.kube/config[email protected] :~$

Vérifiez l'état du nœud maître à l'aide de la commande suivante,

[email protected] :~$ kubectl get nodesNAME         STATUT     ROLES    AGE   VERSIONk8s-master   NotReady   master   18m   v1.13.2[email protected] :~$

Comme nous pouvons le voir dans la sortie de la commande ci-dessus, notre nœud maître n'est pas prêt car pour l'instant nous n'avons déployé aucun pod.

Déployons le réseau de pods, le réseau de pods est le réseau à travers lequel nos nœuds de cluster communiqueront entre eux. Nous déploierons Flannel en tant que réseau de modules, Flannel fournira le réseau superposé entre les nœuds du cluster.

Étape 6) Déployez Flannel en tant que réseau de pods à partir du nœud maître et vérifiez les espaces de noms des pods

Exécutez le kubectl suivant commande pour déployer le réseau de pods à partir du nœud maître

[email protected] :~$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

La sortie de la commande ci-dessus devrait être quelque chose comme ci-dessous

clusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.extensions/kube-flannel-ds-amd64 createddaemonset.extensions/ kube-flannel-ds-arm64 créédaemonset.extensions/kube-flannel-ds-arm créédaemonset.extensions/kube-flannel-ds-ppc64le créédaemonset.extensions/kube-flannel-ds-s390x créé[protégé par e-mail] :~$ 

Vérifiez maintenant l'état du nœud maître et les espaces de noms de pod à l'aide de la commande kubectl,

[email protected] :~$ sudo kubectl get nodesNAME         STATUS   ROLES    AGE   VERSIONk8s-master   Ready    master   78m   v1.13.2[email protected] :~$[email protected] :~$ sudo kubectl get pods --all-namespacesNAMESPACE     NAME Ready Status Restarts Agekube-System Coreredns-86C58D9DF4-PX4SJ 1/1 Exécution 0 79MKUBE-System Coreredns-86C58D9DF4-WZDZK 1/1 Exécution 0 79MKUBE-SYSTH ETCD-K8S-MAST -Master 1/1 Running 1 79mkube-system kube-controller-manager-k8s-master 1/1 exécutant 1 79mkube-system kube-flannel-dds -amd64-9tn8z 1/1 exécutant 0 14mkube-system kube-Proxy-Cjzz2 1 1/1 /1     En cours d'exécution   1          79mkube-system   kube-scheduler-k8s-master            1/1     En cours d'exécution   1          79m[email protected] :~$

Comme nous pouvons le voir dans la sortie ci-dessus, le statut de notre nœud maître est passé à "Prêt " et tous les espaces de noms du pod sont en cours d'exécution, cela confirme donc que notre nœud maître est en bonne santé et prêt à former un cluster.

Étape :7) Ajouter des nœuds esclaves ou de travail au cluster

Remarque : À l'étape 5, sortie de la commande kubeadm, nous avons obtenu une commande complète que nous devrons utiliser sur un nœud esclave ou travailleur pour rejoindre un cluster

Connectez-vous au premier nœud esclave (k8s-worker-node1) et exécutez la commande suivante pour rejoindre le cluster,

[email protected] :~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde348f6017c0e3f30 

La sortie de la commande ci-dessus devrait ressembler à ceci,

De même, exécutez la même commande kubeadm join sur le deuxième nœud de travail,

[email protected] :~$ sudo kubeadm join 192.168.1.70:6443 --token cwxswk.hbkuu4jua82o80d1 --discovery-token-ca-cert-hash sha256:ff1b0cfe5aec94f90a42bdb45d2b8bfde348f6017c0e3f30 

La sortie ci-dessus devrait être quelque chose comme ci-dessous,

Maintenant, allez au nœud maître et exécutez la commande ci-dessous pour vérifier l'état du nœud maître et esclave

 [e-mail protégé]:~ $ kubectl get nœudsName status rôles Âge versionk8s-master ready maître 100m v1.13.2k8s-worker-node1 ready  10m v1.13.2k8s-worker-node2 Ready  4m6s v1. 13.2[email protected] :~$

La commande ci-dessus confirme que nous avons ajouté avec succès nos deux nœuds de travail dans le cluster et que leur état est Prêt. Cela conclut que nous avons installé et configuré avec succès le cluster Kubernetes à deux nœuds sur les systèmes Ubuntu 18.04.

En savoir plus sur :Déployer un pod, un contrôleur de réplication et un service dans Kubernetes


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  5. Comment installer et configurer Fail2ban sur Ubuntu 20.04 LTS

Comment installer et configurer GitLab CE sur Ubuntu 18.04 LTS

Comment installer et configurer Kubernetes sur Ubuntu

Comment installer et configurer Docker-CE sur Ubuntu 18.04 LTS

Comment installer et configurer Odoo ERP sur Ubuntu 20.04 LTS

Comment installer et configurer MySQL dans Ubuntu 20.04 LTS

Comment installer et configurer le serveur DNS sur Ubuntu 16.04 LTS