Atualizações de imagens pós-migração

Nesta página, você verá realizar operações de manutenção nas cargas de trabalho migradas.

Os artefatos de contêineres gerados não são destinados apenas para a implantação de cargas de trabalho migradas no cluster de destino. Eles também são necessários para operações de manutenção do Dia 2, incluindo as atualizações de software do SO de modo de usuário e de aplicativos, patches de segurança, edição de configurações incorporadas, adição ou substituição de arquivos e atualização do software do ambiente de execução do Migrate to Containers.

Analisar o Dockerfile da imagem gerada

As operações de manutenção usam o Dockerfile gerado e a camada de imagem do sistema capturada. Quando associados à camada do ambiente de execução do Migrate to Containers, esses arquivos podem ser incorporados em uma imagem de contêiner executável.

Os artefatos de contêineres gerados foram criados tendo em mente a integração da fase de compilação do pipeline de CI/CD, conforme descrito no seguinte diagrama:

Fluxo automatizado de CI/CD para mudar de plataforma usando o Migrate to Containers

O Dockerfile é estruturado como uma compilação em vários estágios, para facilitar a manutenção e a manipulação, para que a imagem não aumente.

Veja uma amostra de um Dockerfile gerado:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.3 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml /.m4a/

# 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

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Para mais informações sobre como criar imagens de contêineres com o Cloud Build, consulte Como criar imagens de contêineres.

Atualizar a camada de componentes das cargas de trabalho migradas

Faça as atualizações ou modificações na camada de imagens das cargas de trabalho migradas antes da diretiva ENTRYPOINT.

No exemplo a seguir, atualizamos uma imagem de contêiner migrada de uma VM do SUSE Enterprise Linux (SLES) como origem, usando o Cloud Build e o gcloud CLI. O exemplo a seguir atualiza o pacote de distribuição openssh do SLES.

Dockerfile atualizado:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.3 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml  /.m4a/

# 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

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Em seguida, implante a imagem atualizada no cluster.

Atualizar a versão da camada do Migrate to Containers

Quando novas versões do software do Migrate to Containers forem lançadas, é possível atualizar a versão do software nas imagens de cargas de trabalho implantadas. Essas atualizações podem incluir novos recursos, melhorias ou correções de bugs.

Para atualizar a camada de software do Migrate to Containers, edite o Dockerfile e altere a tag de versão para a versão atualizada que você quer aplicar.

Usando o exemplo anterior, é possível atualizar a versão 1.0.3 para a versão 1.0.4 hipotética editando a diretiva FROM para o seguinte:

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.4 as service-manager-runtime

Depois de atualizar o Dockerfile, é preciso criar uma nova versão da imagem do contêiner da carga de trabalho e aplicá-la às implantações atuais para atualizá-las.

Qual é a próxima etapa?