# Finalisation de l'installation du cluster

# Configuration du cluster

#### Configuration du cluster

Désactivation de l'ip VIP "manuelle" :

```bash
sudo ip addr del 192.168.1.100/32 dev ens18
```

Ajout de l'ip vp dans le configmap de kubeadmin :

```
kubectl edit configmap kubeadm-config -n kube-system
```

```yaml
apiVersion: v1
data:
  ClusterConfiguration: |
    apiServer: {}
    apiVersion: kubeadm.k8s.io/v1beta4
    caCertificateValidityPeriod: 87600h0m0s
    certificateValidityPeriod: 8760h0m0s
    certificatesDir: /etc/kubernetes/pki
    clusterName: kubernetes
    controllerManager: {}
--> controlPlaneEndpoint: "192.168.1.100:6443"
```

Ici on ajoute uniquement "controlPlaneEndpoint.

```bash
kubeadm init phase upload-certs --upload-certs
```

Application du label control-plane à k8s-master-1

```bash
kubectl label node k8s-master-1 node-role.kubernetes.io/control-plane=
```

**Génération de la commande permettant d'ajouter des noeuds masters :**

```bash
sudo kubeadm token create --print-join-command --certificate-key $(sudo kubeadm init phase upload-certs --upload-certs | tail -1)
```

**Génération de la commande permettant d'ajouter des noeuds worker :**

```
kubeadm token create --print-join-command
```

# Ajout des différents noeuds au cluster

#### Ajout des différents noeuds master au cluster

<p class="callout warning">Commandes à exécuter sur les noeuds k8s-master-2 et k8s-master-3</p>

```bash
kubeadm join 192.168.1.100:6443 --token ld3z42.3n2zglgdtoyd2to2 --discovery-token-ca-cert-hash sha256:03d97c70e97b300bb1088fa63f1005d52dcf45d813e6ec535897f2151c8a61c2 --control-plane --certificate-key c9413180b64c612ee58713da91a4d9b77e95bee06b424aa500ebb4b16fb7769d
```


#### Ajout des différents noeuds worker au cluster

<p class="callout warning">Commandes à exécuter sur les noeuds k8s-worker-1, k8s-worker-2 et k8s-worker-3</p>

```yaml
// Envoyer la commande générée par kubeadm token create --print-join-command
```

#### Résultat : 

```bash
kubectl get nodes
```

```python
NAME           STATUS   ROLES           AGE     VERSION
k8s-master-1   Ready    control-plane   81m     v1.32.12
k8s-master-2   Ready    control-plane   6m13s   v1.32.12
k8s-master-3   Ready    control-plane   4m8s    v1.32.12
k8s-worker-1   Ready    <none>          2m3s    v1.32.12
k8s-worker-2   Ready    <none>          115s    v1.32.12
k8s-worker-3   Ready    <none>          105s    v1.32.12
```

<p class="callout success">Félicitation ! Vous venez de déployer votre tout premier cluster Kubernettes !</p>

#### Ajout des lablels "workers" aux noeuds workers :

```bash
kubectl label node k8s-worker-1 node-role.kubernetes.io/worker="true"
kubectl label node k8s-worker-2 node-role.kubernetes.io/worker="true"
kubectl label node k8s-worker-3 node-role.kubernetes.io/worker="true"
```

<p class="callout info">Sera utilise au moment des deployments</p>