[LJP-Infos] MiniKube sur Centos Alma-Rocky Linux 8-9
Cette vidéo présente comment installer Minikube sur une machine basée sur RedHat.
Le document se base sur une installation "Docker sur Centos-Alma-Rocky 8-9" présenté dans une vidéo précédente.
Ici c'est de Minikubernetes qu'il s'agit, qui n'est pas vraiment un Kubernetes, mais une version allégée du système.
Son utilisation est plus en vue d'apprendre à utiliser Kubernetes ou de faire différents essais.
Il faut absolument être conscient que Minikubernetes n'est en aucun cas destiné à la mise en production.
La configuration du système n'est pas prévue pour une utilisation sur serveur ou cluster.
Le document de mise en place du prérequis d'installation Docker est disponible à cette adresse:
https://drive.google.com/file/d/1p2bgvL9Pz01xNGc56hG160cGAwFpCFKk/viewCe document présente comment installer Docker sur les distributions RedHat.
L'installation est faite en vue de mettre ensuite un orchestrateur (Kubernetes).
Dans le cas d'un simple Docker, elle pourrait être un peu plus simple mais reste très proche.
Dans ce cas, on prévoit pour y installer Kubertnettes par la suite.
Ce document est disponible ici: https://drive.google.com/file/d/1p2bgvL9Pz01xNGc56hG160cGAwFpCFKk/view?usp=share_link
LJP-Infos le 27/11/2022
== Prérequis pour docker et kubernetes
=============================================================================================
1. On vérifie les mises à jour (on rédémarre si besoin)
dnf -y upgrade
2. On désactive la sécurité SELinux renforcée. Ce n'est pas le sujet de ce document, on va donc se le permettre.
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
3. On active le masquage transparent et on facilite le VLAN étendu (VxLAN) pour la communication entre les pods du cluster Kubernetes.
modprobe br_netfilter
4. Comme le firewall est activité sur Redhat on va devoir activer le masquage transparent.
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
5. On va bridger les packets pour traverser iptables. ici on met l'ip V6 pour l'éventualité ou elle serait employée.
# Cat ou vi.. on ajoute les lignes dans "k8s.conf"
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
6. Puis on recharge les règles. (on voit si la règle est appliquée)
sysctl --system
7. Suivant le cas, il est conseillé de désactivier le swap pour Kubernettes. Sinon on devra l'indiquer dans la conf de kubeadm.
Dans le cas d'un simple Docker on pourra laisser le swap
# Désactiver le swap dans le fichier fstab
vi /etc/fstab
#... swap
# Si on utilise le système sans le redémarrer on peut désactiver le swap pour la session.
swapoff -a
== Installation de docker
== (dans le cas de kubernetles on l'installera sur tous les noeuds)
=============================================================
1. On ajoute le repos Docker pour les packets.
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
2. On installe container.io qui n'est pas fourni avec les paquets d'installation de Docker.
dnf install -y https://download.docker.com/linux/centos/9/x86_64/stable/Packages/containerd.io-1.6.12-3.1.el9.x86_64.rpm
# dnf install -y https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.6.12-3.1.el8.x86_64.rpm
# dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.12-3.1.el7.x86_64.rpm
2.1 On pourrait aussi faire: (dnf grouplist)
dnf groupinstall "Gestion des conteneurs"
3. On installe Docker (ici l'édition communautaire) depuis son repos.
dnf install docker-ce -y
4. On change Docker pour utiliser les drivers systemd cgroup (nécessaire pour kubectl plus tard).
4.1 Si le dossier /etc/docker n'existe pas on pourra avoir à le créer
mkdir -p /etc/docker
echo '{
"exec-opts": ["native.cgroupdriver=systemd"]
}' > /etc/docker/daemon.json
5. On démarre (ou on redémarre) et on active le service Docker.
systemctl enable docker --now
== On teste, on vérifie, on utilise docker
==============================================================================================
1 On vérifie la version de Docker.
docker version
2 On peut lister les images Docker (s'il on l'a déjà utilisé).
docker images
2.1 On lance un traditionnel "Hello World!"
docker run hello-world
3. Petit clean avant de finir avec Docker
yum clean all && history -c && history -w && init 0