Google Kubernetes Engine
Mise en place d'un cluster GKE
Dans la section CALCUL de GCP, allez sur le service Kubernetes Engine > Clusters.
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.
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)
Pools de nœuds
- Donnez un nom à votre pool
- Choisissez la taille
- Pour éviter une surfacturation, laissez décoché l'autoscaling
Le nombre de noeuds peut être redimensionnable manuellement après la création du cluster en cas de besoin
- 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
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.
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.
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.
On peut désormais effectuer quelques tests avec la commande kubectl
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 :
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 > Kubernetes Engine > Services et entrées, vous devriez pouvoir vérifier que votre LoadBalancer fonctionne et pointe correctement sur votre déploiement.
Vérifier que votre accès à votre service fonctionne correctement en vous rendant sur le Point de terminaison
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
Donnez un nom à votre entrée
Définissez ensuite les règles d'accès à votre LoadBalancer, notamment le domaine par lequel y acceder
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
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.
Vérifier que votre configuration est bonne, puis cliquez sur Créer
Après quelques minutes, notre déploiement Ingress devrait apparaitre dans la section Services réseau > Équilibrage de charge
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.
Une fois votre zone DNS mis à jour et votre cache DNS rafraichis, vous pouvez accéder à votre service via votre domaine.
La génération du certificat peut prendre un peu de temps (~1h)