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:

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 :

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
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.