Tutoriel | Installez facilement un cluster Kubernetes sous Debian ou Centos

Article publié le 20 Août 2018

Aujourd’hui un petit tutoriel sur l’installation d’un Cluster Kubernetes. La procédure ci-dessous vous indiquera la méthode la plus simple pour installer Kubernetes.

Pour exemple et également pour tester ce tutoriel, mon cluster sera composé d’un master et de deux workers.

 

1)  Installation sous Debian/Ubuntu

– Installez la version de Docker supporté par Kubernetes (sur chaque node):

apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add –
add-apt-repository « deb https://download.docker.com/linux/$(. /etc/os-release; echo « $ID ») $(lsb_release -cs) stable »
apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk ‘{print $3}’)

 

– Activez le démarrage automatique de Docker (sur chaque nodes) :

systemctl enable docker

– Paramétrez Docker afin qu’il utilise exclusivement systemd, pour cela éditez le fichier /etc/docker/daemon.json et ajoutez  le contenu suivant avant de redémarrer le service Docker (sur chaque nodes):

{

« exec-opts »: [« native.cgroupdriver=systemd »]

}

– Ajoutez les repo Kubernetes (sur chaque nodes):

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update

– Désactivez le swap (sur chaque nodes)

swapoff -a

 N’oubliez pas de commenter la ligne dans le fstab

– Installez les outils Kubernetes (sur chaque nodes)

apt-get install kubelet kubeadm kubectl

– Initialisez le cluster (sur le master  uniquement)

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

Faites ce qui est indiqué à l’écran et gardez dans un coin la commande « kubeadm join » qui nous permettra plus tard de rattacher des workers à notre Cluster.

– Installez les composants network Kubernetes (sur le master  uniquement)

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

– Vérifiez que l’installation se soit bien passé

kubectl get pods –all-namespaces

– Sur chaque worker lancez la commande « kubeadm join » que vous avez gardé dans un coin

– Depuis le master lancez la commande suivante afin de vérifier que vos nodes ont bien rejoins le cluster

kubectl get nodes

2) Installation sous Centos/RedHat

– Appliquez les dernière mises à jour de l’OS (sur chaque nodes):

yum update -y

– Désactiver SeLinux durant l’installation (sur chaque nodes):

setenforce 0

– Installez Docker

yum install -y docker

– Activez le démarrage automatique de Docker (sur chaque nodes) :

systemctl enable docker

– Ajoutez le repository Kubernetes (sur chaque nodes):

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

– Installez Kubernetes (sur chaque nodes):

yum install -y kubelet kubeadm kubectl –disableexcludes=kubernetes

– Ajoutez les paramètres sysctl suivant (sur chaque nodes):

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system

– Désactivez le swap (sur chaque nodes)

swapoff -a

 N’oubliez pas de commenter la ligne dans le fstab

– Initialisez le cluster Kubernetes(sur le master  uniquement) :

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

Faites ce qui est indiqué à l’écran et gardez dans un coin la commande « kubeadm join » qui nous permettra plus tard de rattacher des workers à notre Cluster.

– Installez les composants network Kubernetes (sur le master  uniquement)

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

– Vérifiez que l’installation se soit bien passé

kubectl get pods –all-namespaces

– Sur chaque worker lancez la commande « kubeadm join » que vous avez gardé dans un coin

– Depuis le master lancez la commande suivante afin de vérifier que vos nodes ont bien rejoins le cluster

kubectl get nodes

 

Enjoy! 😉




Tuto | Installer et configurer OpenNebula sous Debian

Article publié le 6 Juin 2017

Article mis à jour le 13 Janvier 2018

 

Cela fait un petit moment que je m’intéresse aux technologies Cloud (AWS, OpenStack, etc…) et OpenNebula a particulièrement attiré mon attention par sa simplicité d’installation.

C’est pourquoi, je vous propose un petit tutoriel d’installation sur OpenNebula sous Debian.

