GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Kubernetes est un système open source d'orchestration de conteneurs permettant d'automatiser le déploiement, la mise à l'échelle et la gestion d'applications informatiques.

Avant de commencer, assurez-vous que votre logiciel est à jour

sudo apt apdate
sudo apt upgrade

Installer

Installez les packages suivants sur toutes vos machines :

  • kubeadm :la commande pour amorcer le cluster.
  • kubelet  :le composant qui s'exécute sur toutes les machines de votre cluster et effectue des opérations telles que le démarrage des POD et des conteneurs.
  • kubectl  :l'utilitaire de ligne de commande pour parler à votre cluster.
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Confirmer les versions installées

kubectl version --client

kubeadm version

Sortie :

[email protected]:~$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
[email protected]:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:02:08Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

Désactivez l'échange.

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

Configurez sysctl.

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

Installer l'environnement d'exécution Containerd Container

sudo apt-get install -y containerd

Configurer le conteneur et démarrer le service

sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml

Activer le service pour démarrer au démarrage et démarrer

sudo systemctl enable --now containerd

# check status
sudo systemctl status containerd

Le service devrait être en cours d'exécution

containerd.service - containerd container runtime
     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-08-04 20:27:51 UTC; 7min ago
       Docs: https://containerd.io
   Main PID: 8159 (containerd)
      Tasks: 12
     Memory: 23.3M
     CGroup: /system.slice/containerd.service
             └─8159 /usr/bin/containerd

Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.784407330Z" level=info msg="loading plugin \"io.containerd.grpc>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785605392Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785639559Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.787585658Z" level=info msg="containerd successfully booted in 0>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.801146245Z" level=info msg="Start subscribing containerd event"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.804843058Z" level=info msg="Start recovering state"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805094249Z" level=info msg="Start event monitor"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805193238Z" level=info msg="Start snapshots syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805282655Z" level=info msg="Start cni network conf syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805369362Z" level=info msg="Start streaming server"

Initialiser le nœud maître

Activez et démarrez le service kubelet.

sudo systemctl enable --now kubelet

Extraction des images de conteneur requises :

sudo kubeadm config images pull

Définissez le nom DNS du point de terminaison du cluster ou ajoutez un enregistrement à /etc/hosts fichier.

192.168.20.7 k8s.citizix.local

Créer un cluster :

sudo kubeadm init \
  --pod-network-cidr=192.168.0.0/16 \
  --control-plane-endpoint=k8s.citizix.local

Lorsque cela est fait, les k8 devraient être opérationnels. Obtenez le fichier d'administration kubeconfig à partir de ce chemin /etc/kubernetes/admin.conf

mkdir ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/admin.conf
sudo chown ${USER}.${GROUP} ~/.kube/admin.conf
chmod 400 ~/.kube/admin.conf

Vérifier l'état du cluster :

kubectl cluster-info

Confirmer que le nœud maître est prêt :

kubectl get nodes -o wide

Des nœuds maîtres supplémentaires peuvent être ajoutés à l'aide de la commande dans la sortie d'installation :

kubeadm join k8s-cluster.computingforgeeks.com:6443 --token sr4l2l.2kvot0pfalh5o4ik \
    --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18 \
    --control-plane

Ajouter des noeuds worker

Une fois le plan de contrôle prêt, vous pouvez ajouter des nœuds de travail au cluster pour exécuter des charges de travail planifiées.

Si l'adresse du point de terminaison n'est pas dans le DNS, ajoutez un enregistrement à /etc/hosts.

$ sudo vim /etc/hosts
192.168.20.7 k8s.citizix.local

La commande join qui a été donnée est utilisée pour ajouter un noeud worker au cluster.

kubeadm join k8s-cluster.computingforgeeks.com:6443 \
  --token sr4l2l.2kvot0pfalh5o4ik \
  --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18

Exécutez la commande ci-dessous sur le plan de contrôle pour voir si le nœud a rejoint le cluster.

kubectl get nodes

Déployer l'application sur le cluster


Ubuntu
  1. Comment configurer un cluster MongoDB à l'aide de 3 nœuds avec Ubuntu 16 ?

  2. Comment configurer le cluster MariaDB Galera sur Ubuntu 20.04

  3. Configurer le cluster Kubernetes avec Rancher

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

  5. Comment installer VSFTP sur Ubuntu 20.04

Comment configurer un VPN sur Ubuntu

Comment installer Kubernetes sur Ubuntu 18.04 LTS

Comment installer Kubernetes sur Ubuntu 20.04 LTS

Comment configurer Rsyslog sur Ubuntu 20.04 LTS

Comment installer Kubernetes sur Ubuntu 18.04 LTS

Comment installer Kubernetes sur Ubuntu 18.04 Bionic Beaver