Atualizações de imagens após a migração

Esta página descreve como realizar operações de manutenção para as suas cargas de trabalho migradas.

Os artefactos do contentor que gera não se destinam apenas à implementação da carga de trabalho migrada no cluster de destino. Também precisa delas para as operações de manutenção do Dia 2, incluindo a aplicação de atualizações de software do SO no modo de utilizador e da aplicação, patches de segurança, edição de configurações incorporadas, adição ou substituição de ficheiros e para atualizar o software de tempo de execução do Migrate to Containers.

Reveja o Dockerfile da imagem gerada

As operações de manutenção usam o Dockerfile gerado e a camada de imagem do sistema capturada. Quando combinados com a camada de tempo de execução do Migrate to Containers, estes ficheiros podem ser incorporados numa imagem de contentor executável.

Os artefactos do contentor gerados são criados tendo em conta a integração da fase de compilação do pipeline de CI/CD, conforme descrito no diagrama seguinte:

Fluxo de CI/CD automatizado para a replataformação de aplicações com o Migrate to Containers

O Dockerfile está estruturado como uma compilação de várias fases, para facilitar a manutenção e a manipulação, ao mesmo tempo que impede o aumento do tamanho da imagem.

Segue-se um exemplo 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 a criação de imagens de contentores com o Cloud Build, consulte o artigo Criar imagens de contentores.

Atualize a camada de componentes da carga de trabalho migrada

Para quaisquer atualizações ou modificações que queira aplicar à camada de imagem da carga de trabalho migrada, deve aplicá-las antes da diretiva ENTRYPOINT.

No exemplo seguinte, atualizamos uma imagem de contentor migrada de uma VM do SUSE Enterprise Linux (SLES) como origem, usando o Cloud Build e a CLI gcloud. O exemplo seguinte atualiza o pacote openssh da distribuição 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, implemente a imagem atualizada no cluster.

Atualize a versão da camada de migração para contentores

Quando são lançadas novas versões do software Migrate to Containers, pode atualizar essa versão do software em imagens de carga de trabalho implementadas. Estas atualizações podem incluir novas funcionalidades, melhorias ou correções de erros.

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

Usando o exemplo anterior, pode atualizar a versão de 1.0.3 para a versão hipotética 1.0.4 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, tem de criar uma nova versão da imagem do contentor da carga de trabalho e aplicá-la às implementações existentes para a atualizar.

O que se segue?