Skip to main content

Getting and Installing Kubernetes on Ubuntu VMs

Do this on all nodes

Plan IP des VMs

  • c1-master1 192.168.4.100
  • c1-node1 192.168.4.101
  • c1-node2 192.168.4.102

Installation de la VM

Pour chaque VM:

Changer le nom de la machine

sudo nano /etc/hostname

Ajouter les adresees IP de chaque machine dans la Node

sudo nano /etc/hosts

Exemple pour le c1-master1

127.0.0.1 localhost
127.0.0.1 c1-master1

# Nodes Kubernetes
192.168.4.101 c1-node1
192.168.4.102 c1-node2

Si la VM à été clonnée

Changer l'IP statique de la VM

sudo nano /etc/netplan/00-installer-config.yaml 

Exemple pour le c1-master1

# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
addresses:
- 192.168.4.100/24
gateway4: 192.168.4.1
nameservers:
addresses:
- 8.8.8.8
version: 2

Reboot de la VM

# Reboot automatique
sudo reboot
# Ou arrêt pour démarrage
sudo poweroff

Installation de Kubernetes

Désactivation du swap

sudo swapoff -a

Et modification du fichier fstab pour empecher de monter le swap lors du boot de la machine

vi /etc/fstab

Ligne à commenter

# /swap.img     none    swap    sw      0       0

Reboot de la VM

sudo reboot

Add Google's gpg key for the apt repository

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

add gpg key

Add Kubernetes repository to our local repositories lists

sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF'

add sources

Refresh the package list

sudo apt-get update

Pour voir les versions disponibles d'un package en particulier

apt-cache policy kubelet | head -n 20 
apt-cache policy docker.io | head -n 20

kubelet version

Installation des packages

sudo apt-get install -y docker.io kubelet kubeadm kubectl

Blocage de la version des packages

sudo apt-mark hold docker.io kubelet kubeadm kubectl

hold package

Il est intéressant de regarder l'état du service Kubelet

sudo systemctl status kubelet.service

kubelet service Ont peut voir que le service est lancé et est "enabled".

Un code d'erreur à été relevé, c'est normal car le système tourne en boucle

Faisont de même pour le service Docker

sudo systemctl status docker.service

docker service disabled

Ici le service est "disabled" et n'est pas lancé sur la machine. Il faut donc l'activer et le démarrer.

sudo systemctl enable docker.service
sudo systemctl start docker.service

docker service enabled

Modification supplémentaires à ajouter à Docker

sudo bash -c 'cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF'

#Restart reload the systemd config and docker
sudo systemctl daemon-reload
sudo systemctl restart docker