Actualizaciones de imágenes posteriores a la migración
Los artefactos de contenedor que creas con el comando migctl migration generate-artifacts
no están diseñados solo para la implementación de la carga de trabajo migrada en el clúster de destino. También lo están para las operaciones de mantenimiento del "Día 2", que incluyen la aplicación de actualizaciones de software de SO del modo de usuario y la aplicación, parches de seguridad, la edición de configuraciones incorporadas, la adición o el reemplazo de archivos y la actualización del software de entorno de ejecución de Migrate to Containers.
Revisa la imagen de Dockerfile generada
Estas operaciones de mantenimiento aprovechan el Dockerfile generado y la capa de imagen del sistema capturada. Cuando se los combina con la capa de entorno de ejecución de Migrate to Containers, estos archivos se pueden compilar en una imagen de contenedor ejecutable.
Los artefactos de contenedor generados están pensados para integración de fase de compilación de canalización de IC/EC, como se describe en el siguiente diagrama:
El Dockerfile está estructurado como una compilación de varias etapas para facilitar el mantenimiento y la manipulación mientras se evita que aumente el tamaño de la imagen.
A continuación, se muestra un ejemplo de un Dockerfile generado:
# Please refer to the documentation:
# https://cloud.google.com/migrate/anthos/docs/dockerfile-reference
FROM anthos-migrate.gcr.io/v2k-run-embedded:v1.6.0 as migrate-for-anthos-runtime
# Image containing data captured from the source VM
FROM gcr.io/myproject/myworkload-non-runnable-base:v1.0.0 as source-content
# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
# package1=version \
# package2=version \
# package3=version
# RUN yum update
# RUN wget http://github.com
COPY --from=migrate-for-anthos-runtime / /
# Migrate for GKE Enterprise image includes entrypoint
ENTRYPOINT [ "/.v2k.go" ]
La segunda directiva FROM
hace referencia a la capa de imagen del sistema capturada desde la VM migrada. Esta capa no se puede ejecutar sola y debe combinarse con la capa del entorno de ejecución de Migrate to Containers para compilar una imagen ejecutable.
Para obtener más información sobre cómo compilar imágenes de contenedores con Cloud Build, consulta Compila imágenes de contenedores.
Actualiza la capa de componentes de la carga de trabajo migrada
Si deseas aplicar alguna actualización o modificación a la capa de imagen de la carga de trabajo migrada, debes hacerlo después de la segunda directiva FROM
.
En el siguiente ejemplo, actualizamos una imagen de contenedor migrada desde una VM de SUSE Enterprise Linux (SLES) como fuente, con Cloud Build y la CLI de gcloud. En el siguiente ejemplo, se actualiza el paquete openssh
de distribución de SLES.
Dockerfile actualizado:
# Image containing data captured from the source VM
FROM anthos-migrate.gcr.io/v2k-run-embedded:v1.6.0 as migrate-for-anthos-runtime
# Image containing data captured from the source VM
FROM gcr.io/myproject/myworkload-non-runnable-base:v1.0.0 as source-content
# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
# package1=version \
# package2=version \
# package3=version
# RUN yum update
# RUN wget http://github.com
RUN zypper ref -s && zypper -n in openssh
COPY --from=migrate-for-anthos-runtime / /
# Migrate to Containers image includes entrypoint
ENTRYPOINT [ "/.v2k.go" ]
Cómo compilar la imagen actualizada:
- Descarga el Dockerfile generado desde el bucket de Cloud Storage en un directorio local en tu entorno de Cloud Shell.
- Edita el Dockerfile para agregar la directiva
RUN
destacada, como en el ejemplo anterior. Compila la imagen actualizada y envíala a Container Registry con una etiqueta de versión actualizada, lo que garantiza que haya tiempo suficiente para que la compilación finalice. En el siguiente ejemplo, la imagen está en el directorio actual:
gcloud builds submit --timeout 4h --tag gcr.io/myproject/mySUSEworkload:v1.0.1 .
Puedes usar la imagen recién compilada para actualizar una implementación existente, por ejemplo, para realizar una actualización progresiva en la aplicación implementada:
kubectl set image deployment/myWorkload my-app=gcr.io/myproject/mySUSEworkload:v1.0.1 --record
Actualiza la versión de la capa de Migrate to Containers
Cuando se lanzan nuevas versiones del software de Migrate to Containers, puedes actualizar esa versión de software en las imágenes de cargas de trabajo implementadas. Esas actualizaciones pueden incluir nuevas funciones, mejoras o correcciones de errores.
Para actualizar la capa de software de Migrate to Containers, edita el Dockerfile y cambia la etiqueta de versión a la versión actualizada que deseas aplicar.
Con el ejemplo anterior, puedes actualizar de la versión 1.6.0 a la versión hipotética 1.15.0 si editas la directiva FROM
como se indica a continuación:
FROM anthos-migrate.gcr.io/v2k-run-embedded:v1.15.0 as migrate-for-anthos-runtime
Después de actualizar el Dockerfile, deberás compilar una nueva versión de imagen de contenedor de carga de trabajo y aplicarla a las implementaciones existentes para actualizarlas.
¿Qué sigue?
- Aprende a supervisar las cargas de trabajo migradas.