Cómo instalar Contrail Command y aprovisionar su clúster de Contrail
Utilice este documento para instalar Contrail Command, la interfaz gráfica de usuario de Contrail Networking, y aprovisionar sus servidores o máquinas virtuales como nodos en un clúster de Contrail. Los servidores o las máquinas virtuales se aprovisionan en nodos informáticos, nodos de control, nodos de orquestador, nodos de Contrail Insights, nodos de flujos de Contrail Insights o nodos de servicio para crear el clúster de Contrail mediante este procedimiento.
Anteriormente, Contrail Insights y Contrail Insights Flows se llamaban Appformix y Appformix Flows.
Cuándo usar este documento
Recomendamos encarecidamente Contrail Command como interfaz principal para configurar y mantener Contrail Networking.
Por lo tanto, debe completar los procedimientos de este documento como una tarea de configuración inicial en su entorno de Contrail Networking.
Requisitos del servidor
Un entorno de Contrail Networking puede incluir servidores físicos o máquinas virtuales que proporcionen funciones de servidor, aunque recomendamos encarecidamente usar servidores físicos por razones de escalabilidad y disponibilidad siempre que sea posible.
Cada servidor en un entorno Contrail debe tener un mínimo de:
64 GB de memoria.
Disco duro de 300 GB.
4 núcleos de CPU.
Al menos un puerto Ethernet.
Para obtener información adicional sobre los requisitos del servidor para Contrail Networking, consulte Requisitos del servidor y plataformas compatibles.
Requisitos de software
Contrail Command y Contrail Networking
Contrail Command y Contrail Networking se actualizan simultáneamente y siempre ejecutan la misma versión del software de Contrail Networking.
Cada versión de Contrail Networking tiene requisitos de compatibilidad de software basados en la versión de la plataforma de orquestación, el implementador utilizado para implementar la plataforma de orquestación, la versión del sistema operativo del servidor compatible y otros requisitos de software.
Para obtener una lista de las plataformas compatibles con todas las versiones de Contrail Networking y otros requisitos de software específicos del entorno, consulte Lista de plataformas compatibles con Contrail Networking.
Contrail Insights y flujos de Contrail Insights
A partir de la versión 2005 de Contrail, las imágenes de Contrail Insights y Contrail Insights Flows que admiten una versión de Contrail Networking se aprovisionan automáticamente en Contrail Command. Al descargar su versión de Contrail Command, Contrail Command extrae automáticamente las imágenes de Contrail Insights y Contrail Insights Flows para su versión de Contrail Networking desde el registro de Juniper Contrail. Por lo tanto, no es necesario descargar por separado ningún software individual de Contrail Insights ni conocer los números de versión de Contrail Insights o Contrail Insights para su instalación.
Cómo obtener imágenes de Contrail
Los procedimientos utilizados en este documento descargan el software Contrail Command, Contrail Insights y Contrail Insights Flows del registro seguro privado de Juniper Networks Contrail Docker en hub.juniper.net. Envíe un correo electrónico a mailto:contrail-registry@juniper.net para obtener credenciales de acceso a este registro.
Necesitará saber el Container Tags de su imagen de Contrail para recuperar imágenes de Contrail del registro de Contrail. Consulte Acceso del archivo README al Registro Contrail 21XX.
Las imágenes de Contrail Networking también están disponibles en la página de descargas de Contrail. Introduzca Contrail Networking como nombre del producto.
Las imágenes de Contrail Insights y Contrail Insights Flows también están disponibles en la página de descarga de Contrail Insights. Introduzca Contrail Insights como nombre del producto.
Cómo instalar Contrail Command
Contrail Command es una interfaz gráfica de usuario de panel único para Contrail Networking. Para una experiencia optimizada de Contrail Networking, recomendamos encarecidamente instalar Contrail Command antes de crear los clústeres de Contrail. Contrail Command se instala siguiendo estas instrucciones.
Para obtener más información sobre Contrail Command, consulte Descripción de los componentes de Contrail Networking.
- Antes de empezar
- Preparación del servidor de comandos Contrail para la instalación
- Instalación de Contrail Command
Antes de empezar
Asegúrese de que el servidor de Contrail Command, el servidor que alojará Contrail Command, sea una máquina virtual (VM) o un servidor x86 físico que cumpla estos requisitos mínimos del sistema:
4 vCPU
32 GB de RAM
100 GB de almacenamiento en disco con todo el almacenamiento del usuario en la partición "/".
Si la partición "/home" existe, elimínela y aumente la partición "/" en la cantidad de almacenamiento liberado.
Cumple con las especificaciones enumeradas en Requisitos del servidor.
Ejecuta una versión de CentOS que admite su versión de Contrail Networking.
Para obtener una lista de las versiones de CentOS compatibles con Contrail Networking y combinaciones de plataformas de orquestación, consulte Lista de plataformas compatibles con Contrail Networking.
Puede instalar CentOS con paquetes actualizados usando el
yum update
comando.Tiene acceso al registro de Contrail Container en hub.juniper.net. Este acceso es necesario porque el implementador de Contrail Command, que incluye las imágenes de la ventana acoplable de Contrail Command, se recupera de este registro durante este procedimiento de instalación.
Si no tiene acceso al registro de Contrail Container, envíe un correo electrónico a mailto:contrail-registry@juniper.net para obtener las credenciales de acceso. Consulte Acceso del archivo README al Registro Contrail 21XX para obtener información adicional acerca del acceso a este Registro.
Tiene una conexión activa a Internet.
Incluye al menos una interfaz IP activa conectada a la red de administración. Contrail Command administra Contrail y los clústeres del orquestador a través de una interfaz IP de administración.
Obtenga la etiqueta de contenedor para la versión que está instalando. Es necesaria una etiqueta contenedor para identificar los archivos contenedores de Contrail Command en el repositorio de hub.juniper.net que se instalan durante este procedimiento.
La etiqueta de contenedor de cualquier imagen basada en Contrail Release 21 se puede encontrar en README Access to Contrail Registry 21XX.
Preparación del servidor de comandos Contrail para la instalación
Para preparar los servidores o máquinas virtuales para la instalación:
Instalación de Contrail Command
Para instalar Contrail Command en un servidor:
Cómo aprovisionar servidores en el clúster de Contrail
Utilice este procedimiento para aprovisionar servidores en el clúster de Contrail. Un clúster de Contrail es una colección de servidores interconectados que se han aprovisionado como nodos de proceso, nodos de control, nodos de orquestador, nodos de Contrail Insights, nodos de flujos de Contrail Insights o nodos de servicio en un entorno de red en la nube.
Antes de empezar
Antes de empezar:
Planee la topología.
Asegúrese de que se establezca una red de administración fuera de banda.
Asegúrese de que Contrail Command esté instalado. Consulte Cómo instalar Contrail Command.
Asegúrese de que todos los servidores que alojan funciones de clúster de Contrail cumplen las especificaciones enumeradas en Requisitos del servidor.
Cómo aprovisionar el clúster de Contrail
Para aprovisionar el clúster de Contrail:
Archivos command_servers.yml de ejemplo para instalar Contrail Command
- Archivo de command_servers.yml mínimo
- Complete command_servers.yml archivo
- Recuperación ante desastres y solución de problemas
Archivo de command_servers.yml mínimo
El siguiente archivo de ejemplo tiene la configuración mínima que necesita al instalar Contrail Command.
Por motivos de seguridad, recomendamos encarecidamente crear combinaciones únicas de nombre de usuario y contraseña en su entorno. Las combinaciones de nombre de usuario y contraseña se proporcionan en este ejemplo solo con fines ilustrativos.
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow command_servers: server1: ip: <IP Address> # IP address of server where you want to install Contrail Command connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> registry_insecure: false container_registry: hub.juniper.net/contrail container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail contrail_config: database: type: postgres dialect: postgres password: contrail123 keystone: assignment: data: users: admin: password: contrail123 insecure: true client: password: contrail123
Complete command_servers.yml archivo
El siguiente archivo de ejemplo contiene una lista exhaustiva de configuraciones y parámetros auxiliares que puede utilizar al instalar Contrail Command.
Por motivos de seguridad, recomendamos encarecidamente crear combinaciones únicas de nombre de usuario y contraseña en su entorno. Las combinaciones de nombre de usuario y contraseña se proporcionan en este ejemplo solo con fines ilustrativos.
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow # User defined volumes #user_command_volumes: # - /var/tmp/contrail:/var/tmp/contrail command_servers: server1: ip: <IP Address> connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> # Specify either container_path #container_path: /root/contrail-command-051618.tar # or registry details and container_name registry_insecure: false container_registry: hub.juniper.net/contrail container_name: contrail-command container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail # contrail command container configurations given here go to /etc/contrail/contrail.yml contrail_config: # Database configuration. PostgreSQL supported database: type: postgres dialect: postgres host: localhost user: root password: contrail123 name: contrail_test # Max Open Connections for DB Server max_open_conn: 100 connection_retries: 10 retry_period: 3s # Log Level log_level: debug # Cache configuration cache: enabled: true timeout: 10s max_history: 100000 rdbms: enabled: true # Server configuration server: enabled: true read_timeout: 10 write_timeout: 5 log_api: true address: ":9091" # TLS Configuration tls: enabled: true key_file: /usr/share/contrail/ssl/cs-key.pem cert_file: /usr/share/contrail/ssl/cs-cert.pem # Enable GRPC or not enable_grpc: false # Static file config # key: URL path # value: file path. (absolute path recommended in production) static_files: /: /usr/share/contrail/public # API Proxy configuration # key: URL path # value: String list of backend host #proxy: # /contrail: # - http://localhost:8082 notify_etcd: false # VNC Replication enable_vnc_replication: true # Keystone configuration keystone: local: true assignment: type: static data: domains: default: &default id: default name: default projects: admin: &admin id: admin name: admin domain: *default demo: &demo id: demo name: demo domain: *default users: admin: id: admin name: Admin domain: *default password: contrail123 email: admin@juniper.nets roles: - id: admin name: admin project: *admin bob: id: bob name: Bob domain: *default password: bob_password email: bob@juniper.net roles: - id: Member name: Member project: *demo store: type: memory expire: 36000 insecure: true authurl: https://localhost:9091/keystone/v3 # disable authentication with no_auth true and comment out keystone configuraion. #no_auth: true insecure: true etcd: endpoints: - localhost:2379 username: "" password: "" path: contrail watcher: enabled: false storage: json client: id: admin password: contrail123 project_name: admin domain_id: default schema_root: / endpoint: https://localhost:9091 compilation: enabled: false # Global configuration plugin_directory: 'etc/plugins/' number_of_workers: 4 max_job_queue_len: 5 msg_queue_lock_time: 30 msg_index_string: 'MsgIndex' read_lock_string: "MsgReadLock" master_election: true # Plugin configuration plugin: handlers: create_handler: 'HandleCreate' update_handler: 'HandleUpdate' delete_handler: 'HandleDelete' agent: enabled: true backend: file watcher: polling log_level: debug # The following are optional parameters used to patch/cherrypick # revisions into the contrail-ansible-deployer sandbox. These configs # go into the /etc/contrail/contrail-deploy-config.tmpl file # cluster_config: # ansible_fetch_url: "https://review.opencontrail.org/Juniper/contrail-ansible-deployer refs/changes/80/40780/20" # ansible_cherry_pick_revision: FETCH_HEAD # ansible_revision: GIT_COMMIT_HASH
Recuperación ante desastres y solución de problemas
RESUMEN En esta sección se enumeran los errores más frecuentes y los escenarios de error y los procedimientos para corregirlos.
Problema
Descripción
Recovering the Galera Cluster Upon Server Shutdown—En una configuración de alta disponibilidad de OpenStack aprovisionada mediante Kolla y OpenStack Rocky, si cierra todos los servidores al mismo tiempo y los abre más tarde, el clúster de Galera falla.
Solución
Para recuperar el clúster de Galera, siga estos pasos:
Edite el archivo /etc/kolla/mariadb/galera.cnf para eliminar la
wsrep
dirección en uno de los controladores como se muestra aquí.wsrep_cluster_address = gcomm:// #wsrep_cluster_address = gcomm://10.x.x.8:4567,10.x.x.10:4567,10.x.x.11:4567
Nota:Si todos los controladores se apagan en el escenario administrado al mismo tiempo, debe seleccionar el controlador que se cerró en último lugar.
Docker inicie mariadb en el controlador en el que editó el archivo.
Espere un par de minutos, asegúrese de que el contenedor mariadb no se reinicie y, a continuación, inicie mariadb en los controladores restantes.
Restaure los cambios del archivo /etc/kolla/mariadb/galera.cnf y reinicie el contenedor mariadb en el controlador seleccionado anteriormente.
Problema
Descripción
Containers from Private Registry Not Accessible: es posible que tenga una situación en la que no se pueda acceder a los contenedores extraídos de un registro privado denominado CONTAINER_REGISTRY.
Solución
Para resolverlo, compruebe que REGISTRY_PRIVATE_INSECURE esté establecido en True.