Les clusters virtuels sont des clusters Kubernetes entièrement fonctionnels imbriqués dans un cluster hôte physique offrant une meilleure isolation et une meilleure flexibilité pour prendre en charge la multi-location. Plusieurs équipes peuvent fonctionner indépendamment au sein de la même infrastructure physique tout en minimisant les conflits, en maximisant l'autonomie et en réduisant les coûts.
Les clusters virtuels s'exécutent dans les espaces de noms du cluster hôte, mais fonctionnent comme des clusters Kubernetes distincts, avec leur propre serveur API, plan de contrôle, synchroniseur et ensemble de ressources. Bien que les clusters virtuels partagent les ressources physiques du cluster hôte (telles que le processeur, la mémoire et le stockage), ils gèrent leurs ressources de manière indépendante, permettant une utilisation et une mise à l'échelle efficaces.
Les clusters virtuels interagissent avec le cluster hôte pour la planification des ressources et la mise en réseau, mais maintiennent un niveau d'abstraction pour garantir que les opérations au sein d'un cluster virtuel n'affectent pas directement l'état global du cluster hôte.
⭐️ Aimez-vous vcluster ? Soutenez le projet avec une étoile ⭐️
Les clusters virtuels offrent d'immenses avantages pour les déploiements Kubernetes à grande échelle et la multi-location.
Autorisations granulaires : les utilisateurs de vCluster fonctionnent avec des autorisations réduites au minimum dans le cluster hôte, ce qui réduit considérablement le risque d'utilisation abusive des accès privilégiés. Au sein de leur vCluster, les utilisateurs disposent d'un contrôle de niveau administrateur, leur permettant de gérer les CRD, RBAC et autres politiques de sécurité de manière indépendante.
Plan de contrôle isolé : chaque vCluster est livré avec son propre serveur API dédié et son propre plan de contrôle, créant une forte limite d'isolation.
Politiques de sécurité personnalisables : les locataires peuvent mettre en œuvre une gouvernance supplémentaire spécifique au vCluster, notamment des politiques OPA, des politiques réseau, des quotas de ressources, des plages de limites et un contrôle d'admission, en plus des politiques et mesures de sécurité existantes dans le cluster hôte physique sous-jacent.
Protection améliorée des données : avec des options de magasins de sauvegarde séparés, notamment SQLite intégré, etcd, ou des bases de données externes, les clusters virtuels permettent une gestion isolée des données, réduisant ainsi le risque de fuite de données entre les locataires.
Accès administrateur complet par locataire : les locataires peuvent déployer librement des CRD, créer des espaces de noms, modifier et étiqueter des nœuds, et gérer des ressources à l'échelle du cluster, généralement limitées dans les espaces de noms Kubernetes standard.
Réseau isolé mais intégré : tout en garantissant une isolation automatique (par exemple, les pods de différents clusters virtuels ne peuvent pas communiquer par défaut), vCluster permet des politiques réseau et un partage de services configurables, prenant en charge à la fois la séparation et le partage selon les besoins.
Gestion des nœuds : attribuez des nœuds statiques à des clusters virtuels spécifiques ou partagez des pools de nœuds entre plusieurs clusters virtuels, offrant ainsi une flexibilité dans l'allocation des ressources.
Infrastructure légère : les clusters virtuels sont nettement plus légers que les clusters physiques, capables de démarrer en quelques secondes, ce qui contraste fortement avec les longs délais de provisionnement souvent observés dans des environnements comme EKS (~ 45 minutes).
Efficacité des ressources : en partageant les ressources du cluster hôte sous-jacent, les clusters virtuels minimisent le besoin d'infrastructure physique supplémentaire, réduisant ainsi les coûts et l'impact environnemental.
Gestion simplifiée : le plan de contrôle vCluster, exécuté dans un seul pod, ainsi que CoreDNS intégré en option, minimisent la surcharge opérationnelle, rendant les clusters virtuels particulièrement adaptés aux déploiements à grande échelle et aux scénarios multi-tenant.
Divers environnements Kubernetes : vCluster prend en charge différentes versions et distributions de Kubernetes (y compris K8, K3 et K0), permettant des biais de version. Cela permet d'adapter chaque cluster virtuel à des exigences spécifiques sans affecter les autres.
Magasins de sauvegarde adaptables : choisissez parmi une gamme de magasins de données, des options légères (SQLite) aux options de niveau entreprise (etcd intégré, magasins de données externes comme Global RDS), répondant à divers besoins d'évolutivité et de durabilité.
Fonctionne n'importe où : les clusters virtuels peuvent s'exécuter sur EKS, GKE, AKS, OpenShift, RKE, K3s, dans le cloud, en périphérie et sur site. Tant qu'il s'agit d'un cluster K8s, vous pouvez exécuter un cluster virtuel dessus.
Charge réduite du serveur API : les clusters virtuels, chacun doté de son propre serveur API dédié, réduisent considérablement la charge opérationnelle sur le serveur API Kubernetes du cluster hôte en isolant et en traitant les requêtes en interne.
Gestion des CRD sans conflit : la gestion indépendante des CRD au sein de chaque cluster virtuel élimine le risque de conflits de CRD et de divergences de versions, garantissant ainsi des opérations plus fluides et une mise à l'échelle plus facile à mesure que la base d'utilisateurs se développe.
Offrez aux développeurs des outils Kubernetes en libre-service : simplifiez l'accès à Kubernetes pour les développeurs via des clusters virtuels en libre-service, réduisant ainsi les erreurs humaines et améliorant l'autonomie des développeurs sans compromettre les exigences de sécurité et de conformité.
Accélérez la CI/CD avec des clusters Kubernetes éphémères : créez instantanément de nouveaux clusters Kubernetes virtuels propres pour chaque demande d'extraction, permettant des tests rapides et isolés et des aperçus de relations publiques sans temps d'attente et sans les difficultés d'un environnement de test partagé.
Élevez votre offre ISV avec un cluster dédié par client : hébergez chaque client dans un cluster virtuel avec une isolation stricte des locataires et une évolutivité transparente, tout en consolidant les outils essentiels dans une pile de plate-forme unifiée au service de plusieurs locataires.
Créez un service Kubernetes géré avec le meilleur COGS de sa catégorie et des marges élevées : permettez aux clients d'accéder directement aux clusters Kubernetes virtuels dédiés, en rationalisant l'allocation des nœuds et des ressources pour une efficacité de pointe et une évolutivité inégalée.
Référez-vous à notre guide de démarrage rapide pour déployer votre premier vCluster !
Merci de votre intérêt à contribuer ! Veuillez vous référer à CONTRIBUTING.md pour obtenir des conseils.
Sous licence Apache, version 2.0 (la « Licence » ); vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/LICENSE-2.0
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué « EN L'ÉTAT », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.