Como implantar contêineres

Nesta página, você aprende a implantar uma imagem de contêiner em um cluster do Google Kubernetes Engine (GKE) em que a autorização binária está ativada. Os comandos usados para implantação são os mesmos que você usa para implantar imagens em clusters que não usam a autorização binária.

Antes de começar

Instale kubectl para interagir com o GKE.

Configurar kubectl

Você precisa atualizar o arquivo local kubeconfig para sua instalação do kubectl. Isso fornece as credenciais e informações do endpoint necessárias para acessar o cluster no GKE.

Para configurar kubectl:

gcloud container clusters get-credentials \
    --zone ZONE \
    CLUSTER_NAME

em que:

  • ZONE é o nome da zona do GKE em que o cluster está em execução (por exemplo, us-central1-a1);
  • CLUSTER_NAME é o nome do cluster.

Implantar a imagem do contêiner

É possível implantar a imagem usando o comando kubectl run.

Implante a imagem usando o resumo em vez de uma tag como 1.0 ou latest, já que a autorização binária usará o caminho e o resumo da imagem para procurar atestados.

Para implantar a imagem:

kubectl run ${DEPLOYMENT_NAME} \
    --image ${IMAGE_PATH}@${IMAGE_DIGEST} --port 8080

em que:

  • DEPLOYMENT_NAME é o nome que você quer usar para a carga de trabalho do GKE;
  • IMAGE_PATH:IMAGE_DIGEST é o caminho e o resumo da imagem no Container Registry ou em outro registro (por exemplo, gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4)

Substituir uma política

A autorização binária é compatível com um recurso conhecido como quebra de vidro, que permite modificar uma política de autorização ao implantar uma imagem de contêiner. Esse recurso é implementado de forma consistente com recomendações na especificação do controlador de admissão do Kubernetes.

O exemplo a seguir mostra como criar um pod do GKE usando uma lupa para substituir uma política:

  1. Crie um arquivo de configuração no formato YAML. Esse arquivo contém a anotação de acesso imediato, bem como outras informações necessárias para criar o pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
      annotations:
        alpha.image-policy.k8s.io/break-glass: "true"
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    

    O GKE também permite que você especifique uma configuração para novos recursos usando o formato JSON, se preferir.

  2. Crie o pod usando kubectl:

    kubectl create -f YAML_file
    

Verificar se uma imagem está em execução

Para verificar se a imagem está em execução, digite o seguinte:

kubectl get pods

O comando imprime uma mensagem semelhante à seguinte, o que indica que a implantação foi bem-sucedida:

NAME                            READY     STATUS    RESTARTS   AGE
hello-server-579859fb5b-h2k8s   1/1       Running   0          1m

Ver registros de auditoria

Para mais informações sobre como visualizar o status de aplicação e as mensagens de implantação no Cloud Logging, consulte Como visualizar registros de auditoria.