Skip to content

[RCA] RCA Analysis Required #3

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:00:58 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' has unavailable replicas because the requested resources (10Gi memory and 4 CPU) exceed the available resources on the nodes where the pods are scheduled, leading to the pods not being scheduled.

Confidence: 85%


Evidence

  • The deployment description shows that 2 replicas are desired but 0 are available and 2 are unavailable, indicating a scheduling issue.
  • The pod template specifies resource requests of 10Gi memory and 4 CPU.
  • The 'describe deployment' output doesn't directly show node capacity, but the fact that the pods are unavailable suggests they cannot be scheduled due to insufficient resources.

Remediation Options

Option A

Reduce resource requests for the deployment

Low Risk | Quick

Lower the memory and CPU requests in the deployment configuration to values that can be satisfied by the available nodes. This will allow the pods to be scheduled and become available.

Command:

kubectl edit deployment resource-limit-test -n instavote

Option B

Increase the capacity of the nodes

Medium Risk | Complex

Add more nodes to the cluster or increase the CPU and memory resources of the existing nodes. This will increase the overall capacity of the cluster and allow the pods to be scheduled.


Analysis Steps

Click to expand step-by-step analysis

[OK] Planning

Plan generated: The deployment 'resource-limit-test' has unavailable replicas, likely due to resource constraints or configuration issues.

[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 related to the deployment

[
  {
    "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": {
        "app": "configmap-mount-test",
        "pod-template-hash": "d449d85b9"
      },
      "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 non-running 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

[...] 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