CloudsArk
Troubleshooting Kubernetes

Fix kubectl Unauthorized

Learn practical fix kubectl unauthorized with kubectl commands, manifests, verification steps, common mistakes, and production-focused guidance.

Fix kubectl Unauthorized

Introduction

This guide explains fix kubectl unauthorized 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 resource relationships, desired state, manifests, events, and controller reconciliation. Always confirm with events and logs before editing the workload.

Step 1: Check Current State

kubectl get pods -A
kubectl get events -A --sort-by=.lastTimestamp

Expected output:

NAMESPACE   NAME                     READY   STATUS    RESTARTS   AGE
app         pod/web-7d9f8c-abcde     1/1     Running   0          2d

Step 2: Inspect Events and Logs

kubectl get events -A --sort-by=.lastTimestamp
kubectl explain pod.spec.containers

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 all -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: apps/v1
kind: Deployment
metadata:
  name: web
  namespace: app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web
        image: nginx:1.27
        ports:
        - containerPort: 80

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.

Summary

Treat fix kubectl unauthorized as an evidence-driven debugging task. Events identify the failing layer, logs explain application behavior, and rollout checks prove the fix worked.