Avec l'adoption croissante des architectures multi-cloud et edge computing, les équipes rencontrent souvent des défis liés à la fragmentation des environnements distribués. Kurator propose une solution intégrée basée sur Karmada, combinant Istio, Prometheus, Thanos, Volcano et KubeEdge pour créer une chaîne de compétences complète.
Étapes de configuration de l'environnement Kurator
Deux méthodes pour obtenir le code source :
# Méthode 1 : Téléchargement via wget
wget https://github.com/kurator-dev/kurator/archive/refs/heads/main.zip
unzip main.zip
cd kurator-main
# Méthode 2 : Clonage via git
git clone https://github.com/kurator-dev/kurator.git
cd kurator
En cas de problème de proxy :
git config --global http.proxy http://127.0.0.1:7890
Conditions préalables
- Cluster Kubernetes (v1.20+)
- Configuration kubectl valide
- Accès réseau aux dépôts d'images
- Ressources minimales : 4 cœurs / 8 Go RAM
Résolution des problèmes courants
- Échec de pull d'images : Configurer un proxy ou utiliser un dépôt interne
- Erreur d'application DRP : Vérifier la compatibilité Kubernetes et les conflits de noms
- Problèmes de stockage persistant : Définir un StorageClass local pour les tests
Architecture modulaire de Kurator
Basé sur Karmada, Kurator intègre plusieurs modules :
- Gestionnaire de flotte : Gestion du cycle de vie des clusters
- Gestionnaire d'applications : Distribution unifiée basée sur Karmada
- Gestionnaire de trafic : Gestion simplifiée via Istio
- Gestionnaire de surveillance : Intégration de Prometheus et Thanos
- Gestionnaire de politiques : Application cohérente des politiques de sécurité
Démonstration de distribution d'applications
Déploiement d'un microservice contenant frontend, backend et base de données :
apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
name: production-app
namespace: kurator-system
spec:
manifests:
- URL: https://github.com/myorg/app-manifests.git
path: ./production
revision: main
policy:
placement:
clusterSelector:
matchLabels:
environment: production
overrideRules:
- targetClusters:
clusterSelector:
matchLabels:
region: us-west
overrides:
- path: "/spec/replicas"
value: 5
Stratégies de configuration différenciée
Exemple de politique d'override pour les configurations régionales :
apiVersion: policy.kurator.dev/v1alpha1
kind: OverridePolicy
metadata:
name: region-specific-config
namespace: kurator-system
spec:
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
name: service-api
overrideRules:
- targetClusters:
clusterSelector:
matchLabels:
region: europe
overrides:
- path: "/spec/template/spec/containers/0/env"
value:
- name: EXTERNAL_API_ENDPOINT
value: "https://api-europe.example.com"
Intégration avec des outils existants
Dans un projet de commerce électronique international, Kurator a permis :
- Intégration avec Datadog via l'export des métriques
- Application cohérente des politiques de sécurité
- Gestion du trafic mondial avec Istio
Avantages de Kurator
- Expérience unifiée avec des abstractions de haut niveau
- Configuration simplifiée via des ressources personnalisées
- Surveillance centralisée et gestion des alertes
- Adoption progressive des fonctionnalités