Troubleshoot Kubernetes RBAC¶
Introduction¶
This guide explains troubleshoot kubernetes rbac with practical kubectl commands, realistic output, and production-focused checks. Use this workflow when an application is failing and you need evidence before changing manifests.
Symptoms¶
You may see pods stuck in a waiting state, failed rollouts, 4xx or 5xx responses, missing endpoints, failed probes, denied API calls, or repeated events in the namespace.
Common Causes¶
Common causes include subjects, verbs, resources, namespaces, pod security settings, and admission errors. Always confirm with events and logs before editing the workload.
Step 1: Check Current State¶
kubectl auth can-i get pods --as system:serviceaccount:app:backend -n app
kubectl get role,rolebinding -n app
Expected output:
yes
role.rbac.authorization.k8s.io/pod-reader created
Step 2: Inspect Events and Logs¶
kubectl get role,rolebinding -n app
kubectl describe serviceaccount backend -n app
Events show scheduler, kubelet, image pull, mount, and probe errors. Previous logs are critical when the container restarts quickly.
Step 3: Verify the Manifest or Runtime Setting¶
kubectl get resourcequota,limitrange -n app
kubectl get pod web-7d9f8c-abcde -n app -o yaml
Check selectors, image names, probes, resource limits, service accounts, volumes, and namespace references.
Step 4: Apply the Fix¶
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: app
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
Apply only the corrected field, then let the controller reconcile the desired state.
kubectl apply -f manifest.yaml
kubectl rollout status deployment/web -n app
Step 5: Confirm Recovery¶
kubectl get pods -n app
kubectl get events -n app --sort-by=.lastTimestamp
Common Mistakes¶
- Deleting pods before reading the events that explain why they failed.
- Changing probes, resources, images, and RBAC at the same time.
- Troubleshooting only the pod while ignoring the service, PVC, node, or service account.
Quick Checklist¶
- Check pod status and restart count.
- Read describe output and recent events.
- Inspect current and previous container logs.
- Verify dependent objects such as Secrets, ConfigMaps, PVCs, Services, and RBAC.
- Apply one fix and watch the rollout.
Related Guides¶
- kubectl Describe Pod
- kubectl Logs Previous Container
- Troubleshoot Kubernetes Events
- Kubernetes Pod Troubleshooting Checklist
Summary¶
Treat troubleshoot kubernetes rbac as an evidence-driven debugging task. Events identify the failing layer, logs explain application behavior, and rollout checks prove the fix worked.