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:
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.
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.