L’installation qui va suivre à été testé sur un environnement Debian 10.
##
# 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 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
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
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