Proporcionar Fedora CoreOS en Google Cloud Platform

Esta guía muestra cómo aprovisionar instancias de Fedora CoreOS (FCOS) nuevas en Google Cloud Platform (GCP).

Prerrequisitos

Antes de aprovisionar una máquina FCOS, debes tener un archivo de configuración Ignition que contenga sus personalizaciones. Si no tienes uno consulta Producción de un Archivo Ignition.

Fedora CoreOS tiene un usuario core predeterminado que puede ser usado para explorar el SO. Si usted desea utilizarlo finalice su configuración proporcionando una clave SSH.

Si no desea utilizar Ignition para comenzar, puedes utilizar el Mantenimiento de Afterburn.

También necesita tener acceso a una cuenta de GCP. Los ejemplos a continuación utilizan la herramienta de línea de comandos gcloud, que debe instalarse y configurarse previamente por separado.

Seleccionar una familia de imagen

Fedora CoreOS está diseñado para ser subido automáticamente, con diferentes planificaciones por flujo.

Las imágenes FCOS están publicadas bajo el proyecto fedora-coreos-cloud y organizado tras las familias de imagen, siguiente el flujo correspondiente:

  • fedora-coreos-stable

  • fedora-coreos-testing

  • fedora-coreos-next

Antes de continuar, verifique los detalles de cada actualizar stream y elija el más adecuado para su caso de uso.

Puedes inspeccionar el estado actual de una familia de imagen como sigue:

Inspeccionar una familia de imágenes
STREAM='stable'
gcloud compute images describe-from-family \
    --project "fedora-coreos-cloud" "fedora-coreos-${STREAM}"

Lanzar una instancia de Máquina Virtual (MV)

Se pueden crear e iniciar nuevas instancias de GCP directamente desde imágenes FCOS públicas.

Si solo desea acceso SSH sin más personalizaciones, no necesita pasar metadatos de instancia personalizados. Según la configuración de su proyecto de GCP, las claves públicas SSH relevantes se añadirán automáticamente a la máquina virtual. Esto facilita la prueba de FCOS sin crear primero una configuración de Ignition.

Actualmente, no se permite iniciar sesión mediante SSH a través de la consola web de GCP, ni mediante el método CLI gcloud compute ssh ni el inicio de sesión del sistema operativo. Consulta fedora-coreos-tracker#648 para obtener más información.
Lanzar una instancia nueva
STREAM='stable'
NAME='fcos-node01'
ZONE='us-central1-a'
gcloud compute instances create              \
    --image-project "fedora-coreos-cloud"    \
    --image-family "fedora-coreos-${STREAM}" \
    --zone "${ZONE}" "${NAME}"
Puede encontrar fuera la IP de instancia asignada ejecutando gcloud compute instances list

Ahora serías capaz de acceder por SSH a la instancia usando la dirección IP asociada.

Ejemplo al conectar
ssh core@<dirección ip>

Con el fin de lanzar una instancia FCOS personalizada, debe ser pasada una configuración válida de Ignition como metadatos bajo la clave user-data en tiempo de creación. En la consola de web, esto está disponible bajo la sección Administración. Desde la línea de comando, utilice --metadata-from-file:

Lanzar y personalizar una instancia nueva
STREAM='stable'
NAME='fcos-node01'
ZONE='us-central1-a'
CONFIG='example.ign'
gcloud compute instances create                \
    --image-project "fedora-coreos-cloud"      \
    --image-family "fedora-coreos-${STREAM}"   \
    --metadata-from-file "user-data=${CONFIG}" \
    --zone "${ZONE}" "${NAME}"
Por diseño, los scripts de inicio no son compatibles con FCOS. En su lugar, se recomienda codificar cualquier lógica de inicio como unidades de servicio systemd en la configuración de Ignition. Una vez más, tenga en cuenta que requiere utilizar la clave user-data para Ignition; tampoco funcionará pegar Ignition en este campo dentro de la consola web.

Lanzar una MV Confidencial

La compatibilidad con Computación Confidencial está en desarrollo en Fedora CoreOS. Consulte el asunto #1719.
Para obtener una descripción general sobre las máquinas virtuales (MV) confidenciales en GCP, consulte la descripción general de las MV confidenciales.

Para lanzar una instancia FCOS confidencial, necesitas especificar el tipo de computación confidencial y utilizar un tipo de máquina que admita la computación confidencial.

Para la línea de comando, utilice --confidential-compute-type y --machine-type.

Lanzar una instancia confidencial utilizando el tipo confidencial AMD SEV_SNP
STREAM='stable'
NAME='fcos-cvm-node01'
ZONE='us-central1-a'
CONFIG='ejemplo.ign'
MACHINE_TYPE='n2d-standard-2'
gcloud compute instances create                            \
    --image-project "fedora-coreos-cloud"            \
    --image-family "fedora-coreos-${STREAM}"    \
    --metadata-from-file "user-data=${CONFIG}" \
    --confidential-compute-type "SEV_SNP"         \
    --machine-type "${MACHINE_TYPE}"                  \
    --maintenance-policy terminate                            \
    --zone "${ZONE}" "${NAME}"
Lanzar una instancia confidencial utilizando el tipo Intel TDX confidencial
STREAM='stable'
NAME='fcos-cvm-node01'
ZONE='us-central1-a'
CONFIG='example.ign'
MACHINE_TYPE='c3-standard-4'
gcloud compute instances create                \
    --image-project "fedora-coreos-cloud"      \
    --image-family "fedora-coreos-${STREAM}"   \
    --metadata-from-file "user-data=${CONFIG}" \
    --confidential-compute-type "TDX"      \
    --machine-type "${MACHINE_TYPE}"           \
    --maintenance-policy terminate             \
    --zone "${ZONE}" "${NAME}"
Ejemplo de Verificación de Arranque de MV Confidencial
ssh core@<ip address>
# Confirme que la máquina virtual esté usando el tipo confidencial `AMD SEV-SNP`
sudo systemd-detect-virt --cvm
sev-snp

# Confirma que la máquina virtual esté usando el tipo confidencial `Intel TDX`
sudo systemd-detect-virt --cvm
tdx
---