Como implantar aplicativos do Kubernetes em clusters que não sejam do Google Kubernetes Engine (GKE)

Se você quiser implantar um aplicativo do Kubernetes em configurações de cluster que não são do Google Kubernetes Engine (GKE), como um cluster do Anthos que executa clusters do Anthos no VMware ou um cluster que execute o Istio, conclua as tarefas nesta seção, conforme aplicável.

Dependendo do aplicativo que você está implantando, talvez haja etapas adicionais para executar o aplicativo no cluster. Consulte a documentação do fornecedor do aplicativo para mais informações sobre como configurá-lo.

Acesse os apps Anthos no Google Cloud Marketplace

Como implantar em clusters que executam o Istio

Nos clusters que executam o Istio, as conexões externas com serviços de terceiros, como repositórios de pacotes de sistema operacional, são bloqueadas por padrão. É necessário configurar o tráfego de saída do Istio para ativar o acesso a serviços externos.

Como implantar em clusters do Anthos no VMware

Só é possível implantar clusters do Anthos em clusters do VMware em aplicativos do Cloud Marketplace compatíveis com essa configuração. Para verificar se um aplicativo é compatível com clusters do Anthos no VMware, abra a listagem do Cloud Marketplace do aplicativo e procure a seguinte instrução na Visão geral: "O aplicativo é compatível com a implantação do GKE On-Prem".

Depois de verificar se o aplicativo é compatível com clusters do Anthos no VMware, conclua estas tarefas antes de implantar o aplicativo:

Depois de concluir essas tarefas, abra a listagem do Cloud Marketplace do aplicativo e siga as etapas para implantá-lo.

Configurar o acesso de rede ao Container Registry

Para fazer o download das imagens de contêiner do aplicativo, verifique se o cluster tem acesso de rede ao Container Registry. Seu host de cluster precisa poder executar ping em marketplace.gcr.io. Para ativar o acesso, talvez seja necessário executar um ou mais dos seguintes procedimentos:

Configurar a autenticação do Docker para acessar o Container Registry

Para conceder aos clusters do Anthos no cluster do VMware acesso a imagens de aplicativos no Container Registry, crie uma chave de conta de serviço do Google Cloud e anote o namespace do aplicativo com a chave. A chave recebe um patch como imagePullSecret para a conta de serviço padrão do Kubernetes (KSA, na sigla em inglês) do namespace quando você implanta o aplicativo.

Na primeira vez que implantar um aplicativo em um cluster do Anthos no cluster do VMware, você também precisa criar um namespace chamado application-system para os componentes do Cloud Marketplace e aplicar um imagePullSecret à conta de serviço padrão para namespace.

Siga estas etapas para configurar a autenticação no Container Registry:

  1. Crie uma nova conta de serviço do Google Cloud. Não é necessário atribuir nenhum papel à conta de serviço.

    Para ver as etapas de criação de uma conta de serviço, consulte Como criar e gerenciar contas de serviço.

  2. Crie uma chave para a conta de serviço e faça o download dela como um arquivo JSON. Para ver as etapas de criação e download da chave, consulte Como criar e gerenciar chaves de contas de serviço.

  3. Se aplicável, faça upload da chave JSON na estação de trabalho que você usa para se conectar aos clusters do Anthos no cluster do VMware.

  4. Se você estiver implantando um aplicativo do Cloud Marketplace pela primeira vez, siga estas etapas para configurar seu namespace application-system com um secret para acessar o Container Registry. Se você já configurou o namespace, pule esta etapa.

    1. Crie um namespace application-system no cluster.

    2. Use o comando a seguir para criar o secret que contém um imagePullSecret para application-system:

      JSON_KEY_FILENAME=path_to/service_account_key.json
      IMAGEPULLSECRET_NAME=gcr-json-key
      kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \
        --namespace="application-system" \
        --docker-server=gcr.io \
        --docker-username=_json_key \
        --docker-password="$(cat $JSON_KEY_FILENAME)"
      
    3. Aplique isso imagePullSecret à ServiceAccount padrão no namespace application-system, usando o comando a seguir:

      kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
      
  5. Para cada namespace em que você quer implantar um aplicativo, crie um novo secret do Kubernetes e anote o namespace com o secret. Não é possível reutilizar um secret de outro namespace.

    1. Crie um secret do Kubernetes para acessar o Container Registry usando a chave da conta de serviço do Google Cloud:

      JSON_KEY_FILENAME=path_to/service_account_key.json
      IMAGEPULLSECRET_NAME=gcr-json-key
      kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \
        --namespace=$NAMESPACE_NAME \
        --docker-server=gcr.io \
        --docker-username=_json_key \
        --docker-password="$(cat ~/$JSON_KEY_FILENAME)"
      

      Em que $NAMESPACE_NAME é o namespace que você quer usar para o aplicativo.

    2. Anote o namespace do aplicativo usando o seguinte comando:

      kubectl annotate namespace $NAMESPACE_NAME marketplace.cloud.google.com/imagePullSecret=$IMAGEPULLSECRET_NAME
      

      Use esse namespace quando implantar o app no Cloud Marketplace, conforme descrito em Como implantar um app Kubernetes.