For the complete documentation index, see llms.txt. This page is also available as Markdown.

Installation : Kubernetes (Helm)

Déployez KiloCenter sur Kubernetes avec Helm — chart, prérequis (k8s 1.25+, PostgreSQL 14+, Redis 7+), et ingress.

Objectif

Déployez KiloCenter sur un cluster Kubernetes à l'aide du chart Helm inclus dans ce dépôt.

Prérequis

Exigence
Version minimale

Cluster Kubernetes

1.25+

Helm

3.x

PostgreSQL externe

14+

Redis externe

7+

PostgreSQL et Redis ne sont pas déployés par ce chart. Provisionnez-les séparément (services gérés, opérateurs ou autonome) et fournissez les détails de connexion dans votre override de valeurs.

Architecture

                  Internet
                     |
               [ Ingress ] (facultatif)
                /         \
         kc-web:80    kc-gateway:9090
                          |
                    kc-core:50051 ---- kc-identity:50052
                    /      |      \
             bssci:5000  scaci:5001  mosquitto:1883
                                         |
                                    [clients MQTT]

Le chart déploie cinq services et un broker MQTT :

Composant
Port(s)
Description

kc-core

50051 (gRPC), 5000 (BSSCI), 5001 (SCACI), 8086 (santé)

Moteur du centre de services

kc-gateway

9090 (gRPC-web), 8087 (santé)

Point d'entrée de l'API externe

kc-identity

50052 (gRPC), 8088 (santé)

Identité, utilisateurs, organisations

kc-web

80

Interface de gestion web (nginx)

mosquitto

1883, 9001 (WebSocket)

Broker MQTT

certgen

Hook de pré-installation qui génère des certificats TLS

Étape 1 : Créer un override de valeurs

Au minimum, remplacez les paramètres de base de données, de Redis et de secrets :

Important : Le authHmacSecret est utilisé pour signer et vérifier les jetons JWT entre KC-Gateway et KC-Identity. Il doit comporter au moins 32 caractères.

Étape 2 : Installer

Lors de la première installation, une tâche hook de pré-installation exécute le certgen binaire pour générer une autorité de certification (CA) auto-signée et un certificat serveur dans un PVC partagé. Les mises à niveau ultérieures ignorent la génération si les certificats existent déjà.

Étape 3 : Valider

Étape 4 : Accéder à l’interface utilisateur

Sans ingress, utilisez le transfert de port :

Puis ouvrez http://localhost:8080/ dans votre navigateur.

Compte administrateur par défaut

Au premier démarrage, un utilisateur administrateur par défaut est créé via une migration de base de données :

E-mail

admin [at] kilocenter.local

Mot de passe

admin123!

Remplacez [at] par @ lors de la connexion.

Avertissement : Modifiez le mot de passe ou supprimez ce compte avant tout déploiement accessible au public. Les identifiants sont publiés dans ce dépôt.

Ingress

Activez l’Ingress Kubernetes standard dans votre override de valeurs :

Lorsque vous utilisez ingress, ajoutez votre domaine aux origines autorisées CORS :

Accès au protocole BSSCI/SCACI

Les stations de base se connectent directement à KC-Core via TCP+TLS sur les ports 5000 (BSSCI) et 5001 (SCACI). Il s'agit de connexions TCP brutes, pas HTTP. Pour les exposer à l'extérieur, créez un service LoadBalancer :

Certificats TLS

Le certgen hook génère une CA auto-signée et un certificat serveur lors de la première installation. En production, remplacez-les par des certificats signés par une CA de confiance en montant votre propre secret ou PVC à /app/certificates dans le pod kc-core.

Référence de configuration

Pour la liste complète des paramètres configurables, consultez le README du chart Helm.

Mise à niveau

Définissez un tag d’image spécifique pour verrouiller une version :

Dépannage

Symptôme
Cause probable
Correctif

Pods en ImagePullBackOff

Secret de pull d’image manquant

Ajoutez global.imagePullSecrets avec les identifiants de votre registre

Sonde de préparation KC-Core 503

Dépendance non prête

Vérifiez que KC-Identity et PostgreSQL sont en cours d'exécution

invalid_token après la connexion

Incompatibilité du secret HMAC

Assurez-vous que secrets.authHmacSecret est défini (identique pour gateway et identity)

Connexion BSSCI refusée

Aucun service externe

Créez un service LoadBalancer pour les ports 5000/5001

Erreurs gRPC-web dans le navigateur

CORS ou ingress mal configuré

Vérifiez kcGateway.config.corsOrigins et les chemins ingress

Mis à jour