Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Administrar cn2 de un solo clúster

RESUMEN Aprenda a realizar tareas de administración de ciclo de vida en una instalación de un solo clúster.

Visión general

La forma en que administra un clúster de Kubernetes no cambia cuando CN2 es el complemento de CNI. Una vez instalado CN2, los componentes de CN2 funcionan sin problemas con otros componentes de Kubernetes para proporcionar la infraestructura de red.

El controlador Contrail observa y reacciona constantemente a los eventos de clúster a medida que se producen. Cuando se agrega un nodo nuevo, los componentes del plano de datos de Contrail se implementan automáticamente. Cuando elimina un nodo, el controlador Contrail elimina automáticamente los recursos de red asociados con ese nodo. CN2 funciona sin problemas con kubectl y otras herramientas como Prometheus y Grafana.

Además de las herramientas de administración estándar de Kubernetes, puede usar herramientas y procedimientos específicos de CN2. En esta sección se tratan estas herramientas y procedimientos.

Ejecute comprobaciones de prevuelo y postvuelo en la versión 23.1

Utilice este procedimiento para ejecutar comprobaciones previas o posteriores al vuelo en todos los nodos del clúster.

Las comprobaciones previas le permiten comprobar que los nodos del clúster pueden admitir CN2. La prueba de comprobación para la capacidad de recursos, la compatibilidad del kernel, la accesibilidad de la red y otros requisitos de infraestructura. Normalmente, ejecuta comprobaciones previas al vuelo antes de instalar CN2, pero también puede ejecutar estas comprobaciones después de instalar CN2.

Las comprobaciones posteriores al vuelo le permiten comprobar que la instalación de CN2 funciona correctamente. La prueba de comprobaciones para el estado, la comunicación de pod-a-pod, la accesibilidad del servidor de API y otras funciones básicas. Se ejecutan comprobaciones de postvuelo después de instalar CN2.

Debe crear el controlador ContrailReadiness antes de ejecutar este procedimiento. Consulte Instalación del controlador ContrailReadiness en la versión 23.1.

  1. Localice el directorio contrail-tools/contrail-readiness del paquete descargado CN2 Tools.
  2. Si aún no lo ha hecho, asegúrese de haber rellenado los manifiestos con las credenciales de inicio de sesión del repositorio. Consulte Configurar credenciales de depósito para ver una forma de hacerlo.
  3. Para ejecutar las comprobaciones previas al vuelo:
    Normalmente, se ejecutan comprobaciones previas después de crear el clúster, pero antes de instalar CN2.
    Nota:

    En una implementación de varios clústeres, ejecute comprobaciones previas solo desde el clúster central.

  4. Para ejecutar las comprobaciones posteriores al vuelo:
    Se ejecutan comprobaciones de postvuelo después de instalar CN2.
    Nota:

    En una implementación de varios clústeres, ejecute las comprobaciones posteriores al vuelo solo desde el clúster central.

  5. Lea los resultados de las comprobaciones previas y posteriores al vuelo según corresponda.

    Aborde cualquier error antes de continuar.

    Nota:

    Las comprobaciones de prevuelo y postvuelo no se ejecutan automáticamente después de corregir cualquier error. El resultado seguirá mostrando errores incluso después de que los haya corregido.

Copia de seguridad de la base de datos de Contrail Etcd en la versión 23.1

Utilice este procedimiento de ejemplo en la versión 23.1 para hacer una copia de seguridad de la base de datos de Contrail etcd.

Nota:

