Ce document explique comment inspecter les charges de travail sans état existantes qui s'exécutent dans un cluster Kubernetes Google Distributed Cloud (GDC) sous air gap. Les charges de travail sans état vous permettent d'exécuter le déploiement de votre application sans avoir à stocker de données ni d'état d'application. Vous pouvez afficher vos charges de travail sans état avec la console GDC ou l'CLI kubectl pour surveiller l'utilisation des ressources et l'état des charges de travail.
Ce document s'adresse aux développeurs du groupe d'opérateurs d'applications, qui sont chargés de gérer les charges de travail d'application pour leur organisation. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.
Avant de commencer
Pour effectuer les tâches décrites dans ce document, vous devez demander les autorisations nécessaires et préparer votre environnement.
Demander des rôles IAM
Vous devez disposer de rôles spécifiques pour obtenir les autorisations nécessaires pour afficher et inspecter les charges de travail sans état. Les rôles dont vous avez besoin dépendent du fait que vous travaillez dans un cluster partagé au niveau de l'organisation ou dans un cluster standard au niveau du projet. Pour en savoir plus, consultez Configurations de cluster Kubernetes.
Rôles de cluster partagé
Demandez à votre administrateur IAM de projet de vous accorder les rôles suivants dans l'espace de noms de votre projet en fonction de la tâche à effectuer :
- Lecteur de charges de travail (
workload-viewer) : affiche toutes les charges de travail déployées dans un cluster partagé. - Administrateur d'espace de noms (
namespace-admin) : crée, supprime, modifie ou affiche des charges de travail dans un espace de noms de projet de cluster partagé.
Ces rôles sont liés à l'espace de noms de votre projet.
Rôles de cluster standard
Pour créer, supprimer, modifier ou afficher des charges de travail dans un cluster standard, demandez à votre administrateur IAM de projet de vous accorder le rôle Développeur de cluster (cluster-developer). Ce rôle est lié à l'espace de noms de votre projet.
Préparer votre environnement
Pour exécuter des commandes sur un cluster Kubernetes à l'aide de l'API, assurez-vous de disposer des ressources suivantes :
Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe d'administrateurs de plate-forme.
Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes.
Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer
KUBERNETES_CLUSTER_KUBECONFIGdans ces instructions.
Afficher les charges de travail de conteneurs d'un projet
Pour afficher les charges de travail de conteneurs de votre projet, procédez comme suit :
Console
Dans le menu de navigation, sélectionnez Kubernetes Engine > Charges de travail.
Vous pouvez afficher des informations sur vos charges de travail de conteneurs, telles que les suivantes :
- Nom
- Type
- Nombre de pods
- Cluster Kubernetes
- Date de dernière modification
Les charges de travail de conteneurs sont organisées en fonction du cluster Kubernetes auquel elles appartiennent. Sélectionnez la liste déroulante Cluster pour modifier le contexte du cluster.
kubectl
Exécutez la commande suivante pour afficher la liste de tous les pods de votre projet :
kubectl get pods -n PROJECT_NAMESPACELe résultat ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE nginx-workload-ah-aa-1228 1/1 Running 0 12h nginx-workload-ah-ab-6784 1/1 Running 0 11h nginx-workload-ah-ac-0045 1/1 Running 0 12h
Inspecter le déploiement
Pour demander des informations plus détaillées sur les composants d'une ressource Deployment, exécutez des commandes qui ciblent directement l'entité que vous souhaitez inspecter.
Obtenir des informations sur l'objet Deployment
Pour obtenir des informations détaillées sur l'objet Deployment, exécutez la commande suivante :
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe deployment DEPLOYMENT_NAME
Remplacez les éléments suivants :
KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster exécutant le déploiement.NAMESPACE: espace de noms. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.DEPLOYMENT_NAME: nom de l'objetDeployment.
Afficher la configuration active au format YAML
Pour afficher le fichier manifeste d'un objet Deployment, exécutez la commande suivante :
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get deployments DEPLOYMENT_NAME -o yaml
Cette commande affiche la configuration active de l'objet Deployment au format YAML.
Répertorier les pods
Pour répertorier les objets Pod créés par le déploiement, exécutez la commande suivante :
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l KEY=VALUE
Dans cette commande, l'indicateur -l répertorie tous les objets Pod avec l'étiquette de paire clé/valeur spécifiée dans le cluster spécifié.
Remplacez les éléments suivants :
KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster exécutant le déploiement.NAMESPACE: espace de noms. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.KEY: clé de l'étiquette de paire clé/valeur définie dans le déploiement. Par exemple, si le champ.template.metadata.labelsest configuré avec l'étiquetteapp: myapp, la clé estapp.VALUE: valeur de l'étiquette de paire clé/valeur définie dans le déploiement. Par exemple, si le champ.template.metadata.labelsest configuré avec l'étiquetteapp: myapp, la valeur estmy-app.
Par exemple, si vous avez étiqueté l'objet Deployment app: my-app, vous exécuterez la commande suivante pour afficher les objets Pod avec cette étiquette :
kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
get pods -l app=my-app
Obtenir des informations spécifiques sur un pod
Pour obtenir des informations sur un objet Pod spécifique, exécutez la commande suivante :
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
Remplacez les éléments suivants :
KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster exécutant le déploiement.NAMESPACE: espace de noms. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.POD_NAME: nom du pod géré par le déploiement.
Étape suivante
- Mettre à jour les charges de travail sans état
- Effectuer le scaling des charges de travail sans état
- Gérer des pools de nœuds