Déployer des conteneurs

Cette page explique comment déployer une image de conteneur sur un cluster Google Kubernetes Engine (GKE) sur lequel l'autorisation binaire est activée. Les commandes que vous utilisez pour le déploiement sont identiques à celles que vous utilisez pour déployer des images sur des clusters qui n'utilisent pas l'autorisation binaire.

Avant de commencer

Installez kubectl pour interagir avec GKE.

Configurer kubectl

Vous devez mettre à jour le fichier kubeconfig local pour votre installation kubectl. Cela fournit les identifiants et les informations de point de terminaison requis pour accéder au cluster dans GKE.

Pour configurer kubectl, exécutez la commande suivante :

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

Où :

  • ZONE correspond au nom de la zone GKE dans laquelle s'exécute le cluster (par exemple, us-central1-a1) ;
  • CLUSTER_NAME correspond au nom du cluster.

Déployer l'image de conteneur

Vous pouvez déployer 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 ou latest, 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 :

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

Où :

  • DEPLOYMENT_NAME correspond au nom que vous souhaitez utiliser pour la charge de travail GKE ;
  • IMAGE_PATH:IMAGE_DIGEST correspondent respectivement au chemin et au condensé de l'image dans Container Registry ou un autre registre (par exemple, gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4).

Ignorer une stratégie

L'autorisation binaire accepte une fonctionnalité appelée bris de glace, qui vous permet d'ignorer une stratégie d'autorisation lorsque vous déployez une image de conteneur. Cette fonctionnalité est mise en œuvre conformément aux recommandations figurant dans la spécification des contrôleurs d'admission Kubernetes.

L'exemple suivant montre comment créer un pod GKE en tirant parti du mode "bris de glace" pour ignorer une stratégie :

  1. Créez un fichier de configuration au format YAML. Ce fichier contient l'annotation de bris de glace ainsi que d'autres informations requises pour créer le 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
    

    GKE vous permet également de spécifier une configuration au format JSON pour les nouvelles ressources, si vous le souhaitez.

  2. Créez le pod à l'aide de kubectl :

    kubectl create -f YAML_file
    

Vérifier qu'une image est en cours d'exécution

Pour vérifier que l'image est bien en cours d'exécution, saisissez la commande suivante :

kubectl get pods

La commande imprime un message semblable à celui ci-dessous, indiquant que le déploiement a bien été effectué :

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

Consulter les journaux d'audit

Pour en savoir plus sur l'affichage de l'état d'application et des messages de déploiement dans Cloud Logging, consultez la page Consulter les journaux d'audit.