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.
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).
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 #
Un equipo host AMD64/Intel 64 (físico o virtual) en el que se ejecute SLES 15 SP6.
El motor de contenedores Podman
Una imagen ISO de autoinstalación de SUSE Linux Micro 6.1 creada mediante el procedimiento Kiwi Builder (Capítulo 28, Creación de imágenes actualizadas de SUSE Linux Micro con Kiwi)
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
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
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, ejecutetimedatectl 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).
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 redMediante 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
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.
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
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
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.
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:
Desplegará SUSE Linux Micro 6.1
Configurará la contraseña raíz
Instalará el paquete
nvidia-container-toolkit
Configurará un registro de contenedor integrado para proporcionar contenido localmente
Instalará RKE2 de un solo nodo
Configurará la red estática
Instalará KubeVirt
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.