Mettre à niveau Claude Managed Agents auto-hébergé
Mettre à niveau un déploiement Claude Managed Agents auto-hébergé sur Kubernetes ou Docker Compose, et revenir en arrière si la nouvelle version ne fonctionne pas.
Cette page explique comment mettre à niveau un déploiement sur Kubernetes ou Docker Compose, et comment revenir en arrière. Sur Kubernetes, le temps d’arrêt dépend de l’ampleur de la mise à niveau :
| Mise à niveau | Sauvegarder d’abord la base de données | Temps d’arrêt sur Kubernetes |
|---|---|---|
| Version de correctif : seul le troisième nombre change | Non. Le schéma de la base de données reste le même. | Aucun |
Mineure : le deuxième nombre augmente de un, par exemple de 1.2.0 à 1.3.0 | Oui. Le schéma change. | Aucun, sauf si une section de CHANGELOG.md indique que les serveurs doivent être arrêtés |
Saute une version mineure, par exemple de 1.1.0 à 1.3.0, ou change le premier nombre | Oui. Le schéma change. | Depuis le moment où vous arrêtez les anciens serveurs jusqu’à ce que les nouveaux soient prêts |
Une pile Docker Compose est indisponible pendant son redémarrage, quel que soit le type de mise à niveau.
Avant la mise à niveau
Lisez la section de la nouvelle version dans CHANGELOG.md, à la racine de l’archive extraite. Elle commence par les étapes de mise à niveau propres à cette version. Si vous sautez des versions, suivez chaque section plus récente que votre version, de la plus ancienne à la plus récente.
Parcourez ensuite Paramètres et chemins à vérifier.
Une mise à niveau mineure ou majeure comprend une sauvegarde de la base de données. Le dump contient toutes les conversations en clair ; les commandes de cette page le chiffrent donc avec l’outil de chiffrement age. Créez une paire de clés une seule fois, et conservez la clé privée, cma-backup.agekey, à l’écart des sauvegardes :
age-keygen -o cma-backup.agekey
age-keygen -y cma-backup.agekey > cma-backup.agepubMettre à niveau sur Kubernetes
Les commandes kubectl de cette page lisent le nom du Deployment du serveur depuis une variable shell. Exécutez ces deux lignes dans chaque terminal où vous exécutez les commandes. La première ligne recherche le nom, et la seconde l’affiche :
server=$(kubectl -n cma-server get deployment -l anthropic.com/role=server -o jsonpath='{.items[*].metadata.name}')
echo "$server"Si la deuxième ligne affiche cma-server, continuez. Si elle affiche un autre nom, lisez les noms de vos objets avant la mise à niveau. Si elle n’affiche rien, vérifiez que kubectl pointe vers le bon cluster, et exécutez à nouveau les deux lignes.
Construire et publier les nouvelles images
Extrayez la nouvelle archive. Construisez et publiez ses trois images sous la nouvelle version, comme dans Construire et publier les images. Si vous exécutez la passerelle de sortie, construisez et publiez également son image.
Si vous construisez votre propre image de sandbox, reconstruisez-la et publiez-la également, sous la nouvelle version. Comparez son Dockerfile avec
kubernetes/sandbox/Dockerfiledans la nouvelle archive, et consultez ce dont votre propre image a besoin.Définir la nouvelle version dans vos fichiers de valeurs
Si un fichier de valeurs définit
image.tag, remplacez-le par la nouvelle version.Arrêter tous les serveurs, si la mise à niveau l’exige
Effectuez cette étape uniquement dans les cas suivants :
- Un serveur que vous exécutez a plus d’une version mineure de retard sur la nouvelle version.
- Le premier nombre, la version majeure, augmente.
- Une section de
CHANGELOG.mdplus récente que la version que vous exécutez indique que les serveurs doivent être arrêtés.
De cette étape jusqu’à ce que les nouveaux serveurs soient prêts, les clients ne peuvent pas atteindre le déploiement ; prévoyez donc une fenêtre de maintenance.
kubectl -n cma-server scale deployment/$server --replicas=0 kubectl -n cma-server wait --for=delete pod -l anthropic.com/role=server --timeout=90sSauvegarder la base de données
Faites ceci avant une mise à niveau mineure ou majeure, ou si vous avez arrêté les serveurs. Si l’ancienne version ne peut pas fonctionner avec le schéma modifié, cette sauvegarde est le seul moyen de revenir en arrière.
Utilisez
pg_dumpde la même version majeure de PostgreSQL que votre serveur de base de données. Pour<role>et<database>, utilisez les valeursuseretdbnamededatabase.urldanscma-server-values.yaml.pg_dumpdemande le mot de passe du rôle.set -o pipefail PGSSLMODE=require pg_dump -h <database-host> -U <role> -d <database> -Fc \ | age -r "$(cat cma-backup.agepub)" -o cma_server-<old-version>.dump.ageSi l’une des commandes affiche une erreur, le fichier qu’elle laisse n’est pas une sauvegarde. Corrigez la cause et exécutez à nouveau la commande avant de poursuivre.
Si les serveurs sont en cours d’exécution, la sauvegarde ne contient que ce que les clients ont écrit avant le démarrage du dump.
Mettre à niveau le serveur, puis les sandboxes
Exécutez ces commandes depuis le répertoire racine de la nouvelle archive, en utilisant les fichiers de valeurs de votre installation :
helm upgrade cma-server kubernetes/server/chart --namespace cma-server -f cma-server-values.yaml --wait helm upgrade cma kubernetes/chart --namespace cma -f cma-values.yaml --waitSi vous exécutez plusieurs environnements, exécutez la deuxième commande pour chaque release de sandbox, avec le nom, l’espace de noms et le fichier de valeurs de cette release.
Si vous avez arrêté les serveurs, la première commande migre le schéma, rétablit le nombre de serveurs et rend la main une fois les nouveaux serveurs prêts.
Lorsque les serveurs sont en cours d’exécution, Helm démarre chaque nouveau serveur avant d’en arrêter un ancien, de sorte que le nombre de serveurs prêts ne diminue jamais. Lors d’une mise à niveau mineure, la première commande modifie le schéma pendant que les anciens serveurs continuent de servir les requêtes, puis elle les remplace. Un flux d’événements ouvert sur un serveur en cours de remplacement se termine proprement ; un client qui suit un flux doit donc se reconnecter.
Si une commande échoue, consultez Si la mise à niveau échoue.
Mettre à niveau sur Docker Compose
Les étapes sont les mêmes pour tous les types de mise à niveau. Exécutez chaque commande docker compose depuis le répertoire Compose d’une version, c’est-à-dire le répertoire qui contient docker-compose.yml. Dans l’archive extraite, ce répertoire est compose. Utilisez un terminal où ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY et ANTHROPIC_AUTH_TOKEN ne sont pas définies, car Compose transmet au serveur les valeurs de ces variables définies dans le shell.
Sauvegarder la base de données
Faites ceci avant une mise à niveau mineure ou majeure, depuis le répertoire Compose de l’ancienne version :
set -o pipefail docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB" -Fc' \ | age -r "$(cat cma-backup.agepub)" -o cma_server-<old-version>.dump.ageDans la commande, laissez
$POSTGRES_USERet$POSTGRES_DBtels quels. Le texte entre guillemets simples s’exécute à l’intérieur du conteneurpostgres, qui contient les noms de son rôle et de sa base de données dans ces variables.La pile continue de servir les requêtes pendant la sauvegarde ; le dump ne contient donc pas ce que les clients écrivent après le démarrage du dump. Si l’une des commandes affiche une erreur, le fichier qu’elle laisse n’est pas une sauvegarde. Corrigez la cause et exécutez à nouveau la commande avant de poursuivre.
Extraire la nouvelle archive
Placez la nouvelle archive dans un répertoire où la nouvelle version peut rester, par exemple le répertoire parent de l’ancienne version. Les commandes extraient l’archive à cet endroit, et la nouvelle pile s’exécute à partir des fichiers extraits.
Si votre umask est plus strict que
022, exécutez d’abordumask 022. Exécutez ensuite ceci depuis le répertoire Compose de l’ancienne version. À la place de<directory>, indiquez le chemin complet du répertoire qui contient la nouvelle archive. À la place de<archive>, indiquez le nom de l’archive sans.tar.gz.releases="<directory>" tar -xzf "$releases/<archive>.tar.gz" -C "$releases" && cp .env compose.config.yaml "$releases/<archive>/compose/"La deuxième ligne copie également vos fichiers
.envetcompose.config.yamldans le répertoirecomposeextrait. L’ancienne pile continue de s’exécuter pendant les deux lignes. Si une ligne affiche une erreur, corrigez la cause et exécutez à nouveau les deux lignes.Refaire vos autres modifications
Seuls
.envetcompose.config.yamlsont repris. Refaites vos autres modifications dans le répertoire Compose de la nouvelle version :- Un fichier que vous avez ajouté : copiez-le.
- Un fichier fourni que vous avez modifié : apportez la même modification dans la copie de la nouvelle version. Ne copiez pas l’ancien fichier par-dessus, car cela annule les modifications que la version a apportées au fichier.
- Identité de l’agent : copiez le répertoire
agent-identityaveccp -a, en utilisantsudosi root en est propriétaire, et modifiez à nouveau le blocvolumes:dedocker-compose.yml. - Un fichier Compose personnel : copiez-le et vérifiez ses chemins relatifs.
Apportez ensuite les modifications Docker Compose de Paramètres et chemins à vérifier.
Arrêter l’ancienne pile et démarrer la nouvelle
Exécutez ces lignes dans le terminal où vous avez extrait l’archive, car elles utilisent sa variable
$releases. Restez dans le répertoire Compose de l’ancienne version, et indiquez le même nom à la place de<archive>. Si vous avez exportéCOMPOSE_FILEpour l’ancienne pile, exportez d’abord la même valeur.ls "$releases/<archive>/compose/.env" && docker compose down cd "$releases/<archive>/compose" && docker compose up --build -dLa première ligne n’arrête l’ancienne pile que si le
.envde la nouvelle version est en place.docker compose downconserve la base de données. N’ajoutez pas-v, qui la supprime. La nouvelle pile reprend la base de données, et son conteneurmigratemet à jour le schéma avant le démarrage du serveur.
Si une commande échoue, consultez Si la mise à niveau échoue.
Si la mise à niveau échoue
Avant de revenir en arrière, trouvez la cause dans le journal :
- Kubernetes : si le Job de migration échoue,
helm upgradeattend quelques minutes pendant que le Job effectue de nouvelles tentatives, puis échoue. Pendant cette attente, exécutezkubectl -n cma-server logs job/$server-migratedans un second terminal, avec$serverdéfini comme dans Mettre à niveau sur Kubernetes. Kubernetes supprime le journal lorsque le Job cesse ses nouvelles tentatives. Si vous l’avez manqué, exécutez à nouveauhelm upgrade, ce qui relance le Job. - Docker Compose : la sortie de
docker compose up --build -dpeut ne pas indiquer la raison. Exécutezdocker compose logspour la trouver.
| Ce qu’affiche le journal | Ce que cela signifie | Que faire |
|---|---|---|
Une ligne contenant refusing to migrate: servers of another release are still running against this database | Certaines mises à niveau exigent que tous les serveurs soient arrêtés au préalable, et un serveur de l’ancienne version est encore en cours d’exécution. La migration n’a rien modifié. | Arrêtez tous les serveurs, comme dans Mettre à niveau sur Kubernetes, et exécutez à nouveau helm upgrade. Si un serveur ne s’est pas arrêté proprement, attendez d’abord 20 secondes : jusque-là, la migration considère toujours ce serveur comme en cours d’exécution. |
Une ligne contenant cannot downgrade, lorsque vous déployez à nouveau l’ancienne version | L’ancienne version ne peut pas s’exécuter sur le schéma modifié. | Restaurez la sauvegarde, comme dans Revenir en arrière. |
| Une autre erreur de la migration | Vous n’avez pas besoin de revenir en arrière. Sur Kubernetes, les serveurs restent tels qu’ils étaient jusqu’à ce que la migration réussisse. | Corrigez la cause, et exécutez à nouveau helm upgrade ou docker compose up --build -d. |
La migration peut réussir sans que les nouveaux serveurs deviennent prêts. Pour trouver la cause, lisez le journal des serveurs :
- Kubernetes :
kubectl -n cma-server logs -l anthropic.com/role=server --prefix --tail=20 - Docker Compose :
docker compose logs cma-server
Par exemple, sur Kubernetes, une ligne contenant has invalid keys nomme un paramètre sous server.config que la nouvelle version n’accepte pas. Corrigez la cause et exécutez à nouveau la commande de mise à niveau avant d’envisager une restauration, car une restauration entraîne une perte de données. Sur Kubernetes, une fois le schéma modifié, un serveur de l’ancienne version en cours d’exécution continue de servir les requêtes, mais il risque de ne pas redémarrer s’il s’arrête.
Revenir en arrière
Les commandes kubectl de cette section utilisent la variable $server de Mettre à niveau sur Kubernetes. Avant de revenir en arrière, consultez Si la mise à niveau échoue. Revenez ensuite en arrière selon le type de mise à niveau :
- Après une mise à niveau vers une version de correctif : Déployer à nouveau l’ancienne version. Les deux versions utilisent le même schéma.
- Après une mise à niveau mineure ou majeure : ouvrez
CHANGELOG.mddans la nouvelle archive. Lisez la section de chaque version parue après celle vers laquelle vous revenez.- Si une section indique que l’ancienne version ne peut pas démarrer sur la base de données migrée, restaurez la sauvegarde.
- Sinon, déployez à nouveau l’ancienne version. Si cela échoue avec
cannot downgrade, restaurez la sauvegarde.
Déployer à nouveau l’ancienne version
- Kubernetes : allez dans le répertoire de premier niveau de l’ancienne archive. Exécutez les deux commandes
helm upgradede Mettre à niveau sur Kubernetes, avec les fichiers de valeurs tels qu’ils étaient pour cette version. Par exemple, si vous avez ajoutéearlierNamespour la mise à niveau, retirez-le. N’exécutez la deuxième commande que lorsque la première réussit. - Docker Compose : exécutez
docker compose downdans le répertoire Compose de la nouvelle version, puisdocker compose up --build -ddans celui de l’ancienne.
Si l’ancienne version ne peut pas s’exécuter sur le schéma modifié, le journal affiche cannot downgrade :
- Kubernetes : le Job de migration échoue et les serveurs restent tels qu’ils sont. Si la mise à niveau échoue explique comment lire le journal du Job.
- Docker Compose : le serveur ne démarre pas. Lisez le journal avec
docker compose logs migrate.
Sur Docker Compose, la sortie de docker compose logs peut plutôt afficher stored value is encrypted but no encryption key is configured. Dans ce cas, le fichier .env de l’ancienne version ne contient pas de ligne CMA_STORE__CREDENTIALS_ENCRYPTION_KEY. Copiez cette ligne depuis le fichier .env de la nouvelle version, et exécutez à nouveau docker compose up --build -d.
Restaurer la sauvegarde sur Kubernetes
Votre serveur de base de données doit disposer de l’espace nécessaire pour une deuxième copie de la base de données. Pour <role> et <database>, utilisez les valeurs user et dbname de database.url dans cma-server-values.yaml.
Restaurer la sauvegarde dans une nouvelle base de données
Connectez-vous à la base de données
postgresde votre serveur de base de données en tant qu’administrateur, et exécutez :CREATE DATABASE <database>_restored OWNER <role>;Ensuite, sur la machine qui contient la sauvegarde, exécutez cette commande avec les chemins de votre clé et de votre fichier de sauvegarde. Utilisez un
pg_restorede la même version majeure que votre serveur de base de données. Il demande le mot de passe du rôle et n’affiche rien s’il réussit.age -d -i cma-backup.agekey cma_server-<old-version>.dump.age \ | PGSSLMODE=require pg_restore -h <database-host> -U <role> -d <database>_restored --no-owner --exit-on-errorSi ceci affiche une erreur, arrêtez-vous. Votre base de données n’a pas changé. Exécutez
DROP DATABASE <database>_restored;en tant qu’administrateur, et recommencez cette étape.Arrêter tous les serveurs
kubectl -n cma-server scale deployment/$server --replicas=0 kubectl -n cma-server wait --for=delete pod -l anthropic.com/role=server --timeout=90sBasculer vers la base de données restaurée
Connectez-vous à la base de données
postgresen tant qu’administrateur, et exécutez :ALTER DATABASE <database> RENAME TO <database>_upgraded; ALTER DATABASE <database>_restored RENAME TO <database>;Si la première instruction indique que d’autres sessions utilisent la base de données, fermez ces sessions et exécutez à nouveau les deux instructions. Un pooler de connexions peut maintenir de telles sessions.
Déployer l’ancienne version
Suivez l’élément Kubernetes de Déployer à nouveau l’ancienne version. La première commande rétablit également le nombre de serveurs. Si elle échoue mais que
kubectl -n cma-server get podsmontre que les anciens serveurs sont prêts, consultez Si la vérification de la clé échoue.Supprimer la base de données mise de côté
Cette base de données contient encore ce que les clients ont écrit après la sauvegarde. Lorsque l’ancienne version fonctionne, supprimez-la avec
DROP DATABASE <database>_upgraded;.
Si la vérification de la clé échoue
À l’étape « Déployer l’ancienne version », la première commande helm upgrade attend que les anciens serveurs soient prêts. Elle vérifie ensuite la clé avec laquelle les sandboxes se connectent. Si la commande échoue mais que kubectl -n cma-server get pods montre que les anciens serveurs sont prêts, cette vérification a échoué.
Vos données sont restaurées et les serveurs fonctionnent, mais les sandboxes ne peuvent pas encore s’y connecter. Les sandboxes se connectent avec une clé du Secret cma-environment de leur propre espace de noms, cma. Cette clé est plus récente que votre sauvegarde ; la base de données restaurée ne la reconnaît donc pas.
Pour confirmer la cause, exécutez à nouveau la première commande. Pendant qu’elle attend, ouvrez un second terminal et définissez-y également $server. Exécutez ensuite kubectl -n cma-server logs job/$server-environment-default, en remplaçant default par le nom de votre environnement. Cherchez une ligne contenant Secret cma/cma-environment records key. Si le journal affiche une autre erreur, corrigez ce qu’elle indique.
Si le journal affiche cette ligne, supprimez le Secret avec kubectl -n cma delete secret cma-environment, et exécutez à nouveau la première commande. Elle recrée le Secret, avec une nouvelle clé. Exécutez ensuite la deuxième commande.
Restaurer la sauvegarde sur Docker Compose
Démarrer uniquement la base de données
Exécutez
docker compose downdans le répertoire Compose de la nouvelle version. Exécutez ensuitedocker compose up -d --wait postgresdans le répertoire Compose de l’ancienne version. Restez dans ce répertoire pour les étapes suivantes.Restaurer la sauvegarde dans une nouvelle base de données
Depuis le répertoire Compose de l’ancienne version, exécutez ceci avec les chemins de votre clé et de votre fichier de sauvegarde :
docker compose exec -T postgres sh -c 'psql -U "$POSTGRES_USER" -d postgres \ -c "DROP DATABASE IF EXISTS ${POSTGRES_DB}_restored" -c "CREATE DATABASE ${POSTGRES_DB}_restored"' \ && age -d -i cma-backup.agekey cma_server-<old-version>.dump.age \ | docker compose exec -T postgres sh -c 'pg_restore -U "$POSTGRES_USER" -d "${POSTGRES_DB}_restored" --no-owner --exit-on-error'La commande a fonctionné si elle affiche
DROP DATABASEetCREATE DATABASE, et aucune erreur.Laissez
$POSTGRES_USERet$POSTGRES_DBtels quels, ici et dans les étapes suivantes. Le texte entre guillemets simples s’exécute à l’intérieur du conteneurpostgres, qui contient les noms de son rôle et de sa base de données dans ces variables.Si elle affiche une erreur, votre base de données n’a pas changé ; vous pouvez donc exécuter à nouveau la commande entière. Si la sauvegarde ne peut pas être restaurée, exécutez
docker compose up --build -ddans le répertoire Compose de la nouvelle version pour redémarrer cette version.Basculer vers la base de données restaurée
docker compose exec -T postgres sh -c 'psql -U "$POSTGRES_USER" -d postgres \ -c "ALTER DATABASE $POSTGRES_DB RENAME TO ${POSTGRES_DB}_upgraded" \ -c "ALTER DATABASE ${POSTGRES_DB}_restored RENAME TO $POSTGRES_DB"'Démarrer l’ancienne version
Exécutez
docker compose up --build -d.Supprimer la base de données mise de côté
Cette base de données contient encore ce que les clients ont écrit après la sauvegarde. Lorsque l’ancienne version fonctionne, supprimez-la :
docker compose exec -T postgres sh -c 'psql -U "$POSTGRES_USER" -d postgres -c "DROP DATABASE ${POSTGRES_DB}_upgraded"'
Après une restauration
Une restauration ramène les clés d’environnement à l’état où elles étaient au moment de la sauvegarde :
- Une clé que vous avez révoquée après la sauvegarde : elle fonctionne de nouveau. Révoquez-la à nouveau.
- Une clé que vous avez créée après la sauvegarde : elle a disparu. Créez une nouvelle clé pour les workers qui l’utilisaient.
Remplacer une clé d’environnement pour vos propres workers contient les commandes, qui fonctionnent également sur Docker Compose. Les sandboxes que la pile Docker Compose démarre ne nécessitent aucune action, car la pile remplace leur clé à son démarrage.
Pour lister les clés d’un environnement, y compris les clés révoquées, exécutez list-keys comme suit :
- Utilisez le terminal que vous avez configuré dans Appeler l’API sur un serveur auto-hébergé. N’utilisez pas le terminal qui exécute
docker compose. - Sur Kubernetes, exécutez d’abord
kubectl -n cma-server port-forward svc/$server 8400:8400dans un autre terminal, avec$serverdéfini également dans celui-ci. - Exécutez la commande depuis le répertoire de premier niveau de l’archive, une fois pour chaque environnement, avec l’ID de cet environnement.
echo "$ANTHROPIC_API_KEY" | ./cma-server-admin list-keys \
-base-url http://127.0.0.1:8400 -env env_01595EKxaaTTGwwY3kyXdtbs \
-key-file - -allTester une sauvegarde
Pour prouver qu’un dump peut être restauré, exécutez uniquement l’étape « Restaurer la sauvegarde dans une nouvelle base de données ». Elle se trouve dans Restaurer la sauvegarde sur Kubernetes et dans Restaurer la sauvegarde sur Docker Compose. Cette étape ne modifie pas la base de données en cours d’utilisation. Supprimez ensuite la nouvelle base de données. Sur Docker Compose, son nom est celui de votre base de données suivi de _restored.
Paramètres et chemins à vérifier
Lisez cette section avant d’exécuter une commande de mise à niveau.
Vérifiez la section web_tools de votre fichier de paramètres. Si le fichier ne contient pas une telle section, ou si la section ne définit aucune clé, les outils web_search et web_fetch sont désactivés après la mise à niveau. Un agent qui utilise l’ensemble d’outils par défaut s’exécute alors sans eux, sans erreur. Un agent dont l’ensemble d’outils active l’un ou l’autre de ces outils ne peut pas démarrer de session. Pour conserver les outils, consultez Les outils web nécessitent un paramètre du serveur.
Sur Kubernetes, vérifiez que chaque fichier de valeurs de sandbox, tel que cma-values.yaml, définit egress.mode. Pour conserver l’accès de vos sandboxes à l’internet public, ajoutez mode: publicInternet sous egress. Si un fichier ne définit aucun mode, le chart applique son mode par défaut, closed. La commande helm upgrade du chart de sandbox s’arrête alors avec une erreur telle que egress.mode is closed and egress.closed.hosts is empty, et ne modifie rien.
Vérifiez sandbox.idleTimeout dans les mêmes fichiers. Si un fichier ne le définit pas, le pod d’une session disparaît environ 5 minutes après la fin du tour de l’agent. Les processus que l’agent a laissés en cours d’exécution s’arrêtent avec le pod. Par défaut, les fichiers de /workspace sont conservés. Pour conserver le pod pendant 30 minutes, ajoutez idleTimeout: 30m sous sandbox.
Recherchez inference.attribution dans le fichier de paramètres, et CMA_INFERENCE__ATTRIBUTION dans l’environnement du serveur. Supprimez la ligne si vous en trouvez une. La version vers laquelle vous effectuez la mise à niveau ne possède pas ce paramètre, et son serveur ne démarre pas si l’un ou l’autre est défini.
Lorsque l’API Claude est votre fournisseur d’inférence, chaque appel de modèle transporte, après la mise à niveau, les ID de sa session ainsi que de l’agent et de l’environnement de cette session. Consultez Ce que le serveur envoie à son fournisseur d’inférence.
Kubernetes : les noms de vos objets
cma-server-values.yaml doit indiquer quels noms utilise votre installation, dans son paramètre earlierNames. Pour trouver le nom du Deployment du serveur, exécutez kubectl -n cma-server get deployment -l anthropic.com/role=server.
| Le nom du Deployment | La ligne dans cma-server-values.yaml |
|---|---|
cma-onprem | earlierNames: true |
cma-server | earlierNames: false |
Si le fichier ne contient pas cette ligne, ajoutez-la avant la mise à niveau, et conservez-la pour toutes les mises à niveau ultérieures. Sans elle, la commande helm upgrade du chart du serveur s’arrête avec une erreur qui mentionne earlierNames, et ne modifie rien.
Avec earlierNames: true, les objets du chart conservent leurs noms cma-onprem, et les serveurs trouvent toujours les Secrets que vous avez créés sous ces noms. Ces pages utilisent les noms de la colonne du milieu. Avec earlierNames: true, utilisez plutôt les noms de la dernière colonne :
| Objet | Nom dans ces pages | Nom avec earlierNames: true |
|---|---|---|
| Le Deployment et le Service du serveur | cma-server | cma-onprem |
| Le Job de migration | cma-server-migrate | cma-onprem-migrate |
| Le Job de chaque environnement | cma-server-environment-<name> | cma-onprem-environment-<name> |
| Le Secret contenant le mot de passe de la base de données | cma-server-db | cma-onprem-db |
| Le Secret contenant l’identifiant du fournisseur d’inférence | cma-server-upstream | cma-onprem-upstream |
| Le Secret contenant la clé API du serveur et la clé de chiffrement | cma-server-keys | cma-onprem-server |
Quelle que soit la valeur de earlierNames, l’espace de noms s’appelle cma-server, et l’image du serveur s’appelle cma-server-image.
Chaque fichier de valeurs de sandbox qui définit egress.mode: gateway doit nommer les deux Services du serveur, sous egress.gateway. Si un fichier ne le fait pas, ajoutez les deux lignes. Cet exemple contient les noms pour une installation avec earlierNames: true :
egress:
gateway:
serverService: cma-onprem
serverEgressService: cma-onprem-egressDocker Compose : la structure de l’archive et les chemins
Si la version à partir de laquelle vous effectuez la mise à niveau n’a pas de répertoire compose, son docker-compose.yml se trouve à la racine de l’archive, à côté de bin. Dans la nouvelle archive, ce fichier se trouve un niveau plus bas, dans compose.
À l’étape « Refaire vos autres modifications », apportez également ces modifications :
- Un fichier Compose personnel : si l’ancienne archive n’avait pas de répertoire
compose, votre fichier descend également d’un niveau. Un chemin tel que./binqu’il contient devient../bin. Si le fichier nomme le servicecma-onprem, remplacez ce nom parcma-server. - Chemins sous
/etc/cma-onprem/ou/run/cma-onprem/: modifiez chacun d’eux pour qu’il commence par/etc/cma-server/ou/run/cma-server/. Regardez dans les fichiers.envetcompose.config.yamlde la nouvelle version, dans un fichier Compose personnel et dans chaque lignevolumes:que vous avez ajoutée. Dans une lignevolumes:, modifiez uniquement la partie située après le premier deux-points, qui correspond au chemin à l’intérieur du conteneur.
Cette page vous a-t-elle été utile ?