documentation.suse.com / Documentación de SUSE Edge / Guías de inicio rápido / Clústeres independientes con Edge Image Builder

3 Clústeres independientes con Edge Image Builder

Edge Image Builder (EIB) es una herramienta que agiliza el proceso de generación de imágenes de disco personalizadas y listas para arrancar (CRB) para equipos de arranque, incluso en entornos totalmente aislados. EIB se utiliza para crear imágenes de despliegue para su uso en las tres huellas de despliegue de SUSE Edge, ya que es lo suficientemente flexible como para ofrecer las personalizaciones más pequeñas, como añadir un usuario o configurar la zona horaria, a través de una imagen configurada de forma integral que establece, por ejemplo, configuraciones de red complejas, despliega clústeres de Kubernetes de varios nodos, despliega cargas de trabajo de clientes y se registra en la plataforma de gestión centralizada a través de Rancher/Elemental y SUSE Multi-Linux Manager. EIB se ejecuta como una imagen de contenedor, lo que lo hace increíblemente portátil entre plataformas y garantiza que todas las dependencias necesarias sean autónomas, con un impacto mínimo en los paquetes instalados del sistema que se utiliza para operar la herramienta.

Nota
Nota

En escenarios de varios nodos, EIB despliega automáticamente MetalLB y Endpoint Copier Operator para que los hosts aprovisionados con la misma imagen compilada se unan automáticamente a un clúster de Kubernetes.

Para obtener más información, lea la introducción de Edge Image Builder (Capítulo 11, Edge Image Builder).

Aviso
Aviso

Edge Image Builder 1.2.1 admite la personalización de imágenes de SUSE Linux Micro 6.1. En versiones anteriores, como SUSE Linux Enterprise Micro 5.5 o 6.0, no se admite.

3.1 Requisitos previos

Nota
Nota

Para fines no relacionados con la producción, se puede utilizar openSUSE Leap 15.6 u openSUSE Tumbleweed como equipo host de creación. Otros sistemas operativos pueden funcionar, siempre que se disponga de un entorno de ejecución de contenedores compatible.

3.1.1 Obtención de la imagen de EIB

La imagen del contenedor de EIB está disponible públicamente y se puede descargar desde el registro de SUSE Edge ejecutando el siguiente comando en el host de creación de imágenes:

podman pull registry.suse.com/edge/3.3/edge-image-builder:1.2.1

3.2 Creación del directorio de configuración de imágenes

Dado que EIB se ejecuta dentro de un contenedor, es necesario montar un directorio de configuración desde el host, lo que le permite especificar la configuración deseada. Así, durante el proceso de creación, EIB tiene acceso a cualquier archivo de entrada y artefactos de apoyo necesarios. Este directorio debe tener una estructura específica. Vamos a crearlo suponiendo que este directorio existirá en su directorio de inicio y se llamará "eib":

export CONFIG_DIR=$HOME/eib
mkdir -p $CONFIG_DIR/base-images

En el paso anterior creamos el directorio "base-images" donde se alojará la imagen de entrada de SUSE Linux Micro 6.1. Ahora, nos aseguraremos de que la imagen se copie en el directorio de configuración:

cp /path/to/SL-Micro.x86_64-6.1-Base-SelfInstall-GM.install.iso $CONFIG_DIR/base-images/slemicro.iso
Nota
Nota

Durante la ejecución de EIB, la imagen base original no se modifica; se crea una nueva versión personalizada con la configuración deseada en la raíz del directorio de configuración de EIB.

El directorio de configuración en este momento debería tener el siguiente aspecto:

└── base-images/
    └── slemicro.iso

3.3 Creación del archivo de definición de imagen

El archivo de definición describe la mayoría de las opciones configurables que admite Edge Image Builder. Encontrará un ejemplo completo de las opciones aquí. Le recomendamos que consulte la guía original sobre creación de imágenes para ver ejemplos más completos que los que se muestran a continuación. Comencemos con un archivo de definición muy básico para nuestra imagen del sistema operativo:

cat << EOF > $CONFIG_DIR/iso-definition.yaml
apiVersion: 1.2
image:
  imageType: iso
  arch: x86_64
  baseImage: slemicro.iso
  outputImageName: eib-image.iso
EOF

