Cette page explique comment déployer une image de conteneur sur un cluster Google Kubernetes Engine (GKE) ou un cluster Anthos sur lequel l'autorisation binaire est activée. Les commandes kubectl
que vous utilisez pour déployer l'image sont les mêmes que celles que vous utilisez pour déployer des images sur des clusters qui n'utilisent pas l'autorisation binaire.
Avant de commencer
Assurez-vous que l'API Binary Authorization est activée dans votre projet et qu'un cluster GKE sur lequel l'autorisation binaire est activée est activée. Consultez les sections Configurer sur Google Kubernetes Engine ou Configurer sur des clusters Anthos.
Installez kubectl
pour interagir avec GKE.
Configurer kubectl
Vous devez mettre à jour le fichier kubeconfig
local pour votre installation kubectl
.
Cette opération fournit les identifiants et les informations de point de terminaison requis pour accéder au cluster dans les clusters GKE ou Anthos.
Pour configurer kubectl
, exécutez la commande gcloud
suivante :
GKE
gcloud container clusters get-credentials \ --zone ZONE \ CLUSTER_NAME
Remplacez les éléments suivants :
- ZONE : nom de la zone GKE dans laquelle s'exécute le cluster, par exemple,
us-central1-a
- CLUSTER_NAME : nom du cluster
clusters Anthos
gcloud container fleet memberships get-credentials \ --location LOCATION \ MEMBERSHIP_NAME
Remplacez les éléments suivants :
- LOCATION: emplacement de l'appartenance au parc du cluster Anthos, par exemple
global
- MEMBERSHIP_NAME: nom de l'appartenance au parc du cluster Anthos
Déployer l'image de conteneur
Déployez votre image de conteneur comme suit :
Configurer les variables d'environnement :
POD_NAME=POD_NAME IMAGE_PATH=IMAGE_PATH IMAGE_DIGEST=IMAGE_DIGEST
Remplacez les éléments suivants :
- POD_NAME : nom que vous souhaitez utiliser pour la charge de travail GKE.
- IMAGE_PATH : chemin d'accès à l'image dans Artifact Registry, Container Registry ou un autre registre.
IMAGE_DIGEST : condensé du fichier manifeste de l'image. Les exemples sont les suivants :
- Artifact Registry :
- Chemin d'accès :
us-docker.pkg.dev/google-samples/containers/gke/hello-app
- Condensé :
sha256:37e5287945774f27b418ce567cd77f4bbc9ef44a1bcd1a2312369f31f9cce567
- Chemin d'accès :
- Container Registry :
- Chemin d'accès :
gcr.io/google-samples/hello-app
- Condensé :
sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
- Chemin d'accès :
Pour savoir comment obtenir le condensé d'une image dans Artifact Registry, consultez la page Gérer les images. Pour une image dans Container Registry, consultez la section Répertorier les versions d'une image.
- Artifact Registry :
Déployez votre image à l'aide de la commande
kubectl run
.Vous devez déployer l'image à l'aide du condensé au lieu d'un tag tel que
1.0
oulatest
, car l'autorisation binaire utilise à la fois le chemin d'accès de l'image et le condensé afin de rechercher les attestations.Pour déployer l'image, exécutez la commande
kubectl
suivante :kubectl run ${POD_NAME} \ --image ${IMAGE_PATH}@${IMAGE_DIGEST}
Maintenant, vérifiez que le déploiement a été bloqué par l'autorisation binaire.
kubectl get pods
Votre pod s'affiche.
Configuration ouverte ("fail open")
Le processus d'application échoue si les clusters GKE ou Anthos ne peuvent pas accéder au serveur d'autorisation binaire pour une raison quelconque. Par exemple, si vous déployez une image de conteneur et que l'outil d'application de l'autorisation binaire est inaccessible en raison d'une panne de réseau, l'image est déployée, même si l'outil d'application l'aurait bloquée. Si Cloud Audit Logs est activé, l'entrée de journal indique l'image déployée avec une condition d'échec d'ouverture.
Déployer des images qui ne respectent pas le règlement
L'autorisation binaire est compatible avec une fonctionnalité appelée bris de glace qui permet de déployer une image, même si elle enfreint la stratégie.
Pour en savoir plus, consultez la section Utiliser le mode "bris de glace".
Effectuer un nettoyage
Pour le nettoyage, supprimez le pod en exécutant la commande suivante :
kubectl delete pod ${POD_NAME}
Étapes suivantes
- En savoir plus sur le mode de simulation.
- Découvrez comment utiliser la validation continue.
- Découvrez comment utiliser des condensés d'images dans les fichiers manifestes Kubernetes.