Installation de Kubernetes

Installation de Kubernetes

L’installation qui va suivre à été testé sur un environnement Debian 10.

Installation d’un noeud Master

##
# Installation de Docker
##
apt-get -y update
apt-get install -y    apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/debian \
     $(lsb_release -cs) \
     stable"
apt-get -y update
apt-get install -y docker-ce docker-ce-cli containerd.io
docker version
## Configuration du daemon Docker : rotation des logs
cat <<EOF >/etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
    "max-size": "10m",    
    "max-file": "5"    
    }
} 
/etc/init.d/docker restart
EOF
##
# Installation de Kubernetes
##
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 https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get -y update
apt-get install -y kubelet kubeadm kubectl
kubeadm config images pull
## Désactivation du SWAP sur le serveur ; Pour le désactiver de façon persistante il faut éditer le fichier /etc/fstab la ligne avec le swap
swapoff -a
kubeadm init --ignore-preflight-errors Swap --kubernetes-version=stable --pod-network-cidr=10.244.0.0/16
sysctl net.bridge.bridge-nf-call-iptables=1
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bashrc
source ~/.bashrc
##
# Déploiement de logiciel de partage réseau
##
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
## Déploiement de la supervision kubernetes
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
kubectl get nodes
##
# Installation de Nginx Ingress Controller
##
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install nginx-ingress nginx-stable/nginx-ingress

Copiez la commande générer suite à l’installation de kubernetes, voici un exemple :

kubeadm join 192.168.1.40:6443 --token wpr070.tg4azmqwjw71w2rx --discovery-token-ca-cert-hash sha256:80194e2a93b0a8da7d0d2bb6af02c3c88f3f3e76040c20f561fe7edc07ad2c39

Installation d’un noeud Worker

##
# Installation de Docker
##
apt-get -y update
apt-get install -y    apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/debian \
     $(lsb_release -cs) \
     stable"
apt-get -y update
apt-get install -y docker-ce docker-ce-cli containerd.io
docker version
## Configuration du daemon Docker : rotation des logs
cat <<EOF >/etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
    "max-size": "10m",    
    "max-file": "5"    
    }
} 
/etc/init.d/docker restart
EOF
##
# Installation de Kubernetes
##
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 https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get -y update
apt-get install -y kubelet kubeadm kubectl
kubeadm config images pull
## Désactivation du SWAP sur le serveur
swapoff -a
kubeadm join 192.168.1.40:6443 --token wpr070.tg4azmqwjw71w2rx --discovery-token-ca-cert-hash sha256:80194e2a93b0a8da7d0d2bb6af02c3c88f3f3e76040c20f561fe7edc07ad2c39

Vérification Master / Worker

Noeud Master :

root@ats-k8s-01:~# kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
ats-k8s-01   Ready    master   3d23h   v1.18.2
ats-k8s-02   Ready    <none>   3d22h   v1.18.2
ats-k8s-03   Ready    <none>   3d21h   v1.18.2

Ajouter des labels sur les noeuds Worker

kubectl label node ats-k8s-02 node-role.kubernetes.io/worker=worker
kubectl label node ats-k8s-03 node-role.kubernetes.io/worker=worker
kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
ats-k8s-01   Ready    master   3d23h   v1.18.2
ats-k8s-02   Ready    worker   3d22h   v1.18.2
ats-k8s-03   Ready    worker   3d22h   v1.18.2