Skip to main content

Google Kubernetes Engine

Mise en place d'un cluster GKE

Dans la section CALCUL de GCP, allez sur le service Kubernetes Engine > Clusters.

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

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

Pools de nœuds

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

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

 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.

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

image-1652629678303.png

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

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 Vert signifiant qu'il est opérationnel.

image-1652629916014.png

Configuration d'un Ingress

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 :

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