Los pasos siguientes hacen referencia a un nodo de controlador Contrail. Un nodo de controlador Contrail es un nodo de trabajo que ejecuta un controlador Contrail.

  1. Instale etcdctl en todos los nodos del controlador Contrail.
    1. Inicie sesión en uno de los nodos del controlador Contrail.
    2. Descargar, etc. En este ejemplo, se descarga al directorio /tmp.
    3. Desenrutar y mover el ejecutable etcd a un directorio de su ruta (por ejemplo, /usr/local/bin).
    4. Compruebe que instaló, etc.
    5. Repita en todos los nodos del controlador Contrail.
  2. Obtenga una lista de los grupos de contrail-etcd.
    Tome nota de los nombres de pod de contrail-etcd, las direcciones IP y los nodos en los que se ejecutan. Necesitará esta información en los próximos pasos.
  3. Copie el certificado etcd y los archivos clave de los pods a los nodos del controlador Contrail.
    En este paso, ejecutamos kubectl en los nodos del controlador Contrail. Suponemos que configuró kubeconfig en estos nodos en su ubicación predeterminada ( ~/.kube/config).
    1. Elija un pod de contrail-etcd (por ejemplo, contrail-etcd-0) e inicie sesión en el nodo del controlador de Contrail que aloja ese pod.
    2. Copie el certificado y los archivos de clave de ese pod de Contrail-etcd al nodo de alojamiento del controlador de Contrail.
      En este ejemplo, copiaremos los certificados y los archivos de claves del pod de contrail-etcd-0 a los archivos locales de este nodo. Esto copia los archivos de certificado y clave del pod de contrail-etcd-0 a ca.crt, tls.crt y tls.key en el directorio actual de este nodo de plano de control.
    3. Repita para cada pod de contrail-etcd.
  4. Copia de seguridad de la base de datos etcd en uno de los nodos del controlador Contrail. Solo necesita hacer una copia de seguridad de la base de datos en un nodo.
    1. Vuelva a iniciar sesión en uno de los nodos del controlador Contrail.
    2. Copia de seguridad de la base de datos etcd.
      En este ejemplo, se guarda la base de datos en /tmp/etcdbackup.db en este nodo del controlador Contrail. donde <etcd-pod-ip> es la dirección IP del pod en este nodo y el <etcd-port> puerto en el que etcd está escuchando (de forma predeterminada, 12379).
  5. Copie la base de datos a una ubicación segura.

Restaurar la base de datos de Contrail Etcd en la versión 23.1

Utilice este procedimiento de ejemplo en la versión 23.1 para restaurar la base de datos de Contrail etcd desde una instantánea en un clúster de Amazon EKS.

Nota:

Los pasos siguientes hacen referencia a un nodo de controlador Contrail. Un nodo de controlador Contrail es un nodo de trabajo que ejecuta un controlador Contrail.

  1. Copie la instantánea que desea restaurar en todos los nodos del controlador Contrail.
    Los pasos a continuación suponen que ha copiado la instantánea en /tmp/etcdbackup.db en todos los nodos del controlador Contrail.
  2. Restaure la instantánea.
    1. Inicie sesión en uno de los nodos del controlador Contrail. En este ejemplo, iniciamos sesión en el nodo del controlador contrail que aloja contrail-etcd-0.
    2. Restaure la base de datos etcd al pod de contrail-etcd-0 en este nodo del controlador de Contrail.
      Esto crea un directorio contrail-etcd-0.etcd en el nodo. donde --name=contrail-etcd-0 se especifica que este comando está restaurando la base de datos a contrail-etcd-0, --initial-cluster=... enumera todos los miembros contrail-etcd del clúster y --initial-advertise-peer-urls=... hace referencia a la dirección IP y el número de puerto que escucha el pod de contrail-etcd-0.
    3. Repita para los otros pods de Contrail-etcd en sus respectivos nodos de controlador Contrail, sustituyendo los --name valores y --initial-advertise-peer-urls por el nombre de pod de Contrail-etcd y la dirección IP respectivos.
  3. Detenga los grupos de contrail-etcd.
    Esto establece las réplicas en 0, lo que efectivamente detiene los pods.
  4. Reemplace los datos de contrail-etcd con los datos de la instantánea.
    1. SSH en uno de los nodos del controlador Contrail.
    2. Reemplace los datos. Recuerde que la instantánea se almacena en el directorio contrail-etcd-<xxx>.etcd.
      donde contrail-etcd-xxx es el nombre del pod de contrail-etcd en el nodo del controlador Contrail en el que haya iniciado sesión.
    3. Repita la repetición para los demás nodos del controlador Contrail.
  5. Inicie los grupos de contrail-etcd.
    Esto establece las réplicas en 3, lo que efectivamente inicia los pods.
  6. Reinicie el apiserver y el controlador de contrail-system.
    Elimine todos los pods de contrail-k8s-apiserver y contrail-k8s-controller. Estos grupos se reiniciarán automáticamente.
  7. Reinicie los vrouters.
    Elimine todos los pods de contrail-vrouter-node. Estos grupos se reiniciarán automáticamente.
  8. Compruebe que todos los pods estén en estado de ejecución.

