Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Installation de Contrail avec OpenStack et Kolla Ansible

Note:

Nous vous recommandons d’utiliser Contrail Command pour ajouter des nœuds de calcul aux clusters Contrail existants dans la plupart des déploiements Contrail Networking. Reportez-vous à la section Ajout d’un nouveau nœud de calcul à un cluster Contrail existant à l’aide de la commande Contrail Command.

La procédure décrite dans ce document ne doit être effectuée que par des administrateurs réseau possédant une expertise significative en matière de fichiers YAML dans des environnements n’utilisant pas l’interface graphique de Contrail Command.

L’objectif de cette rubrique est d’installer Contrail Networking avec OpenStack, à l’aide du playbook contrail-kolla-ansibleKolla Ansible .

Kolla est un projet OpenStack qui fournit des outils permettant de créer des images de conteneur pour les services OpenStack. Kolla Ansible fournit des playbooks Ansible pour déployer les images Kolla.

Le contrail-kolla-ansible playbook fonctionne conjointement avec contrail-ansible-deployer pour installer des conteneurs OpenStack et Contrail Networking.

Reportez-vous à la section Installation d’un cluster Contrail à l’aide de Contrail Command et instances.yml pour déployer un cluster Contrail à l’aide de Contrail Command.

Suivez la procédure pour déployer des conteneurs Kolla à l’aide contrail-kolla-ansible de conteneurs et des conteneurs Contrail Networking à l’aide de contrail-ansible-deployer:

Configurer l’hôte de base

Mettez à jour CentOS et la version du noyau. Pour obtenir la liste des plates-formes prises en charge, reportez-vous à https://www.juniper.net/documentation/en_US/release-independent/contrail/topics/reference/contrail-supported-platforms.pdf.

Le vRouter a une dépendance avec le noyau hôte.

Pour configurer l’hôte de base :

  1. Téléchargez le package d’installation d’Ansible Deployer à partir de la page Téléchargements de Contrail .

  2. Installez Ansible.

    yum -y install epel-release

    yum -y install git ansible-2.7.10

  3. Installez python-pip.

    yum install -y python-pip

  4. Exécutez les commandes suivantes.

    yum -y remove PyYAML python-requests

    pip install PyYAML requests

  5. Décompressez le fichier tgz.

    - tar xvf contrail-ansible-deployer-19<xx>.<NN>.tgz

    Le fichier instances.yaml se trouve à l’emplacementcontrail-ansible-deployer/config/

  6. Configurez les paramètres Contrail et Kolla dans le fichier instances.yaml, en suivant les instructions suivantes :

    • La section Configuration du fournisseur (provider_config) fait référence au fournisseur cloud sur lequel le cluster Contrail sera hébergé et contient tous les paramètres pertinents pour le fournisseur. Pour les serveurs bare metal, le fournisseur est bms.

    • Cette kolla_globals section fait référence aux services OpenStack. Pour plus d’informations sur tous les kolla_globals, voir https://github.com/Juniper/contrail-kolla-ansible/.../globals.yml.

    • Des configurations supplémentaires de Kolla (contrail-kolla-ansible) sont possibles en tant que contrail_additions. Pour plus d’informations sur tout ce qui est possible contrail_additions à Kolla, voir https://github.com/Juniper/contrail-kolla-ansible/.../all.yml.

    • Cette contrail_configuration section contient les paramètres des services Contrail.

      • CONTAINER_REGISTRY spécifie le registre à partir duquel extraire les conteneurs Contrail. Il peut être défini sur votre registre Docker local si vous créez vos propres conteneurs. Si un registre n’est pas spécifié, il essaiera d’extraire les conteneurs du hub Docker.

        Si un registre personnalisé est spécifié, spécifiez-le également sous kolla_globals .contrail_docker_registry

      • CONTRAIL_VERSION, s’il n’est pas spécifié, utilisera par défaut la balise « latest ».

      • Pour plus d’informations sur tous les paramètres possibles pour contrail_configuration, reportez-vous à la section https://github.com/tungstenfabric/tf-container-builder/blob/master/containers/base/common.sh.

      • Vous devez spécifier le roles dans le fichier instances.yaml . Dans le cas contraire, la procédure d’installation échouera.

      • S’il existe des valeurs spécifiques à l’hôte par hôte, par exemple, si les noms des interfaces utilisées pour « network_interface » sont différents sur les serveurs de votre cluster, utilisez l’exemple de configuration dans Exemple de configuration pour Multi Node OpenStack HA et Contrail (multi interface).

      • De nombreux paramètres sont automatiquement dérivés des valeurs par défaut saines (fonctionnement de la première configuration). Vous pouvez spécifier explicitement des variables pour remplacer les valeurs dérivées si nécessaire. Examinez le code pour voir la logique de dérivation.

    Exemple : instances.yaml

    Cet exemple est une configuration minimale pour un cluster tout-en-un à nœud unique, à interface unique et à un seul nud.

    Exemple : instances.yaml

    Cet exemple est une configuration plus élaborée pour un cluster tout-en-un à nœud unique, à interface unique et à distance.

  7. Exécutez les commandes suivantes à partir du contrail-ansible-deployer dossier :

    • ansible-playbook -e orchestrator=openstack -i inventory/ playbooks/configure_instances.yml

    • ansible-playbook -i inventory/ playbooks/install_openstack.yml

    • ansible-playbook -e orchestrator=openstack -i inventory/ playbooks/install_contrail.yml

  8. Ouvrez le navigateur Web et tapez https://contrail-server-ip:8143 pour accéder à l’interface utilisateur Web Contrail.

    Le nom d’utilisateur de connexion par défaut est admin. Utilisez le même mot de passe que celui qui a été saisi à l’étape 6