Esta definición especifica que estamos generando una imagen de salida para un sistema basado en AMD64/Intel 64. Para modificaciones posteriores, se utilizará como base una imagen iso denominada slemicro.iso, que se espera que se encuentre en $CONFIG_DIR/base-images/slemicro.iso. También indica que, una vez que EIB haya terminado de modificarla, la imagen de salida se llamará eib-image.iso y, por defecto, se ubicará en $CONFIG_DIR.

Ahora, nuestra estructura de directorio debe tener este aspecto:

├── iso-definition.yaml
└── base-images/
    └── slemicro.iso

En las siguientes secciones veremos algunos ejemplos de operaciones comunes:

3.3.1 Configuración de usuarios del sistema operativo

EIB permite preconfigurar la información de inicio de sesión de los usuarios, como las contraseñas o las claves SSH, incluyendo la configuración de una contraseña raíz fija. Como parte de este ejemplo, vamos a fijar la contraseña raíz, y el primer paso es utilizar OpenSSL para crear una contraseña cifrada unidireccional:

openssl passwd -6 SecurePassword

Se obtendrá un resultado similar a:

$6$G392FCbxVgnLaFw1$Ujt00mdpJ3tDHxEg1snBU3GjujQf6f8kvopu7jiCBIhRbRvMmKUqwcmXAKggaSSKeUUOEtCP3ZUoZQY7zTXnC1

A continuación, podemos añadir una sección en el archivo de definición llamada operatingSystem con una matriz users en su interior. El archivo resultante debería tener el siguiente aspecto:

apiVersion: 1.2
image:
  imageType: iso
  arch: x86_64
  baseImage: slemicro.iso
  outputImageName: eib-image.iso
operatingSystem:
  users:
    - username: root
      encryptedPassword: $6$G392FCbxVgnLaFw1$Ujt00mdpJ3tDHxEg1snBU3GjujQf6f8kvopu7jiCBIhRbRvMmKUqwcmXAKggaSSKeUUOEtCP3ZUoZQY7zTXnC1
Nota
Nota

También es posible añadir usuarios adicionales, crear los directorios de inicio, establecer identificadores de usuario, añadir autenticación mediante claves SSH y modificar la información de los grupos. Consulte la guía original sobre creación de imágenes para ver más ejemplos.

3.3.2 Configuración de la hora del sistema operativo

La sección time es opcional, pero se recomienda encarecidamente configurarla para evitar posibles problemas con los certificados y la desviación del reloj. EIB configurará chronyd y /etc/localtime en función de los parámetros aquí indicados.

operatingSystem:
  time:
    timezone: Europe/London
    ntp:
      forceWait: true
      pools:
        - 2.suse.pool.ntp.org
      servers:
        - 10.0.0.1
        - 10.0.0.2
  • timezone: especifica la zona horaria en el formato "Región/Localidad" (por ejemplo, "Europa/Madrid"). Para ver la lista completa, ejecute timedatectl list-timezones en un sistema Linux.

  • ntp: define los atributos relacionados con la configuración de NTP (usando chronyd).

  • forceWait: solicita que chronyd intente sincronizar las fuentes de tiempo antes de iniciar otros servicios, con un tiempo de espera de 180 segundos.

  • pools: especifica una lista de grupos que chronyd usará como fuentes de datos (utilizando iburst para mejorar el tiempo que tarda la sincronización inicial).

  • servers: especifica una lista de servidores que chronyd usará como fuentes de datos (utilizando iburst para mejorar el tiempo que tarda la sincronización inicial).

Nota
Nota

Los valores proporcionados en este ejemplo son solo ilustrativos. Ajústelos para que se adapten a sus necesidades específicas.

3.3.3 Adición de certificados

Los archivos de certificado con la extensión .pem o .crt almacenados en el directorio certificates se instalarán en el almacén de certificados del sistema del nodo:

.
├── definition.yaml
└── certificates
    ├── my-ca.pem
    └── my-ca.crt

Consulte la guía Securing Communication with TLS Certificate (Protección de las comunicaciones con un certificado TLS) para obtener más información.

3.3.4 Configuración de paquetes RPM