Pour suivre ce tutoriel, vous aurez besoin d’au minimum deux VMs: Une VM pour l’interface de gestion et d’une ou plusieurs VMs pour les hôtes (hyperviseurs).

 

1) Installation de l’interface de gestion

1.1) Installation des paquets

On installe les dépôts:

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add –

echo « deb http://downloads.opennebula.org/repo/5.2/Debian/8 stable opennebula » > /etc/apt/sources.list.d/opennebula.list

On installe les paquets:

apt-get update & apt-get install opennebula*

A adapter selon la version de votre Debian (à l’heure ou cet article a été écrit, la 9 n’est pas encore sortie en version stable). De plus la version de opennebula (dernière version en date de cet article: 5.4) est à adapter dans le lien (deb http://downloads.opennebula.org/repo/<version opennebula>/Debian/8 stable opennebula)

 

On installe des bibliothèques Gem supplémentaires

/usr/share/one/install_gems

Activation d’openNebula:

systemctl enable opennebula
systemctl enable opennebula-sunstone

1.2) Installation du stockage partagé

On installe le serveur NFS:

apt-get install nfs-common nfs-kernel-server

Dans le fichier /etc/exports ajoutez la ligne suivante:

/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)

Activez  nfs:

systemctl enable nfs-kernel-server

Démarrez nfs:

systemctl start nfs-kernel-server

1.3 Installation de la base de données

La base de données par défaut est SQLITE. Inutile de vous préciser que rester sur ce type de base de données n’est pas une solution pérenne. Nous allons donc partir sur une installation de MySQL.

Installez les paquets:

apt-get install mariadb-server

Activez Mysql:

systemctl enable mysql

Démarrez Mysql:

systemctl start mysql

Créons maintenant la base ainsi que le user MySQL:

# mysql
> CREATE DATABASE opennebula;
> GRANT ALL ON opennebula.* TO oneadmin@localhost IDENTIFIED BY ‘onepassword’;

Le mot de passe est à changer bien entendu 😉

Procédez à la configuration d’openNebula pour que celui-ci se connecte à votre base de données MySQL. Pour cela éditez le fichier /etc/one/oned.conf et commencer par commenter la ligne suivante :

DB = [ backend = « sqlite » ]

Ensuite, rajoutez les lignes suivantes :

DB = [ backend = « mysql »,
server  = « localhost »,
port    = 0,
user    = « oneadmin »,
passwd  = « onepassword »,
db_name = « opennebula » ]

Démarrez les services :

systemctl start opennebula
systemctl start opennebula-sunstone

2) Installation de l’hyperviseur

Sur votre deuxième VM, installez les dépôts:

wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add –

echo « deb http://downloads.opennebula.org/repo/5.2/Debian/8 stable opennebula » > /etc/apt/sources.list.d/opennebula.list

On installe ensuite le paquet:

apt-get update & apt-get install opennebula-node

On active libvirtd et on le démarre:

systemctl enable libvirtd
systemctl start libvirtd

Rajoutez dans votre fichier /etc/fstab la ligne suivante :

<ip de votre serveur de gestion>:/var/lib/one/ /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192 0 0

Montez le volume NFS:

mount -a

 

Maintenant que votre hyperviseur est installé nous allons le rajoutez dans le cluster opennebula depuis l’interface de gestion.

Pour cela connectez vous à l’interface Web via l’URL: http://<ip ou nom de votre machine>:9869.

Une page ressemblante à la capture d’écran ci-dessous devrait s’afficher:

Récupérez vos identifiants en affichant le contenu du fichier  /var/lib/one/.one/one_auth et identifiez-vous.

Une fois connecté, le dashboard général d’openNebula s’affiche:

 

Cliquez sur le menu « infrastructure » puis sur « Hosts »:

Cliquez sur le bouton ajoutez:

Puis renseignez le hostname ou l’ip de votre hyperviseur:

Votre installation d’OpenNebula est maintenant terminée!

Vous pouvez commencer à créer des templates et provisionner des Vms

Merci à Séb pour sa contribution pour la rédaction de cet article 😉