Exemple de configuration d’interfaces multiples pour OpenStack HA multinœud et Contrail

Il s’agit d’un exemple de configuration pour un déploiement à interfaces multiples et à plusieurs nœuds d’OpenStack et de Contrail Networking à haute disponibilité. Utilisez cet exemple pour configurer des paramètres spécifiques à votre système.

Pour plus d’informations ou pour connaître les mises à jour récentes, reportez-vous à la rubrique github Exemple de configuration pour Multi Node OpenStack HA et Contrail (multi interface).

Exemple de configuration : interfaces multiples

Exemple de configuration d’interface unique pour Multinode OpenStack HA et Contrail

Il s’agit d’un exemple de configuration pour un déploiement à plusieurs nuds et interface unique d’OpenStack et de Contrail Networking haute disponibilité. Utilisez cet exemple pour configurer des paramètres spécifiques à votre système.

Pour plus d’informations ou pour connaître les mises à jour récentes, reportez-vous à la rubrique github Exemple de configuration pour Multi Node OpenStack HA et Contrail (interface unique).

Exemple de configuration : interface unique

Note:

Remplacez-le <contrail_version> par la valeur correcte contrail_container_tag pour votre version Contrail. Les valeurs respectives contrail_container_tag sont répertoriées dans README Access to Contrail Registry 19XX.

Foire aux questions

Cette section présente certaines situations d’erreur courantes et fournit des conseils sur la façon de résoudre la condition d’erreur.

Utilisation de paramètres spécifiques à l’hôte

Vous pouvez avoir une situation où vous devez spécifier des paramètres spécifiques à l’hôte, par exemple, les noms d’interface sont différents pour les différents serveurs du cluster. Dans ce cas, vous pouvez spécifier les noms individuels sous chaque rôle, et le paramètre le plus spécifique est prioritaire.

Par exemple, s’il n’y a pas de paramètre « network_interface » sous le rôle « openstack » par exemple « bms1 », alors il prendra son paramètre de la variable globale.

Un exemple détaillé est disponible à l’adresse suivante : Exemple de configuration pour Multi Node OpenStack HA et Contrail.

Conteneurs du registre privé non accessibles

  1. Vous pouvez vous retrouver dans une situation dans laquelle les conteneurs extraits d’un registre privé nommé CONTAINER_REGISTRY ne sont pas accessibles.

  2. Pour résoudre le problème, vérifiez que REGISTRY_PRIVATE_INSECURE est défini sur True.

Erreur : Échec de l’insertion du module noyau vrouter

  1. Vous pouvez avoir une situation dans laquelle le module vrouter n’est pas installé sur les nœuds de calcul, avec le conteneur vrouter dans un état d’erreur et les erreurs sont affichées dans les journaux Docker.

  2. Dans cette version, le module vrouter nécessite que la version du noyau hôte soit 3.10.0-957.11.6.el7.x86_64. Pour obtenir cette version du noyau, avant d’exécuter le provisionnement, installez la version du noyau sur les nœuds cibles.

Erreur fatale lorsque vrouter ne spécifie pas OpenStack

  1. Vous pouvez rencontrer une erreur fatale lorsque vrouter doit être provisionné sans nova-compute.

  2. Il existe un cas d’utilisation dans lequel vrouter doit être provisionné sans être accompagné par nova-compute. Par conséquent, le « openstack_compute » n’est pas automatiquement déduit lorsque le rôle « vrouter » est spécifié. Pour résoudre ce problème, le rôle « openstack_compute » doit être explicitement indiqué avec « vrouter ».

    Pour plus d’informations sur ce cas d’utilisation, reportez-vous au bogue #1756133.

Besoin de HAProxy et d’IP virtuelle sur un seul cluster OpenStack

Par défaut, tous les services OpenStack écoutent sur l’interface IP fournie par les kolla_internal_vip_address/network_interface variables de la kolla_globals section config/instances.yaml. Dans la plupart des cas, cela correspond au réseau ctrl-data, ce qui signifie que même Horizon ne fonctionnera plus que sur le réseau ctrl-data. Kolla ne fournit un accès à Horizon sur le réseau de gestion qu’en utilisant HAProxy et keepalived. L’activation de keepalived nécessite une adresse IP virtuelle pour VRRP, et il ne peut pas s’agir de l’adresse IP de l’interface. Il n’y a aucun moyen d’activer HAProxy sans activer keepalived lors de l’utilisation des paramètres de configuration Kolla. Pour cette raison, vous devez fournir deux adresses IP virtuelles : une sur la gestion (kolla_external_vip_address) et une sur ctrl-data-network (kolla_internal_vip_address). Avec cette configuration, Horizon sera accessible sur le réseau de gestion à l’aide du kolla_external_vip_addressfichier .

Utilisation du conteneur kolla_toolbox pour exécuter des commandes OpenStack

Le répertoire /etc/kolla/kolla-toolbox de l’hôte de base sur lequel s’exécutent les conteneurs OpenStack est monté et accessible depuis /var/lib/kolla/config_files l’intérieur du kolla_toolbox conteneur. Si vous avez besoin d’autres fichiers lors de l’exécution de commandes OpenStack, par exemple la commande openstack image create a besoin d’un fichier image, vous pouvez copier les fichiers appropriés dans le /etc/kolla/kolla-toolbox répertoire de l’hôte de base et les utiliser à l’intérieur du conteneur.

L’exemple suivant montre comment exécuter des commandes OpenStack de cette manière :