Una de las principales características de EIB es que proporciona un mecanismo para añadir paquetes de software adicionales a la imagen, de modo que, una vez completada la instalación, el sistema puede aprovechar los paquetes instalados de inmediato. EIB permite a los usuarios especificar lo siguiente:

  • Paquetes por su nombre dentro de una lista en la definición de imagen

  • Repositorios de red para buscar estos paquetes

  • Credenciales del Centro de servicios al cliente de SUSE (SCC) para buscar los paquetes mostrados en los repositorios oficiales de SUSE

  • Mediante un directorio $CONFIG_DIR/rpms, paquetes RPM personalizados y locales que no existen en los repositorios de red

  • Mediante el mismo directorio ($CONFIG_DIR/rpms/gpg-keys), claves GPG para habilitar la validación de paquetes de terceros

EIB ejecuta un proceso de resolución de paquetes en el momento de la creación de la imagen, tomando la imagen base como entrada, e intentará extraer e instalar todos los paquetes suministrados, ya sea especificados a través de la lista o proporcionados localmente. EIB descarga todos los paquetes, incluidas las dependencias, en un repositorio que existe dentro de la imagen de salida e indica al sistema que los instale durante el primer proceso de arranque. Realizar este proceso durante la creación de la imagen garantiza que los paquetes se instalarán correctamente durante el primer arranque en la plataforma deseada, por ejemplo, el nodo del perímetro. Esto también es útil en entornos en los que se desea integrar los paquetes adicionales en la imagen en lugar de descargarlos a través de la red durante el funcionamiento, por ejemplo, en entornos de red restringidos o aislados.

Como ejemplo de demostración simple, vamos a instalar el paquete RPM nvidia-container-toolkit que se encuentra en el repositorio NVIDIA de terceros:

  packages:
    packageList:
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64

El archivo de definición resultante tiene el siguiente aspecto:

apiVersion: 1.2
image:
  imageType: iso
  arch: x86_64
  baseImage: slemicro.iso
  outputImageName: eib-image.iso
operatingSystem:
  users:
    - username: root
      encryptedPassword: $6$G392FCbxVgnLaFw1$Ujt00mdpJ3tDHxEg1snBU3GjujQf6f8kvopu7jiCBIhRbRvMmKUqwcmXAKggaSSKeUUOEtCP3ZUoZQY7zTXnC1
  packages:
    packageList:
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64

Este es un ejemplo sencillo. Si necesita uno más detallad, descargue la clave de firma del paquete NVIDIA antes de ejecutar la generación de la imagen:

$ mkdir -p $CONFIG_DIR/rpms/gpg-keys
$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey > $CONFIG_DIR/rpms/gpg-keys/nvidia.gpg
Aviso
Aviso

La adición de paquetes RPM adicionales mediante este método permite añadir componentes de terceros compatibles o paquetes proporcionados (y mantenidos) por el usuario. Este mecanismo no debe utilizarse para añadir paquetes que normalmente no serían compatibles con SUSE Linux Micro. Si se utiliza este mecanismo para añadir componentes de los repositorios de openSUSE (que no son compatibles), incluidos los de versiones más recientes o paquetes de servicio, es posible que se obtenga una configuración no compatible, especialmente si al resolver las dependencias se sustituyen partes fundamentales del sistema operativo, aunque el sistema resultante parezca funcionar según lo esperado. Si no está seguro, póngase en contacto con su representante de SUSE para que le ayude a determinar la compatibilidad de la configuración que desea.

Nota
Nota

Encontrará una guía más completa con ejemplos adicionales en la guía original sobre instalación de paquetes.

3.3.5 Configuración del clúster de Kubernetes y las cargas de trabajo de los usuarios

Otra característica de EIB es la posibilidad de utilizarlo para automatizar el despliegue de clústeres de Kubernetes de alta disponibilidad, tanto de un solo nodo como de varios nodos, que se "arrancan en el lugar" (es decir, que no requieren infraestructura de gestión centralizada para coordinarse). Este enfoque está pensado principalmente para despliegues en entornos aislados o con restricciones de red, pero también sirve como una forma de arrancar rápidamente clústeres independientes, incluso si se dispone de acceso completo y sin restricciones a la red.

Este método no solo permite el despliegue del sistema operativo personalizado, sino también la posibilidad de especificar la configuración de Kubernetes, cualquier componente adicional en capas a través de charts de Helm y cualquier carga de trabajo del usuario a través de los manifiestos de Kubernetes proporcionados. Sin embargo, el principio de diseño detrás del uso de este método es que asumimos por defecto que el usuario desea usar un entorno aislado y, por lo tanto, cualquier elemento especificado en la definición de la imagen se incorporará a la imagen y a las cargas de trabajo proporcionadas por el usuario. EIB se asegurará de que cualquier imagen descubierta que sea requerida por las definiciones proporcionadas se copie localmente y que el registro de imágenes integrado las proporcione al sistema desplegado resultante.

