Découverte pratique : Construction d'une plateforme cloud-native distribuée à partir de zéro avec Kurator

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

Étiquettes: Kurator kubernetes cloud-native Istio Prometheus

Publié le 6 septembre à 12h50