Skip to content

[RCA] RCA Analysis Required #4

Description

@initcron

Root Cause Analysis Report

Resource: resource-limit-test
Kind: deployments
Namespace: instavote

RCA Report

Resource: deployments/resource-limit-test
Namespace: instavote
Generated: 30/12/2025, 7:15:11 PM


Symptoms / Initial Diagnosis

The following symptoms triggered this RCA:

  • The deployment 'resource-limit-test' in namespace 'instavote' is unavailable. All replicas are unavailable, indicated by '2 unavailable'.

Root Cause

The deployment 'resource-limit-test' is unavailable because its pods likely cannot be scheduled due to high resource requests (10Gi memory, 4 CPU) exceeding available cluster resources.

Confidence: 85%


Evidence

  • The deployment description shows that all replicas are unavailable.

  • The pod template specifies resource requests of 10Gi memory and 4 CPU.

  • The absence of events in the deployment description suggests that the pods are not even being scheduled, which indicates a resource constraint issue.

  • Lack of logs further supports the theory that pods are not starting.

  • step-1: Deployment 'resource-limit-test' has 2 unavailable replicas.

  • step-1: Pod template requests 10Gi memory and 4 CPU.

  • step-1: No events are listed in the deployment description, suggesting a scheduling problem.

  • step-4: No logs are available, suggesting the pod never started.


Remediation Options

Option A

Reduce resource requests for the deployment

Low Risk | Moderate

Modify the deployment to reduce the requested memory and CPU to levels that the cluster can accommodate. This will allow the pods to be scheduled and deployed.

Command:

kubectl edit deployment resource-limit-test -n instavote

Option B

Increase cluster capacity

Medium Risk | Complex

Add more nodes to the cluster or increase the resources available on existing nodes to accommodate the high resource requests. This is a more complex solution but allows the application to run with its current resource requirements.

Command:

Consult your cloud provider's documentation for scaling Kubernetes clusters.

Analysis Steps

Click to expand step-by-step analysis

[OK] Planning

Plan generated: The deployment 'resource-limit-test' is unavailable due to issues with its pods, possibly related to resource limits or configuration errors.

[OK] Describe the deployment

Name:                   resource-limit-test
Namespace:              instavote
CreationTimestamp:      Sun, 07 Dec 2025 15:25:25 +0530
Labels:                 app=resource-limit-test
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=resource-limit-test
Replicas:               2 desired | 2 updated | 2 total | 0 available | 2 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=resource-limit-test
  Containers:
   memory-hog:
    Image:      nginx:latest
    Port:       80/TCP
    Host Port:  0/TCP
    Limits:
      cpu:     8
      memory:  20Gi
    Requests:
      cpu:         4
      memory:      10Gi
    Environment:   <none>
    Mounts:        <none>
  Volumes:         <none>
  Node-Selectors:  <none>
  Tolerations:     <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumRe

[OK] Get pods in the namespace

[
  {
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
      "name": "configmap-mount-test-d449d85b9-xqx2b",
      "namespace": "instavote",
      "uid": "055b7157-e873-461b-bbad-91ae5aae9566",
      "resourceVersion": "2208921",
      "creationTimestamp": "2025-12-07T09:55:26Z",
      "labels": {
        "pod-template-hash": "d449d85b9",
        "app": "configmap-mount-test"
      },
      "annotations": null,
      "ownerReferences": [
        {
          "apiVersion": "apps/v1",
          "kind": "ReplicaSet",
          "name": "configmap-mount-test-d449d85b9",
          "uid": "176a4686-e6a7-4822-946d-ab0ee9f1ee43",
          "controller": true,
          "blockOwnerDeletion": true
        }
      ]
    },
    "spec": {
      "containers": [
        {
          "command": [
            "sh",
            "-c",
            "cat /config/app.properties && sleep 3600"
          ],
          "image": "busybox:latest",
          "imagePullPolicy": "Always",
          "name": "

[OK] Describe one of the pods

Name:                   resource-limit-test
Namespace:              instavote
CreationTimestamp:      Sun, 07 Dec 2025 15:25:25 +0530
Labels:                 app=resource-limit-test
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=resource-limit-test
Replicas:               2 desired | 2 updated | 2 total | 0 available | 2 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=resource-limit-test
  Containers:
   memory-hog:
    Image:      nginx:latest
    Port:       80/TCP
    Host Port:  0/TCP
    Limits:
      cpu:     8
      memory:  20Gi
    Requests:
      cpu:         4
      memory:      10Gi
    Environment:   <none>
    Mounts:        <none>
  Volumes:         <none>
  Node-Selectors:  <none>
  Tolerations:     <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumRe

[OK] Get logs from the pod

No logs available

[...] Generating Conclusion


Generated by KubeAgentics RCA

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions