Inspect stateless workloads

After you create a Deployment object, you can request information about it and its managed resources.

Before you begin

To run commands against a Kubernetes cluster, ensure you have the following resources:

  1. Locate the cluster name, or ask your Platform Administrator what the cluster name is.

  2. Sign in and generate the kubeconfig file for the Kubernetes cluster if you don't have one.

  3. Use the kubeconfig path of the Kubernetes cluster to replace KUBERNETES_CLUSTER_KUBECONFIG in these instructions.

To get the required permissions to view all workloads deployed in a project, ask your Organization IAM Admin to grant you the Workload Viewer role (workload-viewer) in your project namespace.

To get the required permissions to inspect stateless workloads, ask your Organization IAM Admin to grant you the Namespace Admin role (namespace-admin) in your project namespace.

View a project's container workloads

To view your project's container workloads, complete the following:

Console

  • In the navigation menu, select Kubernetes Engine > Workloads.

    You can view details for your container workloads, such as the following:

    • Name
    • Type
    • Number of pods
    • Kubernetes cluster
    • Last modified date

    The container workloads are organized by which Kubernetes cluster they belong to. Select the Cluster drop-down to switch the cluster context.

CLI

  • Run the following command to list all pods in your project:

    kubectl get pods -n PROJECT_NAMESPACE
    

    The output is similar to the following:

    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
    

Inspect the deployment

To request more detailed information about the components of a Deployment resource, run commands that directly target the entity you're looking to inspect.

Get Deployment object information

To get detailed information about the Deployment object, run:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe deployment DEPLOYMENT_NAME

Replace the following:

  • KUBERNETES_CLUSTER_KUBECONFIG: the kubeconfig file for the cluster running the deployment.

  • NAMESPACE: the project namespace.

  • DEPLOYMENT_NAME: the name of the Deployment object.

Display live configuration in YAML format

To view a Deployment object's manifest, run:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get deployments DEPLOYMENT_NAME -o yaml

This command displays the Deployment object's live configuration in YAML format.

List pods

To list the Pod objects created by the deployment, run:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pods -l KEY=VALUE

In this command, the -l flag lists all Pod objects with the specified key-value pair label in the specified cluster.

Replace the following:

  • KUBERNETES_CLUSTER_KUBECONFIG: the kubeconfig file for the cluster running the deployment.

  • NAMESPACE: the project namespace.

  • KEY: the key for the key-value pair label set in the deployment. For example, if the .template.metadata.labels field has the app: myapp label configured, the key is app.

  • VALUE: the value for the key-value pair label set in the deployment. For example, if the .template.metadata.labels field has the app: myapp label configured, the value is my-app.

For example, if you labeled the Deployment object app: my-app, you'd run the following command to see Pod objects with that label:

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    get pods -l app=my-app

Get specific pod information

To get information about a specific Pod object, run:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pod POD_NAME

Replace the following:

  • KUBERNETES_CLUSTER_KUBECONFIG: the kubeconfig file for the cluster running the deployment.

  • NAMESPACE: the project namespace.

  • POD_NAME: the name of the pod managed by the deployment.