# Google Kubernetes Engine

## Mise en place d'un cluster GKE

Dans la section **CALCUL** de **GCP**, allez sur le service **Kubernetes Engine &gt; Clusters**.

[![image-1652628929254.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652628929254.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652628929254.png)

Une fois sur cette page, il peut vous être demandé d'activer GKE. Cela fait, cliquez sur le bouton **Créer** pour ajouter un nouveau cluster, puis choisissez le mode **GKE Standard.**

[![image-1652629034513.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629034513.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629034513.png)

### Configuration du cluster  


#### Paramètres de base du cluster

- Donnez un nom à votre cluster
- Choisissez une zone proche de là où vous trouvez
- Choisissez une version de Kubernetes (celle proposée par défaut est très bien)

#### [![image-1652629212093.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629212093.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629212093.png)

#### Pools de nœuds

- Donnez un nom à votre pool
- Choisissez la taille
- Pour éviter une surfacturation, laissez décoché l'autoscaling

<p class="callout info">Le nombre de noeuds peut être redimensionnable manuellement après la création du cluster en cas de besoin</p>

[![image-1652629345086.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629345086.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629345086.png)

- Côté nœuds, laissez le type d'image à **Container Optimized** pour minimiser la consommation de ressources
- Sélectionnez aussi le type de nœuds

<p class="callout warning"> En dessous de 2 Go de RAM cela va être limite, surtout si vous souhaitez utiliser des annotations de demande de ressources dans vos pods car ceux présents de base prennent déjà quasiment tout.</p>

- Taille du disque : 30 Go pour minimiser les frais
- Le reste des options peuvent être laissées par défaut

[![image-1652629678303.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629678303.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629678303.png)

[![image-1652629683773.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629683773.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629683773.png)

#### Réseau

Vous pouvez définir la visibilité de votre Cluster (par défaut public) ainsi que le réseau sur lequel il se trouve.  
On peut laisser par défaut.

[![image-1652629788957.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629788957.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629788957.png)

##### Création

Cliquez ensuite sur **Créer** en bas de la page pour créer le cluster Kubernetes.

Après quelques minutes, ce dernier devrait apparaitre dans la liste des clusters avec un état <span style="color: #2dc26b;">**Vert** </span>signifiant qu'il est opérationnel.

[![image-1652629916014.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652629916014.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652629916014.png)

### Connexion au Cluster via la console GCP

pour manipuler notre cluster, on peut s'y connecter via la console GCP.

En allant voir les détails du cluster, cliquez sur **Connecter**, puis copiez collez la commande de connexion dans votre console Cloud Shell.

[![image-1652632632066.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652632632066.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652632632066.png)

[![image-1652632639577.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652632639577.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652632639577.png)

On peut désormais effectuer quelques tests avec la commande **kubectl**

[![image-1652632700593.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652632700593.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652632700593.png)

## Configuration d'un Ingress

### Mise en place d'un LoadBalancer

Lorsqu'une application tourne sur votre cluster, elle n'est pas directement exposée sur internet. Le mieux est de la rendre visible derrière un **LoadBalancer** autogéré par GCP.

Pour cela, votre déploiement doit être exposé par service de type **LoadBalancer** :

```YAML
kind: Service
apiVersion: v1
metadata:
  name: <deploymentName>
spec:
  selector:
    run: <deploymentName>
  ports:
    - protocol: TCP
      port: <WantedExposedPort>
      targetPort: <podExposedPort>
  type: LoadBalancer
```

En vous rendant sur **GCP &gt; Kubernetes Engine &gt; Services et entrées**, vous devriez pouvoir vérifier que votre **LoadBalancer** fonctionne et pointe correctement sur votre déploiement.

[![image-1652630306810.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652630306810.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652630306810.png)

Vérifier que votre accès à votre service fonctionne correctement en vous rendant sur le **Point de terminaison**

[![image-1652630431654.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652630431654.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652630431654.png)

### Activation d'un Ingress

Il faut maintenant activer l'exposition de ce LoadBalancer derrière un domaine et avec un certificat HTTPS.

Pour faire cela, cochez votre LoadBalancer puis cliquez sur **Créer un Ingress**

[![image-1652630585785.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652630585785.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652630585785.png)

Donnez un nom à votre entrée

[![image-1652630635338.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652630635338.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652630635338.png)

Définissez ensuite les règles d'accès à votre **LoadBalancer**, notamment le domaine par lequel y acceder

<p class="callout info">Une fois l'IP publique de ce point d'entrée définis, il faudra bien sûr aller mettre à jour l'enregistrement DNS de type A et AAAA pour qu'il pointe sur ce dernier</p>

[![image-1652631516067.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631516067.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631516067.png)

Dans la section **Frontend Configuration**, vous pouvez définir si ce dernier sera accessible en HTTP/HTTPS

Vous pouvez soit fournir un certificat existant, soit laisser GCP gérer ça pour vous.

[![image-1652631611562.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631611562.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631611562.png)

[![image-1652631642312.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631642312.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631642312.png)

Vérifier que votre configuration est bonne, puis cliquez sur **Créer**

[![image-1652631690399.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631690399.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631690399.png)

Après quelques minutes, notre déploiement Ingress devrait apparaitre dans la section **Services réseau &gt; Équilibrage de charge**

[![image-1652631766683.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631766683.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631766683.png)

En allant consulter les détails, on peut y retrouver l'adresse IP attribuée ainsi que d'autres informations sur son fonctionnement, notamment les certificats utilisés.

[![image-1652631841629.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631841629.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631841629.png)

Une fois votre zone DNS mis à jour et votre cache DNS rafraichis, vous pouvez accéder à votre service via votre domaine.

[![image-1652631908506.png](https://wiki.nospy.fr/uploads/images/gallery/2022-05/scaled-1680-/image-1652631908506.png)](https://wiki.nospy.fr/uploads/images/gallery/2022-05/image-1652631908506.png)

<p class="callout info">La génération du certificat peut prendre un peu de temps (~1h)</p>