Skip to content

Latest commit

 

History

History
123 lines (84 loc) · 3.99 KB

tp1-cluster-setup-fr.md

File metadata and controls

123 lines (84 loc) · 3.99 KB

Lab 1

Installation de Kubernetes

Vous utiliserez kubeadm pour construire votre cluster.
Il sera composé de :

  • 1 noeud Control-plane
  • 3 noeuds Worker

Étapes :

  • Regardez l'aide de la commande kubeadm pour l'argument init : kubeadm init --help
  • Vérifiez que le noeud rempli les attendus (pour installer kubernetes avec kubeadm) :
kubeadm init phase preflight

Control plane

<!> Les commandes de cette section seront à exécuter depuis le node où vous voulez installer le control plane

kubeadm va installer les composants du control-plane en utilisant kubelet à partir des définitions de pods.

Initialisez le control plane (depuis le bon node):

sudo kubeadm init
  • kubeadm démarre (sur ce noeud) le kubelet en tant service systemd avec la bonne configuration
# Vérifiez l'état du service kubelet
sudo systemctl status kubelet
  • L'initialisation a notamment créé les fichiers de configurations et identification de votre cluster
sudo ls /etc/kubernetes/*.conf
  • Ainsi que les fichiers de définitions statiques (manifest) des pods du control-plane.
sudo ls /etc/kubernetes/manifests/
  • Constatez qu'il y a différents conteneurs docker qui sont maintenant démarrés sur le noeud du control-plane
sudo docker container ls

Vous pouvez maintenant utiliser votre cluster. Mais pour que la commande kubectl interagisse avec celui-ci, vous devez récupérer le fichier de configuration lui permettant de se connecter avec des droits administrateur :

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

(le sudo est utile quand vous n'êtes pas root et vous permet de configurer kubectl pour votre utilisateur)

  • Vous devriez pouvoir maintenant utiliser kubectl pour interagir avec votre cluster
  • Vérifiez l'état du cluster avec kubectl get nodes
  • Vérifiez l'état des pods système du cluster avec kubectl get pods -n kube-system

Workers

  • Utilisez kubeadm pour créer un jeton de démarrage ainsi que la commande kubeadm join ... que vous utiliserez sur chacun des worker node.
sudo kubeadm token create --print-join-command

Pour créer et associer au cluster un worker node, exécutez sur chacun des worker node la commande qui a été générée précédemment (avec la commande kubeadm token ....).
Quand vous avez fini depuis le control plane node (d'où vous avez configuré kubectl pour qu'il interagisse avec votre cluster), vérifiez que vous avez bien tous les nodes dans votre cluster :

kubectl get nodes

2.3: Installation du réseau

Votre cluster n'est pas encore fonctionnel. Vous voyez cela en passant la commande kubectl get nodes.
Il manque encore le network addon pour permettre à vos pods de communiquer. Il y a de nombreuses solutions. Vous pouvez voir cela ici.
Dans cet atelier, vous utiliserez le CNI Weave Net.

  • Mettre en place le CNI Weave Net sur le cluster
sudo sysctl net.bridge.bridge-nf-call-iptables=1
K8S_VERSION=$(kubectl version | base64 | tr -d '\n')
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=${K8S_VERSION}"
  • Vérifiez que les pods sont maintenant Ready :
kubectl get nodes -w

(-w : watch)

  • Créez un pod nginx-pod avec l'image nginx: kubectl run nginx-pod --image=nginx

  • Créez un pod avec l'image centos:
    kubectl run shell-pod --image=centos:7 -- sleep infinity

  • Obtenez l'IP des pods nginx: kubectl get pods -o wide

  • Vérifiez que les pods peuvent communiquer : kubectl exec shell-pod -- curl -s <NGINX_IP>

  • Créez un service pour le pod nginx : kubectl expose pod nginx-pod --name=nginx --port=80

  • Vérifiez que les pods peuvent communiquer avec les noms DNS (des services) : kubectl exec shell-pod -- curl -s nginx