Aller au contenu principal

LiveKit Egress (livekit-egress)

Workers d'enregistrement des salles LiveKit (composite de salle, piste et participant) : fichiers déposés dans le compartiment S3 du service dans SeaweedFS avec une identité limitée à celui-ci. Les workers prennent leurs tâches dans Redis ; le serveur LiveKit signe le webhook egress_ended dont Navin Enterprise se sert pour ranger l'enregistrement dans l'organisation des tenants.

Généré depuis catalog/services/livekit-egress.yaml : ne pas modifier à la main.

Résumé​

Version1.15.0
Usageinstaller et configurer
Couchefonctionnelle (catalogue IA)
CatégorieInférence IA
Méthodes d'installationpodman
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXApache-2.0
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Exceptions de licence de ses dépendancesLEX-032 (en attente de la décision du client), LEX-033 (en attente de la décision du client)
Composant de la plateformelivekit-egress

Paquets et artefacts​

Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.

TypePaquetVersionLicenceDétails
image de conteneurdocker.io/livekit/egressv1.15.0Apache-2.0clé d'image egress, utilisée par egress, condensé sha256:ac244a40268ce1dd1510fbff6eb529609ec68aceff1602343f79be8ca08c355b

Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
podmanfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64, aarch64 (non restreintes par le descripteur)

Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.

Prérequis​

Hôte​

  • au moins 4 CPU (avertissement, cpu).
  • au moins 4096 Mo de mémoire (avertissement, memory).

Réseau et ports​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
egresshealth8592/tcpnon
egressmetrics6791/tcpoui

Services et connexions nécessaires​

Détail et résolution : voir Dépendances.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
podmanouiles images de conteneur du descripteur, exécutées par Podman sous systemd

Composants​

ComposantTypeMéthodes d'installationPorts
Worker Egress (egress)travailleurpodman8592/tcp, 6791/tcp

Worker unique (single) (par défaut)​

Un seul worker d'enregistrement.

Ce que le mode déploie :

ComposantPlacement
egressmin 1, max 1

Pool de workers (pool)​

Plusieurs workers sur le même Redis ; chaque tâche va à un worker dont le CPU est libre.

Ce que le mode déploie :

ComposantPlacement
egressmin 2, recommandé 2

Installer ce service​

L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.

  1. Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.

  2. Choisissez le service. À l'étape Service, sélectionnez LiveKit Egress. La carte affiche la licence Apache-2.0 et les dépendances dont l'installation a besoin.

  3. Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : single (par défaut), pool. Chaque mode déploie les composants listés dans Méthodes et modes d'installation.

  4. Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (livekit, redis, storage) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison.

  5. Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.

  6. Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.

  7. Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.

Haute disponibilité​

Clusternatif (native)
Haute disponibilitéredondance (redundancy)
Basculenatif (native)
Réplicationaucun (none)
Quorumaucun (none)
Découverteregistre (registry)
Point d'entréeaucun (none)
Documentation officiellehttps://docs.livekit.io/transport/self-hosting/egress/
Référenceshttps://github.com/livekit/egress

Prérequis​

PrérequisDoit être hautement disponibleModesDescription
redisouipoolRedis hautement disponible partagé avec le serveur LiveKit.

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
singleautonome (standalone)unique (single)-1Un worker, sans tolérance aux pannes.
poolha (ha)jobs parallèles (parallel-jobs)-2Plusieurs workers ; un nouvel enregistrement va à un worker en service dont le CPU est libre.

Remarques​

  • Un enregistrement tourne sur un worker : la perte de ce worker le termine en erreur et les fichiers non encore déposés sont perdus.
  • Chaque worker demande 4 CPU et 4 Go de mémoire (exigence officielle) ; un composite de salle prend 2 à 6 CPU.

Paramètres de configuration​

Réseau​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port de santé (health_port)port8592-nonnonnonÉtat HTTP du worker (JSON), local à l'hôte.
Port des métriques (metrics_port)port6791-nonnonnonPort Prometheus (livekit_egress_available pour la capacité).
URL LiveKit (livekit_url)string(vide)-nonnonnonURL ws:// ou wss:// du serveur LiveKit (son répartiteur en mode distribué) ; vide : le premier serveur de la liaison livekit.

Enregistrement​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Enregistrement maximal (file_max_duration)string4h^[1-9][0-9]{0,4}(s|m|h)$nonnonnonEnregistrement de fichier le plus long ; une fois atteint, l'egress se termine en EGRESS_LIMIT_REACHED.
Plafond CPU (max_cpu_utilization)float0.8min 0.3, max 0.95nonnonnonPart du CPU au-dessus de laquelle un worker refuse les nouvelles tâches.

Dépendances​

Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).

LiaisonFournie parType de connexionPoint d'accèsFacultativeQuand rien n'est liéDescription
livekitlivekit-signalnonlivekit est ajouté à l'installationServeur LiveKit des salles : paire de clés d'API et URL WebSocket (son redis_bus doit être activé).
redisredisredisredisnonredis est ajouté à l'installationLe Redis du serveur LiveKit : file des tâches des workers.
storageseaweedfss3s3nonseaweedfs est ajouté à l'installationCompartiment des enregistrements et son identité S3, limitée à ce compartiment (provisionnée par SeaweedFS avant l'installation).

Commandes​

CommandeComposantCibleDescription
Journaux récents (logs)egresshôte choisiDernières lignes du journal du worker.

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
egressHTTP http://127.0.0.1:{{ config.health_port }}/Attendu 200 ; 60 tentatives ; intervalle 2 s ; délai 3 s

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
cpucpu_count {"min": 4}au moins 4 CPUavertissementtous les composants
memorymemory_mb {"min": 4096}au moins 4096 Mo de mémoireavertissementtous les composants

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.log }}.

Liens rapides​

  • Métriques : http://{{ host.fqdn }}:{{ config.metrics_port }}/metrics

Documentation amont​