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! 😉