En el siguiente ejemplo, vamos a utilizar nuestra definición de imagen existente y especificaremos una configuración de Kubernetes (no se muestra una lista de los sistemas y sus funciones, por lo que entenderemos por defecto que se trata de un solo nodo). Se indicará a EIB que aprovisione un clúster RKE2 Kubernetes de un solo nodo. Para mostrar la automatización tanto del despliegue de las cargas de trabajo proporcionadas por el usuario (a través del manifiesto) como de los componentes en capas (a través de Helm), vamos a instalar KubeVirt a través del chart de Helm de SUSE Edge, así como NGINX a través de un manifiesto de Kubernetes. La configuración adicional que debemos añadir a la definición de imagen existente es la siguiente:

kubernetes:
  version: v1.32.4+rke2r1
  manifests:
    urls:
      - https://k8s.io/examples/application/nginx-app.yaml
  helm:
    charts:
      - name: kubevirt
        version: 303.0.0+up0.5.0
        repositoryName: suse-edge
    repositories:
      - name: suse-edge
        url: oci://registry.suse.com/edge/charts

El archivo de definición completo resultante debería tener ahora este aspecto:

apiVersion: 1.2
image:
  imageType: iso
  arch: x86_64
  baseImage: slemicro.iso
  outputImageName: eib-image.iso
operatingSystem:
  users:
    - username: root
      encryptedPassword: $6$G392FCbxVgnLaFw1$Ujt00mdpJ3tDHxEg1snBU3GjujQf6f8kvopu7jiCBIhRbRvMmKUqwcmXAKggaSSKeUUOEtCP3ZUoZQY7zTXnC1
  packages:
    packageList:
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64
kubernetes:
  version: v1.32.4+k3s1
  manifests:
    urls:
      - https://k8s.io/examples/application/nginx-app.yaml
  helm:
    charts:
      - name: kubevirt
        version: 303.0.0+up0.5.0
        repositoryName: suse-edge
    repositories:
      - name: suse-edge
        url: oci://registry.suse.com/edge/charts
Nota
Nota

Encontrará más ejemplos como despliegues de varios nodos, redes personalizadas y opciones/valores de chart de Helm en la documentación original.

3.3.6 Configuración de la red

En el último ejemplo de esta guía rápida, vamos a configurar la red que se activará cuando se aprovisione un sistema con la imagen generada por EIB. Es importante comprender que, a menos que se proporcione una configuración de red, el modelo predeterminado es que se utilizará DHCP en todas las interfaces detectadas en el momento del arranque. Sin embargo, no siempre se trata de la configuración deseable, especialmente si DHCP no está disponible y es necesario proporcionar configuraciones estáticas, o si es necesario configurar estructuras de red más complejas (por ejemplo, enlaces, LACP y VLAN) o si hay que anular ciertos parámetros (por ejemplo, nombres de host, servidores DNS y rutas).

EIB ofrece la posibilidad de proporcionar configuraciones por nodo (donde el sistema en cuestión se identifica de forma única por su dirección MAC) o de sustituir la existente y proporcionar una configuración idéntica a cada equipo, lo que resulta más útil cuando se desconocen las direcciones MAC del sistema. EIB utiliza una herramienta adicional llamada Network Manager Configurator, o nmc para abreviar, que es una herramienta creada por el equipo de SUSE Edge para permitir la aplicación de configuraciones de red personalizadas basadas en el esquema de red declarativo nmstate.io, y que en el momento del arranque identificará el nodo en el que se está iniciando y aplicará la configuración de red deseada antes de que se inicien los servicios.

Ahora aplicaremos una configuración de red estática para un sistema con una única interfaz describiendo el estado de red deseado en un archivo específico del nodo (basado en el nombre de host deseado) en el directorio network requerido:

mkdir $CONFIG_DIR/network

cat << EOF > $CONFIG_DIR/network/host1.local.yaml
routes:
  config:
  - destination: 0.0.0.0/0
    metric: 100
    next-hop-address: 192.168.122.1
    next-hop-interface: eth0
    table-id: 254
  - destination: 192.168.122.0/24
    metric: 100
    next-hop-address:
    next-hop-interface: eth0
    table-id: 254