Actualizar CN2

Utilice este procedimiento para actualizar CN2.

El controlador Contrail consta de despliegues y statefulSets, que están configurados para actualizaciones continuas. Durante la actualización, los pods de cada despliegue y StatefulSet se actualizan uno a la vez. El resto de los pods de esa implementación o statefulSet permanecen operativos. Esto permite que las actualizaciones del controlador Contrail no se golpee.

El plano de datos de CN2 consta de un DaemonSet con un único pod vRouter. Durante el procedimiento de actualización, este único pod se quita y actualiza. Debido a esto, las actualizaciones del plano de datos de CN2 no tienen problemas. Si lo desea, migre el tráfico del nodo que se está actualizando antes de realizar la actualización.

Puede actualizar el software CN2 mediante la porción del contenido de los manifiestos existentes a los nuevos manifiestos y, luego, aplicando los nuevos manifiestos. Todos los manifiestos de CN2 deben hacer referencia a la misma versión de software.

Nota:

Antes de actualizar, compruebe que cada nodo tenga al menos un pod alocatable disponible. El procedimiento de actualización asigna temporalmente un pod adicional, lo que significa que el nodo no puede ejecutarse a la capacidad máxima del pod cuando realice la actualización. Puede comprobar la capacidad del pod en un nodo mediante el kubectl describe node comando.

  1. Descargue los manifiestos de la nueva versión.
  2. Busque los manifiestos (antiguos) que utilizó para crear la instalación de CN2 existente. En este procedimiento, asumimos que es single_cluster_deployer_example.yaml y cert-manager.yaml.
  3. El puerto sobre cualquier cambio de los manifiestos antiguos a los manifiestos nuevos.
    Los nuevos manifiestos pueden contener construcciones específicas de la nueva versión. Identifique todos los cambios que haya realizado en los manifiestos antiguos y cópielos en los manifiestos nuevos. Esto incluye credenciales de depósito, cambios de configuración de red y otras personalizaciones.
    Nota:

    Si tiene una gran cantidad de nodos, use selectores de nodos para agrupar las actualizaciones en un número más manejable.

  4. Actualice CN2.

    Los pods de cada despliegue y conjunto de estado se actualizarán uno a la vez. El vRouter DaemonSet bajará y volverá a subir.

  5. Utilice comandos kubectl estándar para comprobar la actualización.

    Compruebe el estado de los nodos.

    Compruebe el estado de los pods.

    Si algunos pods permanecen inactivos, depurar la instalación como lo hace normalmente. Utilice el kubectl describe comando para ver por qué no se acerca un pod. Un error común es un problema de red o firewall que impide que el nodo llegue al depósito de Juniper Networks.

Desinstalar CN2 en la versión 23.1

Utilice este procedimiento para desinstalar CN2. Debe instalar el controlador ContrailReadiness antes de ejecutar este procedimiento. Consulte Instalación del controlador ContrailReadiness en la versión 23.1.

Esta herramienta elimina lo siguiente:

  • espacio de nombres contrail y recursos que pertenecen a ese espacio de nombres
  • espacio de nombres contrail-system y recursos que pertenecen a ese espacio de nombres
  • contrail-deploy espacio de nombres y recursos que pertenecen a ese espacio de nombres
  • default-global-vrouter-config y default-global-system-config
Nota:

Dado que hay interdependencias entre los componentes de CN2, no intente eliminar los componentes de CN2 individualmente. La herramienta proporcionada desinstala los componentes de CN2 con elegancia y en la secuencia adecuada.

  1. Localice el directorio contrail-tools/contrail-readiness del paquete descargado CN2 Tools.
  2. Si aún no lo ha hecho, asegúrese de haber rellenado los manifiestos con las credenciales de inicio de sesión del repositorio. Consulte Configurar credenciales de depósito para ver una forma de hacerlo.
  3. Si instaló Contrail Analytics, desinstálelo ahora. El script de desinstalación no desinstala recursos en espacios de nombres distintos a los enumerados anteriormente.
  4. Elimine los demás recursos y espacios de nombres (por ejemplo, redes superpuestas) que haya creado después de instalar CN2.
  5. Desinstale CN2.
  6. Consulte los resultados de la desinstalación.
  7. Por último, elimine el espacio de nombres contrail-readiness.