GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Kubernetes sur un serveur Bare Metal

Présentation

Le déploiement de conteneurs et l'orchestration Kubernetes sont extrêmement puissants lorsqu'ils sont déployés dans des environnements virtuels. La flexibilité et les capacités d'évolutivité offrent des opportunités infinies.

Pourquoi alors ajouter un serveur physique à locataire unique au cluster ? Les machines virtuelles sont connues pour créer des problèmes de latence pour des applications spécifiques. L'accès direct au matériel peut être une solution à ce problème, notamment avec la possibilité d'ajouter des accélérateurs matériels (GPU).

Les développements de l'apprentissage automatique et de l'IA orientent les organisations vers la mise en œuvre de clusters Kubernetes sur les VM et les serveurs Bare Metal.

Ce didacticiel vous montre comment mettre en œuvre les concepts abordés dans notre article précédent sur l'architecture Kubernetes.

Suivez les étapes décrites et découvrez comment installer Kubernetes sur un serveur Bare Metal.

Prérequis

  • Plusieurs serveurs Linux
  • Un compte utilisateur sur chaque système avec sudo ou privilèges root
  • Accès à la ligne de commande/fenêtre du terminal
  • Leappartement gestionnaire de paquets (Debian 10)

Préparer le serveur Bare Metal pour l'installation de Kubernetes

Kubernetes est un outil d'orchestration hautement automatisé. Il communique entre les nœuds et prend des mesures pour répliquer les pods chaque fois que l'état actuel des clusters ne correspond pas à l'état souhaité.

Pour faciliter ce processus, la communication entre les nœuds doit être sans entrave. Chaque nœud doit être configuré afin que les paramètres de sécurité standard n'interfèrent pas avec les lignes de communication.

Les paramètres diffèrent en fonction de la distribution et doivent être appliqués à chaque nœud d'un cluster. Dans cet exemple, l'installation est effectuée à l'aide de Debian 10.

Si vous utilisez une autre distribution, consultez notre didacticiel sur l'installation de Kubernetes sur un système CentOS 7 ou Ubuntu 18.04.

Étape 1 :Désactiver SWAP

Les pods Kubernetes sont conçus pour utiliser pleinement les limites du processeur. Le kubelet n'est pas conçu pour utiliser la mémoire SWAP et doit donc être désactivé. Entrez la commande suivante dans la fenêtre de votre terminal pour désactiver SWAP :

sudo swapoff -a

Étape 2 :Résoudre nftables Problème de compatibilité avec le backend

Le kubeadm actuel les packages ne sont pas compatibles avec les nftables arrière-plan. Pour éviter tout problème, basculez les outils iptables vers leur mode hérité :

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy

Étape 3 :Configurer le pare-feu

Les paramètres du pare-feu doivent être modifiés pour permettre la communication entre les pods au sein d'un cluster. Dans cet exemple, nous avons modifié les ports en utilisant ufw .

Pour ce faire, saisissez les commandes suivantes sur votre nœud maître :

sudo ufw allow 6443/tcp
sudo ufw allow 2379/tcp
sudo ufw allow 2380/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 10251/tcp
sudo ufw allow 10252/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

De plus, ces ports doivent être ouverts sur chaque nœud de travail :

sudo ufw allow 10251/tcp
sudo ufw allow 10255/tcp
sudo ufw reload

Étape 4 :Installer Docker

Un logiciel d'exécution de conteneur gère les images de conteneur sur les nœuds. Sans cela, Kubernetes ne peut pas accéder aux bibliothèques d'images et exécuter les applications dans les conteneurs. Pour cela, nous allons installer Docker.
Installez Docker sur tous les nœuds maîtres et travailleurs participant à votre cluster. Cela signifie que vous devez répéter ce processus sur chaque nœud à tour de rôle.

Accédez à votre interface de ligne de commande. La commande suivante met à jour les référentiels Debian et installe les packages. Il permet également à votre système d'utiliser des référentiels via un protocole sécurisé, HTTPS :

sudo apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common

Maintenant, récupérez et ajoutez la clé GPG officielle de Docker en tapant :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

La sortie confirme que l'action a été effectuée.

Nous avons ajouté la clé GPG et pouvons maintenant ajouter le référentiel apt de Docker :

sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ 
stable"

N'oubliez pas de mettre à jour vos dépôts :

sudo apt-get update

Le système est maintenant prêt pour l'installation de Docker CE.

Installez Docker à l'aide de la commande suivante :

sudo apt-get install docker-ce