dns-resolver:
  config:
    server:
    - 192.168.122.1
    - 8.8.8.8
interfaces:
- name: eth0
  type: ethernet
  state: up
  mac-address: 34:8A:B1:4B:16:E7
  ipv4:
    address:
    - ip: 192.168.122.50
      prefix-length: 24
    dhcp: false
    enabled: true
  ipv6:
    enabled: false
EOF
Aviso
Aviso

El ejemplo anterior está configurado para la subred predeterminada 192.168.122.0/24, suponiendo que la prueba se ejecuta en una máquina virtual. Adáptelo a su entorno, sin olvidar la dirección MAC. Dado que se puede utilizar la misma imagen para aprovisionar varios nodos, la configuración de red realizada por EIB (a través de nmc) depende de que pueda identificar de forma única el nodo por su dirección MAC y, por lo tanto, durante el arranque, nmc aplicará la configuración de red correcta a cada equipo. Esto significa que deberá conocer las direcciones MAC de los sistemas en los que desea realizar la instalación. Alternativamente, el comportamiento predeterminado es confiar en DHCP, pero puede utilizar el gancho configure-network.sh para aplicar una configuración común a todos los nodos. Consulte la guía sobre conexión de redes (Capítulo 12, Conexiones de red de Edge) para obtener más detalles.

La estructura de archivo resultante tendrá este aspecto:

├── iso-definition.yaml
├── base-images/
│   └── slemicro.iso
└── network/
    └── host1.local.yaml

La configuración de red que acabamos de crear se analizará y los archivos de conexión de NetworkManager necesarios se generarán automáticamente y se insertarán en la nueva imagen de instalación que creará EIB. Estos archivos se aplicarán durante el aprovisionamiento del host, lo que dará como resultado una configuración de red completa.

Nota
Nota

Consulte la sección sobre el componente de red de Edge (Capítulo 12, Conexiones de red de Edge) para obtener una explicación más completa de la configuración anterior y ejemplos de esta función.

3.4 Creación de la imagen

Ahora que tenemos una imagen base y una definición de imagen para que EIB la utilice, vamos a crear la imagen. Para ello, solo tenemos que usar Podman para llamar al contenedor EIB con el comando "build", especificando el archivo de definición:

podman run --rm -it --privileged -v $CONFIG_DIR:/eib \
registry.suse.com/edge/3.3/edge-image-builder:1.2.1 \
build --definition-file iso-definition.yaml

El resultado del comando debe tener este aspecto:

Setting up Podman API listener...
Downloading file: dl-manifest-1.yaml 100% (498/498 B, 9.5 MB/s)
Pulling selected Helm charts... 100% (1/1, 43 it/min)
Generating image customization components...
Identifier ................... [SUCCESS]
Custom Files ................. [SKIPPED]
Time ......................... [SKIPPED]
Network ...................... [SUCCESS]
Groups ....................... [SKIPPED]
Users ........................ [SUCCESS]
Proxy ........................ [SKIPPED]
Resolving package dependencies...
Rpm .......................... [SUCCESS]
Os Files ..................... [SKIPPED]
Systemd ...................... [SKIPPED]
Fips ......................... [SKIPPED]
Elemental .................... [SKIPPED]
Suma ......................... [SKIPPED]
Populating Embedded Artifact Registry... 100% (3/3, 10 it/min)
Embedded Artifact Registry ... [SUCCESS]
Keymap ....................... [SUCCESS]
Configuring Kubernetes component...
The Kubernetes CNI is not explicitly set, defaulting to 'cilium'.
Downloading file: rke2_installer.sh
Downloading file: rke2-images-core.linux-amd64.tar.zst 100% (657/657 MB, 48 MB/s)
Downloading file: rke2-images-cilium.linux-amd64.tar.zst 100% (368/368 MB, 48 MB/s)
Downloading file: rke2.linux-amd64.tar.gz 100% (35/35 MB, 50 MB/s)
Downloading file: sha256sum-amd64.txt 100% (4.3/4.3 kB, 6.2 MB/s)
Kubernetes ................... [SUCCESS]
Certificates ................. [SKIPPED]
Cleanup ...................... [SKIPPED]
Building ISO image...
Kernel Params ................ [SKIPPED]
Build complete, the image can be found at: eib-image.iso

La imagen ISO creada se guarda en $CONFIG_DIR/eib-image.iso:

├── iso-definition.yaml
├── eib-image.iso
├── _build
│   └── cache/
│       └── ...
│   └── build-<timestamp>/
│       └── ...
├── base-images/
│   └── slemicro.iso
└── network/
    └── host1.local.yaml

Para cada imagen se crea una carpeta con marca de tiempo en $CONFIG_DIR/_build/ que incluye los registros del proceso de creación, los artefactos utilizados durante la creación y los directorios combustion y artefacts, que contienen todos los guiones y artefactos que se añaden a la imagen lista para arrancar.

El contenido de este directorio tendrá este aspecto:

├── build-<timestamp>/
│   │── combustion/
│   │   ├── 05-configure-network.sh
│   │   ├── 10-rpm-install.sh
│   │   ├── 12-keymap-setup.sh
│   │   ├── 13b-add-users.sh
│   │   ├── 20-k8s-install.sh
│   │   ├── 26-embedded-registry.sh
│   │   ├── 48-message.sh
│   │   ├── network/
│   │   │   ├── host1.local/
│   │   │   │   └── eth0.nmconnection
│   │   │   └── host_config.yaml
│   │   ├── nmc
│   │   └── script
│   │── artefacts/
│   │   │── registry/
│   │   │   ├── hauler
│   │   │   ├── nginx:<version>-registry.tar.zst
│   │   │   ├── rancher_kubectl:<version>-registry.tar.zst
│   │   │   └── registry.suse.com_suse_sles_15.6_virt-operator:<version>-registry.tar.zst
│   │   │── rpms/
│   │   │   └── rpm-repo
│   │   │       ├── addrepo0
│   │   │       │   ├── nvidia-container-toolkit-<version>.rpm
│   │   │       │   ├── nvidia-container-toolkit-base-<version>.rpm
│   │   │       │   ├── libnvidia-container1-<version>.rpm
│   │   │       │   └── libnvidia-container-tools-<version>.rpm
│   │   │       ├── repodata
│   │   │       │   ├── ...
│   │   │       └── zypper-success
│   │   └── kubernetes/
│   │       ├── rke2_installer.sh
│   │       ├── registries.yaml
│   │       ├── server.yaml
│   │       ├── images/
│   │       │   ├── rke2-images-cilium.linux-amd64.tar.zst
│   │       │   └── rke2-images-core.linux-amd64.tar.zst
│   │       ├── install/
│   │       │   ├── rke2.linux-amd64.tar.gz
│   │       │   └── sha256sum-amd64.txt
│   │       └── manifests/
│   │           ├── dl-manifest-1.yaml
│   │           └── kubevirt.yaml
│   ├── createrepo.log
│   ├── eib-build.log
│   ├── embedded-registry.log
│   ├── helm
│   │   └── kubevirt
│   │       └── kubevirt-0.4.0.tgz
│   ├── helm-pull.log
│   ├── helm-template.log
│   ├── iso-build.log
│   ├── iso-build.sh
│   ├── iso-extract
│   │   └── ...
│   ├── iso-extract.log
│   ├── iso-extract.sh
│   ├── modify-raw-image.sh
│   ├── network-config.log
│   ├── podman-image-build.log
│   ├── podman-system-service.log
│   ├── prepare-resolver-base-tarball-image.log
│   ├── prepare-resolver-base-tarball-image.sh
│   ├── raw-build.log
│   ├── raw-extract
│   │   └── ...
│   └── resolver-image-build
│       └──...
└── cache
    └── ...

Si la compilación falla, eib-build.log es el primer registro que contiene información. Desde allí, se le dirigirá al componente que falló para su depuración.

En este punto, debe tener una imagen lista para usar que:

  1. Desplegará SUSE Linux Micro 6.1

  2. Configurará la contraseña raíz

  3. Instalará el paquete nvidia-container-toolkit

  4. Configurará un registro de contenedor integrado para proporcionar contenido localmente

  5. Instalará RKE2 de un solo nodo

  6. Configurará la red estática

  7. Instalará KubeVirt

  8. Desplegará un manifiesto proporcionado por el usuario

3.5 Depuración del proceso de creación de imágenes

Si el proceso de creación de imágenes falla, consulte la guía original sobre depuración.

3.6 Prueba de la imagen recién creada

Para obtener instrucciones sobre cómo probar la imagen lista para arrancar recién creada, consulte la guía original sobre pruebas de imágenes.

Documentation survey