KubeGlanceDownload

Kubernetes · Field notes

KubeGlance Blog

Practical Kubernetes troubleshooting, kubectl deep-dives, and cluster operations — from the team building KubeGlance.

Giving an AI coding agent read-only access to your Kubernetes cluster
security

Giving an AI coding agent read-only access to your Kubernetes cluster

Give an AI coding agent its own read-only Kubernetes identity: a ServiceAccount config bound to a get/list/watch ClusterRole, checked with kubectl auth can-i.

· 10 min read
PVC stuck in Pending: the four messages, and the one that is not an error
troubleshooting

PVC stuck in Pending: the four messages, and the one that is not an error

A PVC stuck in Pending says why in its events: no storage class is set, waiting for first consumer, waiting for pod to be scheduled, or ExternalProvisioning.

· 10 min read
Init:0/2, Init:CrashLoopBackOff, Init:ErrImagePull: the Init: prefix in kubectl's STATUS column
kubectl

Init:0/2, Init:CrashLoopBackOff, Init:ErrImagePull: the Init: prefix in kubectl's STATUS column

Init:ErrImagePull, Init:CrashLoopBackOff and Init:0/2 all mean an init container is blocking the pod. How the Init: status is built, and how to read it.

· 9 min read
Pod stuck in ContainerCreating: what the kubelet is still waiting for
troubleshooting

Pod stuck in ContainerCreating: what the kubelet is still waiting for

A pod stuck in ContainerCreating is waiting on a volume, the CNI plugin or an image pull. How to tell which, plus the new v1.37 SELinux cause.

· 10 min read
What kubectl rollout history CHANGE-CAUSE is really showing you
kubectl

What kubectl rollout history CHANGE-CAUSE is really showing you

A free-text annotation on the Deployment, copied to whichever ReplicaSet is current when you set it. It can describe a revision it was never part of.

· 9 min read
Kubernetes requests vs usage: finding reserved but idle CPU and memory
operations

Kubernetes requests vs usage: finding reserved but idle CPU and memory

Compare what pods reserve with what they use over a week, in PromQL: the rate() trap, p95 vs peak, safe requests, and which pods get evicted first.

· 11 min read
Query Prometheus through the Kubernetes API server, without port-forward
kubectl

Query Prometheus through the Kubernetes API server, without port-forward

Reach Prometheus, VictoriaMetrics or Thanos with kubectl get --raw through the API server's service proxy: the URL, the RBAC, and two misleading 503s.

· 11 min read
What a kubeconfig actually grants, and how to scope one down
security

What a kubeconfig actually grants, and how to scope one down

A kubeconfig grants nothing by itself. It carries an identity, and the cluster decides what that identity can do. How to find out, and how to hand out less.

· 10 min read
Can your cluster lose a node? Three checks before you drain
operations

Can your cluster lose a node? Three checks before you drain

A drain that hangs and a replacement pod stuck Pending have the same two causes: a disruption budget that can never allow one, and requests nobody uses.

· 9 min read
Your GPU pod is CrashLoopBackOff and Kubernetes will not say the device failed
troubleshooting

Your GPU pod is CrashLoopBackOff and Kubernetes will not say the device failed

A failed GPU surfaces as an ordinary restart loop with no indication the device is the cause. How to diagnose it today, and what KEP-4680 adds to pod status.

· 10 min read
Why kubectl top disagrees with your dashboard
kubectl

Why kubectl top disagrees with your dashboard

kubectl top prints a rate over a window that is not fixed, rounded to whole units, from a source that keeps no history. Your dashboard does none of that.

· 9 min read
What RESTARTS 3 (5m ago) is actually counting
kubectl

What RESTARTS 3 (5m ago) is actually counting

The RESTARTS column is a sum across every container in the pod, and the time in brackets is the most recent restart of any of them. Neither is per-container.

· 8 min read
CPU requests vs limits: what each one writes to the cgroup
concepts

CPU requests vs limits: what each one writes to the cgroup

Requests become cpu.weight, limits become cpu.max. One is a share of a contended CPU, the other is a hard ceiling enforced whether or not the node is busy.

· 12 min read
CreateContainerConfigError and CreateContainerError: the four messages
troubleshooting

CreateContainerConfigError and CreateContainerError: the four messages

CreateContainerConfigError, or Init:CreateContainerConfigError: a missing ConfigMap or Secret key, almost always. The message names the missing object.

· 9 min read
Pod stuck in Terminating: what is actually blocking the delete
troubleshooting

Pod stuck in Terminating: what is actually blocking the delete

A pod stuck in Terminating is one of four things: a grace period, an unreachable node, a finalizer, or a volume that will not detach. How to tell which.

· 11 min read
x509: certificate signed by unknown authority, and kubectl's other connection errors
troubleshooting

x509: certificate signed by unknown authority, and kubectl's other connection errors

Four kubectl errors, four different layers. Work out which one failed before you change anything, because the fixes are not interchangeable.

· 11 min read
OOMKilled and exit code 137: what actually happened
troubleshooting

OOMKilled and exit code 137: what actually happened

OOMKilled means your container hit its own memory limit, not that the node ran out. Three different kills look alike in kubectl. How to tell them apart.

· 11 min read
0/3 nodes are available: how to fix a Pending pod
troubleshooting

0/3 nodes are available: how to fix a Pending pod

The FailedScheduling message is a per-node tally, not one reason. Here is how to read it, and the fix for every clause it can contain.

· 10 min read
How kubectl decides what to put in the STATUS column
kubectl

How kubectl decides what to put in the STATUS column

kubectl get pods never shows status.phase. Here is the real algorithm behind the STATUS column, and why a pod reads Running while a container crash-loops.

· 7 min read
RBAC for a read-only Kubernetes user (and why view isn't enough)
security

RBAC for a read-only Kubernetes user (and why view isn't enough)

The built-in view role has three surprises: no cluster-scoped resources, no secrets, and it is aggregated — so your cloud provider may have quietly widened it.

· 10 min read
How KUBECONFIG merges multiple files (first wins, not last)
kubectl

How KUBECONFIG merges multiple files (first wins, not last)

Set KUBECONFIG to several files and kubectl merges them by a rule that surprises most people: the first file to define a name wins, and later files are ignored.

· 8 min read
How to fix CrashLoopBackOff in Kubernetes
troubleshooting

How to fix CrashLoopBackOff in Kubernetes

CrashLoopBackOff is not an error, it is a waiting state. The exit code tells you what actually happened. Here is how to read it and fix each cause.

· 9 min read
ImagePullBackOff and ErrImagePull: what they mean and how to fix them
troubleshooting

ImagePullBackOff and ErrImagePull: what they mean and how to fix them

ErrImagePull is the failure. ImagePullBackOff is the waiting. The real error is in the pod's Events, and there are only about seven things it ever says.

· 8 min read

Your clusters, on every screen you own

KubeGlance is a native Kubernetes client for iPhone and iPad — the real dashboard, not a companion — with a full Mac app on the same core. Pods, workloads, logs and events, straight from your kubeconfig.

Download KubeGlance