GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer un cluster Kubernetes sur une instance AWS EC2 avec Ubuntu à l'aide de kubeadm

Dans cet article, nous verrons comment configurer un cluster Kubernetes avec 2 nœuds de travail et 1 nœud maître sur les serveurs Ubuntu 18.04 LTS. Nous utiliserons le "kubeadm " outil pour configurer le cluster. Kubeadm est un outil conçu pour fournir "kubeadm init " et "kubeadm rejoindre " pour créer des clusters Kubernetes. Avant de procéder à la création du cluster, comprenons brièvement quelques termes.

    1. Docker :
      Docker est une plate-forme ouverte pour le développement, la livraison et l'exécution d'applications. Docker vous permet de séparer vos applications de votre infrastructure afin que vous puissiez livrer rapidement des logiciels. Avec Docker, vous pouvez gérer votre infrastructure de la même manière que vous gérez vos applications.
    2. Image :
      Une image est un modèle en lecture seule contenant des instructions pour créer un conteneur Docker. Souvent, une image est basée sur une autre image, avec quelques personnalisations supplémentaires
    3. Conteneur :
      Un conteneur est une instance exécutable d'une image. Vous pouvez créer, démarrer, arrêter, déplacer ou supprimer un conteneur à l'aide de l'API ou de la CLI Docker. Vous pouvez connecter un conteneur à un ou plusieurs réseaux, lui associer un espace de stockage ou même créer une nouvelle image en fonction de son état actuel.
    4. Kubernetes :
      Kubernetes est un système open source d'orchestration de conteneurs permettant d'automatiser le déploiement, la mise à l'échelle et la gestion des applications.
    5. Nœuds :
      Un nœud représente une seule machine dans le cluster.
    6. Pods :
      A est un groupe de conteneurs déployés ensemble sur le même hôte. C'est l'unité d'exécution de base d'un Kubernetes application.
    7. Déploiements :
      Un déploiement exécute plusieurs répliques de votre application et remplace automatiquement toutes les instances qui échouent ou ne répondent plus. Il fournit des mises à jour déclaratives pour les pods et les ReplicaSets.
    8. Ensemble de réplicas :
      Il garantit le nombre d'instances dupliquées d'un pod en cours d'exécution. Il peut être considéré comme un remplacement du contrôleur de réplication.
  • Contrôleur de réplication :
    Il s'agit d'un superviseur pour les pods de longue durée. Il lancera un nombre spécifié de pods appelés répliques et s'assurera qu'ils continuent de fonctionner tout le temps.
  1. Service :
    Il s'agit d'une abstraction qui définit un ensemble logique de pods et une politique permettant d'y accéder.

Le serveur d'API, etcd, le gestionnaire de contrôleur et le planificateur sont les composants du maître et du docker, le service Kubelet et le service proxy Kubernetes sont les composants du nœud de travail. Nous n'aborderons pas ces composants dans ce document. Si vous souhaitez en savoir plus sur ces composants, vous pouvez visiter la page officielle de Kubernetes ici.

Pré-requis

  1. 3 serveurs Ubuntu 18.04 avec au moins 2 Go de RAM et 2 processeurs
  2. Un utilisateur système avec un accès "sudo" sur chaque serveur.

Ce que nous allons faire

  1. Configurer un cluster Kubernetes avec kubeadm

Configurer un cluster Kubernetes avec kubeadm

Ici,

Nous avons 3 serveurs Ubuntu 18.04 LTS.

Serveur 1=nœud1
Serveur 2=nœud2
Serveur 3=maître

Avant de procéder à l'installation proprement dite, changeons le nom d'hôte des serveurs.

Vous pouvez utiliser les commandes suivantes pour définir un nom d'hôte sur chaque serveur. Après avoir exécuté les commandes suivantes sur chaque serveur, reconnectez-vous aux serveurs afin que les serveurs obtiennent un nouveau nom d'hôte.

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

Suivez les étapes mentionnées ci-dessous pour afficher le cluster Kubernets fonctionnel.

Obtenir la clé Docker gpg (Exécutez la commande suivante sur tous les nœuds)  :

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

Ajoutez le référentiel Docker(Exécutez la commande suivante sur tous les nœuds ) :

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

Obtenez la clé gpg Kubernetes(Exécutez la commande suivante sur tous les nœuds ) :

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

Ajoutez le référentiel Kubernetes(Exécutez la commande suivante sur tous les nœuds ) :

chat <deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Mettez à jour vos packages(Exécutez la commande suivante sur tous les nœuds )  : 

sudo apt-get update

Installez Docker, kubelet, kubeadm et kubectl(Exécutez la commande suivante sur tous les nœuds ) :

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Conservez-les à la version actuelle(Exécutez la commande suivante sur tous les nœuds ) :

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Ajoutez la règle iptables à sysctl.conf (Exécutez la commande suivante sur tous les nœuds ) :

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Activez iptables immédiatement(Exécutez la commande suivante sur tous les nœuds :

sudo sysctl -p

Sur Maître  :

Initialiser le cluster (Exécuter la commande suivante uniquement sur le nœud maître) :

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

Configurer kubeconfig local(Exécutez la commande suivante uniquement sur le nœud maître ) :

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

Apply Flannel CNI network overlay(Exécutez la commande suivante uniquement sur le nœud maître ) :

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

Sur le nœud 1 et le nœud 2 :

Joignez les noeuds worker au cluster (Exécutez la commande suivante uniquement sur Node1 et Node2) :

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f75555

Vérifiez que les nœuds de travail ont bien rejoint le clusterExécutez la commande suivante sur le nœud maître ) :

kubectl get nodes

Conclusion :

Dans cet article, nous avons appris à mettre en place un cluster Kubernetes avec l'outil kubeadm. Nous avons vu avec quelle facilité un cluster peut être créé si les étapes ne sont pas manquées et qu'une installation correcte est effectuée.


Ubuntu
  1. Comment déployer l'équilibrage de charge Nginx sur le cluster Kubernetes sur Ubuntu 18.04 LTS

  2. Créer une instance EC2 sur AWS à l'aide de Terraform

  3. Configurer Nextcloud avec Redis à l'aide de Docker

  4. Configurer le cluster Kubernetes sur Ubuntu 20.04 à l'aide de kubeadm

  5. Utiliser Ubuntu avec une configuration à deux écrans ?

Comment configurer le cluster Apache Tomcat avec 3 nœuds sur Ubuntu

Comment installer Jenkins à l'aide d'un fichier .war sur l'instance AWS EC2 Ubuntu 20.04

Comment augmenter l'espace disque d'une instance AWS EC2 Ubuntu

Comment créer une instance Ubuntu EC2 sur AWS

Comment configurer Kubernetes 1.5 avec kubeadm sur CentOS

Installer Portainer avec Docker sur Ubuntu