Use este guia para migrar as suas cargas de trabalho para o Cloud Run. Em geral, a migração das suas cargas de trabalho requer a transferência de quaisquer funcionalidades baseadas no Kubernetes e, em seguida, a reimplementação de cada um dos seus serviços existentes no Cloud Run.
Principais vantagens da migração para o Cloud Run:
Produto sem servidor totalmente gerido que implementa a especificação da API Knative Serving e cumpre o contrato de contentor.
A API Admin v1 do Cloud Run foi concebida para maximizar a portabilidade com o serviço Knative.
A experiência do utilizador é semelhante no Cloud Run e no Knative Serving:
- O grupo de comandos 
gcloud runé usado em ambos os produtos. - Layout e comportamento da interface do utilizador semelhantes na Google Cloud consola.
 
- O grupo de comandos 
 
Antes de começar
As seguintes funcionalidades do Google Kubernetes Engine não são suportadas no Cloud Run, incluindo:
- Funcionalidades de clusters e pods, por exemplo, Startup, Liveness e Readiness probes, e Service Discovery.
 - Configuração:
- ConfigMaps: pode transformar os seus ConfigMaps em segredos com o Secret Manager.
 - GPUs NVIDIA
 
 Controlos de acesso:
Pode usar o IAM no Cloud Run para alcançar o mesmo controlo sobre o acesso aos seus recursos. Considere também usar a identidade do serviço.
Considerações sobre a migração
Tem de rever e compreender as seguintes diferenças entre os produtos para garantir que pode transferir todas as suas dependências e requisitos.
Secrets
No Cloud Run, pode optar por montar segredos como variáveis de ambiente ou volumes, mas os segredos com informações confidenciais devem ser armazenados no Secret Manager.
Diferenças importantes entre os segredos no Secret Manager e os segredos do Kubernetes:
| Funcionalidade | Secrets do Secret Manager | Segredos do Kubernetes | 
|---|---|---|
| Carateres permitidos nos nomes | [a-zA-Z0-9_-]{1,255} | 
[a-z0-9-.]{1,253} | 
| Controlo de versões | Os Secrets têm versões | Sem suporte | 
| Payload secreto | Single []byte | 
Mapa: <string, string> | 
Saiba como usar o Secret Manager para criar segredos com versões para as chaves secretas dos seus serviços Knative Serving.
Redes
Use as informações seguintes para ajudar a migrar a configuração de rede existente para o Cloud Run.
- Pontos finais de serviço
 - Os pontos finais do Kubernetes dos seus serviços de publicação do Knative não são suportados no Cloud Run. Saiba mais sobre os endpoints únicos no Cloud Run.
 - Mapeamentos de domínios
 - A API DomainMapping do Cloud Run é compatível com o serviço Knative. No entanto, o Cloud Run oferece mapeamento de domínios num subconjunto das localizações do Cloud Run disponíveis. Uma alternativa recomendada é tirar partido do balanceador de carga HTTP(S) global para os seus domínios personalizados.
 - Conetividade da VPC Os serviços do
 - Cloud Run residem fora da sua VPC. Para comunicar com recursos numa VPC, tem de usar o conetor do Acesso a VPC sem servidor.
 - Controlos de entrada
 - Se o seu serviço Knative Serving estiver configurado para uma rede interna privada e usar um balanceador de carga interno (ILB), pode configurar o seu serviço Cloud Run para 
Ingress = Internal. Configurar os seus serviços parainternalrestringe o acesso à sua VPC ou a outros serviços do Cloud Run. Saiba mais sobre a comunicação entre serviços. 
Migrar um serviço
Para migrar um serviço, tem de exportar o seu serviço Knative Serving, editar o ficheiro YAML exportado e, em seguida, implementar o serviço reconfigurado no Cloud Run.
Exporte o seu serviço Knative serving para um ficheiro YAML local executando o seguinte comando:
gcloud run services describe SERVICE --format export --namespace NAMESPACE --cluster CLUSTER --platform gke > FILENAME.yamlSubstituição:
SERVICEcom o nome do seu serviço Knative Serving.NAMESPACEcom o espaço de nomes onde o seu serviço está a ser executado.CLUSTERcom o nome do cluster onde o seu serviço está a ser executado.FILENAMEcom um nome de ficheiro único à sua escolha.
Modifique o ficheiro
FILENAME.yamlexportado para o Cloud Run:- Tem de pesquisar e substituir o espaço de nomes do Kubernetes pelo ID do seu
Google Cloud projeto. Por exemplo, tem de substituir 
namespace:defaultpornamespace:my-unique-id. - Tem de atualizar todas as configurações para qualquer uma das funcionalidades não suportadas.
 Tem de eliminar qualquer um dos seguintes atributos e os respetivos valores:
metadata.annotations.kubectl.kubernetes.io/last-applied-configurationmetadata.managedFieldsspec.template.spec.containers.readinessProbesspec.template.spec.enableServiceLinks
Por exemplo, pode ter de remover a seguinte configuração dos atributos
spec:>template:>spec:>containers::... readinessProbe: successThreshold: 1 tcpSocket: {} ...
- Tem de pesquisar e substituir o espaço de nomes do Kubernetes pelo ID do seu
Google Cloud projeto. Por exemplo, tem de substituir 
 Implemente o ficheiro
.yamlmodificado no Cloud Run através da flag--platform managed. Saiba mais sobre a implementação.Tenha em atenção que pode usar o mesmo Google Cloud projeto para o Cloud Run.
gcloud run services replace FILENAME.yaml --platform managed --region REGIONSubstituição:
FILENAMEcom o nome do ficheiro de configuração exportado que criou.REGIONcom uma localização do Cloud Run suportada. Por exemplo:us-central1
Configure o acesso ao seu serviço do Cloud Run:
Por predefinição, um serviço do Cloud Run não é acessível externamente. Para expor publicamente o seu serviço à Internet e permitir pedidos não autenticados, tem de permitir o acesso público (não autenticado).
Para configurar este serviço para acesso privado apenas interno, como entre os seus serviços do Cloud Run, consulte o artigo Autenticação de serviço a serviço.
Na Google Cloud consola, na página de serviços, pode clicar no link do URL apresentado para abrir o ponto final único e estável do serviço implementado.
Migrar tráfego para o seu serviço
Depois de testar os serviços implementados recentemente e quando tiver tudo preparado para migrar todo o tráfego de produção, pode configurar o domínio personalizado e atualizar os registos DNS com a sua entidade de registo. Siga as instruções em Mapear domínios personalizados.