Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exécution d’applications tierces dans des conteneurs

Pour exécuter vos propres applications sur Junos OS Evolved, vous avez la possibilité de les déployer en tant que conteneur Docker. Le conteneur s’exécute sur Junos OS Evolved, et les applications s’exécutent dans le conteneur, ce qui les isole du système d’exploitation hôte. Les conteneurs sont installés dans une partition distincte montée dans / var/extensions. Les conteneurs persistent malgré les redémarrages et les mises à niveau logicielles.

Note:

Les conteneurs Docker ne sont pas intégrés dans Junos OS Evolved, ils sont créés et gérés entièrement via Linux à l’aide de commandes Docker. Pour plus d’informations sur les conteneurs et les commandes Docker, consultez la documentation officielle de Docker : https://docs.docker.com/get-started/

Les conteneurs ont des limites par défaut pour les ressources qu’ils peuvent utiliser à partir du système :

  • Storage – La taille de la partition /var/extensions est basée sur la plate-forme : 8 Go ou 30 % de la taille totale de /var , selon la valeur la plus petite.

  • Memory – Les conteneurs n’ont pas de limite de mémoire physique par défaut. Cela peut être modifié.

  • CPU – Les conteneurs n’ont pas de limite de CPU par défaut. Cela peut être modifié.

Note:

Vous pouvez modifier les limites de ressources sur les conteneurs si nécessaire. Reportez-vous à la section Modification des limites de ressources pour les conteneurs.

Déploiement d’un conteneur Docker

Pour déployer un conteneur Docker :

  1. Démarrez le service Docker lié à un VRF (par exemplevrf0). Tous les conteneurs gérés par ce service Docker seront liés à ce VRF Linux.
  2. Définissez le socket Docker pour le client en configurant la variable d’environnement suivante :
  3. Importez l’image.
    Note:

    L’URL de la import commande doit être modifiée pour différents conteneurs.

  4. Assurez-vous que l’image est téléchargée et obtenez l’ID de l’image.
  5. Créez un conteneur à l’aide de l’ID d’image et entrez une session bash dans ce conteneur.
  6. Créez un conteneur avec des fonctionnalités d’E/S de paquets et Netlink à l’aide de l’ID d’image, puis entrez une bash session dans ce conteneur.
    Note:

    Les conteneurs Docker sont démonisés par défaut, sauf si vous utilisez l’argument -it .

Gestion d’un conteneur Docker

Les conteneurs Docker sont gérés via le flux de travail Docker Linux standard. Utilisez les commandes , ou top Linux pour afficher les conteneurs Docker en cours d’exécution, ps et utilisez les commandes Docker pour gérer les docker psconteneurs. Pour plus d’informations sur les commandes Docker, consultez : https://docs.docker.com/engine/reference/commandline/cli/

Note:

Les fonctionnalités de haute disponibilité de Junos OS Evolved ne sont pas prises en charge pour les applications personnalisées dans les conteneurs Docker. Si une application dispose d’une fonctionnalité de haute disponibilité, vous devez exécuter l’application sur chaque RE pour vous assurer qu’elle peut se synchroniser elle-même. Une telle application devra avoir la logique métier requise pour se gérer et communiquer avec toutes les instances.

Sélection d’un VRF pour un conteneur Docker

Les conteneurs héritent du routage et du transfert virtuels (VRF) du démon Docker. Pour exécuter des conteneurs dans un VRF distinct, une instance de démon Docker doit être démarrée dans le VRF correspondant. L’instance docker@vrf.service permet de démarrer un démon dans le VRF correspondant. Si le VRF n’est pas spécifié, le VRF par défaut est vrf0.

Le docker.service s’exécute par vrf:none défaut.

Le démon docker d’un VRF spécifique écoute sur la socket correspondante située dans /run/docker-vrf.sock.

Il s’agit du VRF tel qu’on le voit sur Linux et non du VRF Junos OS Evolved. L’utilitaire evo_vrf_name (disponible à partir de Junos OS Evolved version 24.1) peut être utilisé pour rechercher le VRF Linux qui correspond à un VRF Junos OS Evolved.

Le client Docker est associé au démon Docker spécifique au VRF à l’aide des arguments suivants :

Par exemple, pour exécuter un conteneur dans vrf0 , entrez la commande Docker et les arguments suivants :

Note:

Un conteneur ne peut être associé qu’à un seul VRF.

Modification des limites de ressources pour les conteneurs

Les limites de ressources par défaut pour les conteneurs sont contrôlées par le biais d’un fichier situé dans / etc/extensions/platform_attributes. Vous verrez le texte suivant à l’ouverture de ce fichier :

Pour modifier les limites de ressources pour les conteneurs, ajoutez des valeurs aux EXTENSIONS entrées au bas du fichier :

  • EXTENSIONS_FS_DEVICE_SIZE_MIB= Contrôle l’espace de stockage maximal que les conteneurs peuvent utiliser. Entrez la valeur en octets. La valeur par défaut est de 8 Go ou 30 % de la taille totale de /var, selon la valeur la plus petite.

  • EXTENSIONS_CPU_QUOTA_PERCENTAGE= contrôle l’utilisation maximale de l’UC que les conteneurs peuvent utiliser. Entrez une valeur sous forme de pourcentage de l’utilisation du processeur.

  • EXTENSIONS_MEMORY_MAX_MIB= Contrôle la quantité maximale de mémoire physique que les conteneurs peuvent utiliser. Entrez la valeur en octets.

ATTENTION:

Avant de modifier les limites de ressources pour les conteneurs, tenez compte des exigences en matière de processeur et de mémoire pour l’échelle que vous devez prendre en charge dans votre configuration. Faites preuve de prudence lorsque vous augmentez les limites de ressources pour les conteneurs afin d’éviter qu’ils n’affectent votre système.