Onboarding sur la PaaS KNS

Bienvenue à bord !

La première étape pour déployer vos applications sur la PaaS Kubernetes KNS est de contacter votre commercial référent afin de procéder aux démarches de création de namespaces sur le cluster mutualisé.

L’offre est consultable ici: https://www.dri.fr/hebergement-kubernetes

Namespaces

Pour commencer, il faut choisir le nombre de namespaces, nommés selon le format <cluster>-<id client>-<environnement>-<champ optionnel>-<id unique>. Vous pouvez choisir les champs environnement et champ optionnel (chiffres et lettres uniquement).

Il est recommandé de séparer vos différents environnements (prod, preprod, perf, recette, dev…) dans des namespaces différents, afin de pouvoir faire une séparation au niveau des droits et d’éviter les erreurs humaines ou encore la saturation en ressources par de la hors prod pouvant entraîner un blocage de la prod (les quotas étant pour tout le namespace).

A contrario, s’ils ne sont pas gérés par des équipes ou process entièrement différents, il est tout à fait possible de déployer plusieurs composants applicatifs dans le même namespace, voire pour les hors-prod plusieurs instances de l’application pour travailler sur plusieurs versions différentes (branches de fonctionnalités, de corrections de bugs…).

Actuellement tous les namespaces seront déployés sur le même cluster Kubernetes.

Ceux-ci sont visibles dans la section Services sur votre page EVA Pilote:

../_images/eva-kns.png

Les utilisateurs sont gérables également via cette même section via la création de comptes de services avec des droits admin ou viewer sur le namespace :

../_images/kns-users.png

Une fois le compte créé, il est possible de récupérer le kubeconfig de l’utilisateur via l’interface.

Gabarits

Actuellement, voici les gabarits de namespaces disponibles :

Namespace

KNS 4-8

KNS 8-32

KNS 16-64

KNS 32-128

CPU

4

8

16

32

RAM (Go)

8

32

64

128

Stockage

250 Go

1 To

2.5 To

5 To

Les valeurs pour le RAM / CPU correspondent aux requests Kubernetes.

Rappel de la gestion des ressources Kubernetes

Au niveau du pod :

  • Consommation RAM/CPU du pod: ce que le pod utilisé réellement en RAM (Go) ou CPU (coeurs virtuels)

  • Requests RAM/CPU du pod : les ressources garanties en RAM/CPU pour le pod

  • Limits RAM/CPU du pod: ce que le pod peut atteindre en best effort

Un dépassement de la limite CPU entraîne un throttle du pod (moins de cycles CPU actifs) Un dépassement de la limite RAM entraîne un OOMkill du pod

Au niveau du namespace:

  • Consommation RAM/CPU du namespace: le cumul de la consommation RAM/CPU de tous les pods du namespace

  • Utilisation des requests RAM/CPU du namespace : somme de toutes les requests RAM/CPU des pods du namespace

  • Utilisation des limits RAM/CPU du namespace : somme de toutes les limits RAM/CPU des pods du namespace

  • Quota du namespace (requests/limits en RAM/CPU): Max atteignable de l’utilisation des requests/limits en RAM/CPU dans le namespace

Une tentative de déploiement de pod qui entraînerait un dépassement du quota sera bloquée.

Utilisation de GPU

L’utilisation de GPU passe par la souscription d’un forfait dédié.

Différences notables avec une offre classique

Il est important de noter que l’utilisation de Kubernetes (ici en mode Plateforme as a Service) viennent avec une certaine couche d’abstraction fournie par le cluster et les services associés.

Ainsi, il ne sera pas possible de se connecter directement aux machines du cluster, le déploiement comme l’administration des applications hébergées passeront par l’API kubernetes, en utilisant la méthode de votre choix (et le kubeconfig récupéré dans l’interface):

  • la CLI kubectl directement

  • les surcouches à la CLI comme k9s, lens ou kubie

  • une des librairie ou plugins disponibles dans votre langage/ habituel

  • le tout avec éventuellement une surcouche comme ArgoCD, jenkins, gitlab-ci…

De la même manière, il faudra convertir vos commandes docker habituelles ou vos manifestes docker-compose ou docker-swarm en manifestes kubernetes, avec éventuellement un package helm selon les cas d’usages.

N’hésitez pas à nous contacter pour vous faire accompagner sur cette partie ou pour bénéficier de formations afin de réduire la courbe d’apprentissage.