Listing Resources

List Nodes

Print out all of the Node names in the cluster using kr8s.get().

import kr8s

for node in kr8s.get("nodes"):
    print(node.name)
import kr8s.asyncio

async for node in kr8s.asyncio.get("nodes"):
    print(node.name)

List Pods in all Namespaces

List all Pods in all namespaces with kr8s.get() and print their IP, namespace and name.

import kr8s

for pod in kr8s.get("pods", namespace=kr8s.ALL):
    print(pod.status.podIP, pod.metadata.namespace, pod.metadata.name)
import kr8s

async for pod in kr8s.asyncio.get("pods", namespace=kr8s.ALL):
    print(pod.status.podIP, pod.metadata.namespace, pod.metadata.name)

List Ingresses (all styles)

List all Ingresses in the current namespace with kr8s.get() using all styles from shorthand to explicit group and version naming.

import kr8s
from kr8s.objects import Ingress

# All of these are equivalent
ings = list(kr8s.get("ing"))                           # Short name
ings = list(kr8s.get("ingress"))                       # Singular
ings = list(kr8s.get("ingresses"))                     # Plural
ings = list(kr8s.get("Ingress"))                       # Title
ings = list(kr8s.get("ingress.networking.k8s.io"))     # Full group name
ings = list(kr8s.get("ingress.v1.networking.k8s.io"))  # Full with explicit version
ings = list(kr8s.get("ingress.networking.k8s.io/v1"))  # Full with explicit version alt.
ings = list(kr8s.get(Ingress))                         # Class
import kr8s.asyncio
from kr8s.asyncio.objects import Ingress

# All of these are equivalent
ings = [ing async for ing in kr8s.asyncio.get("ing")]                           # Short name
ings = [ing async for ing in kr8s.asyncio.get("ingress")]                       # Singular
ings = [ing async for ing in kr8s.asyncio.get("ingresses")]                     # Plural
ings = [ing async for ing in kr8s.asyncio.get("Ingress")]                       # Title
ings = [ing async for ing in kr8s.asyncio.get("ingress.networking.k8s.io")]     # Full group name
ings = [ing async for ing in kr8s.asyncio.get("ingress.v1.networking.k8s.io")]  # Full with explicit version
ings = [ing async for ing in kr8s.asyncio.get("ingress.networking.k8s.io/v1")]  # Full with explicit version alt.
ings = [ing async for ing in kr8s.asyncio.get(Ingress)]                         # Class

List Ready Pods

Get a list of Pod resources that have the Ready=True condition using kr8s.get().

import kr8s

for pod in kr8s.get("pods", namespace="kube-system"):
    if pod.ready():
        print(pod.name)
import kr8s

async for pod in kr8s.asyncio.get("pods", namespace="kube-system"):
    if await pod.ready():
        print(pod.name)

List Pods by label selector

Starting from a dictionary containing a label selector get all Pods from all Namespaces matching that label with kr8s.get().

import kr8s

selector = {'component': 'kube-scheduler'}

for pod in kr8s.get("pods", namespace=kr8s.ALL, label_selector=selector):
    print(pod.namespace, pod.name)
import kr8s

selector = {'component': 'kube-scheduler'}

async for pod in kr8s.asyncio.get("pods", namespace=kr8s.ALL, label_selector=selector):
    print(pod.namespace, pod.name)

List Running Pods

Get a list of Pod resources that have status.phase=Running using a field selector in kr8s.get().

import kr8s

for pod in kr8s.get("pods", namespace="kube-system", field_selector="status.phase=Running"):
    print(pod.name)
import kr8s

async for pod in kr8s.asyncio.get("pods", namespace="kube-system", field_selector="status.phase=Running"):
    print(pod.name)

List Pods sorted by restart count

List Pods with kr8s.get() and sort them by their restart count.

import kr8s

pods = list(kr8s.get("pods", namespace=kr8s.ALL))
pods.sort(key=lambda pod: pod.status.containerStatuses[0].restartCount, reverse=True)

for pod in pods:
    print(pod.name, pod.status.containerStatuses[0].restartCount)
import kr8s

pods = [po async for po in kr8s.asyncio.get("pods", namespace=kr8s.ALL)]
pods.sort(key=lambda pod: pod.status.containerStatuses[0].restartCount, reverse=True)

for pod in pods:
    print(pod.name, pod.status.containerStatuses[0].restartCount)