Vérifiez si le service est actif avec :

docker -v

La ligne de commande confirme que le service est actif.

Vérifiez si le service fonctionne correctement en faisant appel à une image :

sudo docker run hello-world

Vous avez maintenant reçu la confirmation que Docker fonctionne correctement.

Étape 5 :Modifier le pilote du groupe de contrôle

Assurez-vous que docker-ce et Kubernetes utilisent le même "cgroup".

Vérifiez le groupe de contrôle docker actuel :

sudo docker info | grep -i cgroup

Le résultat ci-dessous confirme que Docker utilise "cgroupfs" comme pilote de groupe de contrôle.

Changez le pilote de cgroup Kubernetes en "cgroupfs" si nécessaire en tapant :

cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

Rechargez le système systemd et redémarrez le service kubelet.

systemctl daemon-reload
systemctl restart kubelet

Nous avons sélectionné et installé un logiciel d'exécution de conteneur, dans ce cas, Docker. La section suivante explique comment installer Kubernetes et les outils dont nous avons besoin pour gérer Kubernetes.

Installer Kubernetes sur un serveur Bare Metal

Étape 1 :Téléchargez les référentiels Kubernetes

Téléchargez Kubernetes et ajoutez une clé de signature pour vous assurer que le logiciel est authentique :

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add –

Nous recevons la confirmation que le colis est disponible.

Kubernetes n'est pas dans les référentiels par défaut. Pour les ajouter, saisissez la commande suivante sur chaque nœud du cluster :

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

Étape 2 :Installez kubelet, kubeadm et kubectl

Pour pouvoir administrer Kubernetes, nous devons installer kubectl , un utilitaire utilisé pour envoyer des commandes au cluster. Nous devons également installer kubelet car il est essentiel pour déployer et contrôler les pods au sein d'un cluster. Kubeadm est le programme qui initialise Kubernetes lors du démarrage. Pour installer ces 3 outils indispensables, saisissez les commandes suivantes :

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Le kubelet redémarre maintenant toutes les quelques secondes, car il attend dans une boucle de blocage pour kubeadm pour lui dire quoi faire.

Étape 3 :Initialiser Kubernetes sur le nœud maître

Saisissez la commande suivante sur le nœud maître :

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Cela peut prendre plusieurs minutes jusqu'à ce que la sortie confirme que le cluster est actif :

Une fois que le système a terminé l'action, il affiche une jointure kubeadm message. Notez toute l'entrée. Vous en aurez besoin pour joindre les noeuds worker au cluster.

Étape 4 :Créer un répertoire pour le cluster Kubernetes

Faites fonctionner kubectl pour votre utilisateur non root, en exécutant ces commandes, qui font également partie de kubeadm init sortie :

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

Étape 5 :module complémentaire de réseau de pods (flanelle)

Installez un module complémentaire de réseau de pods pour que vos pods puissent communiquer efficacement. Flannel est un réseau superposé compatible avec Kubernetes. Pour installer Flannel tapez :

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Étape 6 :Joindre le nœud de travail au cluster

Saisissez le kubeadm join commande sur chaque noeud worker. La clé que vous avez notée à l'étape 3 , connecte chaque nœud au cluster :

kubeadm join 10.0.2.15:6443 –token sv3ckz.fk2yooy92ieins26  \
--discovery-token-ca-cert-hash sha256:39d4a6ecc4a526b4aaff2594b469d43691fb7468688668f55d2a37690codo7fe

Attendez quelques minutes et vérifiez l'état des nœuds.

Basculez vers le serveur maître et saisissez :

kubectl get nodes

Le système affiche alors les noeuds worker que vous avez joints au cluster.


Ubuntu
  1. Comment installer le serveur RabbitMQ sur Ubuntu 18.04 et 16.04 LTS

  2. Comment installer le serveur Gitlab sur Ubuntu 18.04 et 16.04 LTS

  3. Comment installer MsSQL Server 2019 sur Ubuntu 20.04

  4. Comment installer Ansible sur Ubuntu Server 21.04

  5. Comment installer Pdftk sur mon serveur ?

Comment installer CouchPotato sur Ubuntu Server/Desktop

Comment installer Kubernetes sur CentOS 8

Comment installer Kubernetes sur Ubuntu 18.04 LTS

Comment installer le serveur LAMP sur Linux Mint 19

Comment installer Kubernetes sur Ubuntu 20.04 LTS

Comment installer le serveur Minecraft sur Ubuntu 20.04