Tool News

Kubernetes 1.36.3 Released: What QA Engineers Should Test Before Upgrading

Kubernetes 1.36.3 is a patch release, but QA teams should still validate cluster health, application compatibility, networking, automation, performance, and resilience before promoting the upgrade.

25 min read
Kubernetes 1.36.3 Released: What QA Engineers Should Test Before Upgrading
Advertisement
What You Will Learn
Why Kubernetes Patch Releases Matter to QA Engineers
Kubernetes 1.36.3: Patch Release or Feature Upgrade?
What Should an SDET Validate First?
Build a Kubernetes Upgrade Baseline

Kubernetes 1.36.3 is a maintenance release, so the most useful question for QA engineers is not simply “what is new?” but what should be validated before this version reaches a test or production cluster?

Kubernetes patch releases are especially important for SDETs because even when they do not introduce headline-level platform features, changes in control-plane behavior, dependencies, networking, scheduling, storage, or security can affect automated test environments.

For QA teams, a Kubernetes upgrade should therefore be treated as a compatibility and regression exercise, not just a version-number change.

The official Kubernetes repository currently lists the 1.36 release line and its associated releases; always use the project’s changelog and release artifacts as the source of truth for the exact changes included in the patch release. (GitHub)

Why Kubernetes Patch Releases Matter to QA Engineers

A patch upgrade may appear simple:

kubectl version --short

followed by a cluster upgrade.

But your test infrastructure is rarely just Kubernetes itself.

A typical automation environment may contain:

Kubernetes
   ↓
Ingress
   ↓
Application Pods
   ↓
Services
   ↓
Database
   ↓
Test Runner
   ↓
Reports + Logs + Metrics

A change in any underlying component can surface as a test failure.

That means the correct upgrade question is:

Does the existing application and test automation behavior remain stable on Kubernetes 1.36.3?

That is a much stronger engineering question than simply asking whether the cluster became Ready.

Kubernetes 1.36.3: Patch Release or Feature Upgrade?

It is useful to distinguish three different upgrade scenarios.

Upgrade typeExampleQA risk
Major/minor version1.35 → 1.36Higher
Patch version1.36.2 → 1.36.3Usually lower
Component upgradeKubernetes + container runtime + CNIPotentially higher

A patch release generally requires less application migration than a minor-version upgrade.

However, “lower risk” does not mean “zero risk.”

Your test infrastructure can still expose problems in:

  • pod scheduling
  • networking
  • storage
  • admission behavior
  • API compatibility
  • container runtime integration
  • CI/CD deployment
  • monitoring
  • test teardown
Image
Image

What Should an SDET Validate First?

Before upgrading a shared test cluster, establish a baseline.

Capture:

kubectl get nodes -o wide
kubectl get pods -A
kubectl get events -A
kubectl get deployments -A
kubectl get services -A

Then record:

Node readiness
Pod restart count
Pending pods
CrashLoopBackOff pods
Deployment availability
Service health
Ingress health
Test execution time
Test failure rate

This gives you something to compare against after the upgrade.

Without a baseline, you may see a failure after upgrading and incorrectly assume that Kubernetes caused it.

Build a Kubernetes Upgrade Baseline

For example:

MetricBefore Upgrade
Ready nodes6/6
Running pods84
Pending pods0
CrashLoopBackOff0
Deployment failures0
API test pass rate99.8%
UI test pass rate99.2%
Average CI duration18 min
Pod restart rate<1%

After upgrading to Kubernetes 1.36.3, collect the same metrics.

Then compare:

Before
   ↓
Upgrade
   ↓
After
   ↓
Difference

This turns an upgrade into measurable engineering work.

Kubernetes 1.36.3 and Test Environment Stability

One of the biggest mistakes teams make is testing only the control plane.

The application environment matters just as much.

Consider:

Control Plane
      ↓
Scheduler
      ↓
Nodes
      ↓
Container Runtime
      ↓
Pods
      ↓
Services
      ↓
Test Application

A cluster can report:

STATUS = Ready

while your test application experiences:

Connection failures
Slow startup
Failed probes
DNS problems
Ingress errors
Storage delays

Therefore, cluster health and application health should be tested separately.

Kubernetes Health Is Not Application Health

A healthy cluster:

Nodes = Ready

doesn’t necessarily mean:

Application = Healthy

For QA, create separate validation layers:

Cluster Health
      ↓
Infrastructure Health
      ↓
Application Health
      ↓
Test Health

For example:

Layer 1 → Nodes Ready
Layer 2 → Pods Ready
Layer 3 → Services reachable
Layer 4 → API responds correctly
Layer 5 → Automated tests pass

This hierarchy makes troubleshooting much easier.

Test Pod Scheduling After the Upgrade

Scheduling is fundamental to Kubernetes-based test infrastructure.

A basic deployment test might be:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: qa-demo
spec:
  replicas: 3
  selector:
    matchLabels:
      app: qa-demo
  template:
    metadata:
      labels:
        app: qa-demo
    spec:
      containers:
        - name: app
          image: nginx:latest
          ports:
            - containerPort: 80

Deploy it:

kubectl apply -f deployment.yaml

Then validate:

kubectl get pods -l app=qa-demo -o wide

You want to confirm:

3 replicas
3 Running
0 Pending
0 CrashLoopBackOff

This simple check can become an automated smoke test after a cluster upgrade.

Why Scheduling Matters to Test Automation

Imagine a parallel test suite requiring:

20 browser pods
10 API test pods
5 database pods

Suddenly, your cluster needs to schedule:

35+ workloads

If scheduling behavior changes or the cluster has insufficient capacity, your test suite may fail because of infrastructure rather than application defects.

That’s why large-scale test automation should monitor:

Pending pods
Scheduling latency
Node capacity
CPU requests
Memory requests
Taints
Tolerations
Affinity rules

Kubernetes vs Docker for Test Environments

Many QA engineers still use Docker directly for local test environments.

Docker is excellent for:

Single-machine containers
Local development
Simple integration tests
Fast experiments

Kubernetes becomes more valuable when you need:

Multiple services
Parallel workloads
Self-healing
Service discovery
Scaling
Distributed environments
CapabilityDockerKubernetes
Local containersExcellentPossible but heavier
Multi-service orchestrationGoodExcellent
Horizontal scalingLimitedNative
Self-healingLimitedStrong
SchedulingBasicAdvanced
Distributed test environmentsLimitedStrong
Production-like environmentsModerateExcellent

For SDETs, the choice depends on the test problem.

Do not introduce Kubernetes simply because it is popular.

Use it when your test architecture actually benefits from orchestration.

Kubernetes vs Docker Compose for Integration Testing

Docker Compose can be simpler for a test such as:

API
 +
PostgreSQL
 +
Redis

A Compose environment might look like:

services:
  api:
    image: my-api:test

  postgres:
    image: postgres:18

  redis:
    image: redis:latest

Kubernetes becomes more attractive when the same test needs:

Multiple replicas
Ingress
Network policies
Persistent volumes
Horizontal scaling
Pod failure recovery
Distributed services

The strategic lesson is:

Choose the smallest orchestration platform that accurately represents the system you need to test.

Test Kubernetes Networking

Networking should be part of your post-upgrade validation.

Start with:

kubectl get svc -A
kubectl get endpoints -A

Then test service-to-service communication.

For example:

Test Runner
    ↓
API Service
    ↓
Auth Service
    ↓
Database Service

A simple Kubernetes smoke test might execute:

kubectl run network-test \
  --image=curlimages/curl \
  --rm -it \
  --restart=Never \
  -- curl http://my-api-service:8080/health

Expected result:

HTTP 200

But don’t stop there.

Test:

DNS
Service discovery
Internal connectivity
Ingress
TLS
External connectivity
Network policies

DNS Testing Is Especially Important

Your application might depend on service discovery:

http://auth-service
http://database-service
http://payment-service

After an upgrade, verify DNS resolution from inside a pod.

For example:

kubectl exec -it <pod-name> -- \
  nslookup auth-service

Then test the actual endpoint:

kubectl exec -it <pod-name> -- \
  curl http://auth-service:8080/health

This separates:

DNS problem

from:

Application problem

That distinction can save significant debugging time.

Kubernetes and Automated API Testing

A Kubernetes-based API test environment can look like:

CI
 ↓
Test Runner
 ↓
Ingress
 ↓
API Gateway
 ↓
Microservices
 ↓
Database

Your test:

def test_health(api_client):
    response = api_client.get("/health")

    assert response.status_code == 200
    assert response.json()["status"] == "healthy"

may pass locally but fail in Kubernetes.

Why?

Potential causes include:

Service discovery
DNS
Ingress
Network policy
Pod startup
Readiness
Resource pressure

This is why Kubernetes-specific test diagnostics are essential.

Readiness and Liveness Probes

One of the most common sources of confusion is the difference between application startup and application readiness.

Example:

readinessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 15
  periodSeconds: 20

Your SDET tests should verify that these probes represent real application states.

A bad readiness probe can cause:

Pod Running
but
Service unavailable

A bad liveness probe can cause:

Healthy application
but
Repeated restarts

That creates false test failures.

Kubernetes Upgrade Testing Should Include Failure Scenarios

Don’t only test successful deployments.

Deliberately test:

Pod crash
Node failure
Service restart
Application restart
Database restart
Network interruption
Slow startup
High CPU
High memory

For example:

kubectl delete pod <pod-name>

Then watch recovery:

kubectl get pods -w

Your expected behavior might be:

Pod deleted
   ↓
ReplicaSet detects difference
   ↓
Replacement pod created
   ↓
Readiness passes
   ↓
Service resumes

That is far more valuable than simply checking kubectl get nodes.

Kubernetes 1.36.3 and CI/CD

Your CI system is another critical integration point.

A typical pipeline might be:

Git Push
   ↓
Build
   ↓
Deploy to Kubernetes
   ↓
Wait for rollout
   ↓
Run API tests
   ↓
Run UI tests
   ↓
Collect logs
   ↓
Publish results
   ↓
Destroy environment

Make the deployment verification explicit.

kubectl rollout status deployment/my-api --timeout=180s

Then:

kubectl get pods

Then run your tests.

This prevents a test suite from starting against an environment that has not actually become ready.

Add Kubernetes Diagnostics to CI

When a test fails, automatically capture:

kubectl get pods -A
kubectl get events -A
kubectl get nodes
kubectl describe pods -A

Also collect application logs:

kubectl logs deployment/my-api

A powerful CI failure artifact might therefore contain:

Test Report
+
Application Logs
+
Pod Status
+
Kubernetes Events
+
Deployment Status

Now an engineer can investigate the failure without reproducing it immediately.

Image
Image

Kubernetes 1.36.3 Upgrade Validation Matrix

ValidationBefore UpgradeAfter UpgradeExpected
Node readinessRecordRecordNo regression
Pod startupRecordRecordNo significant regression
API responseRecordRecordSame behavior
DNS resolutionRecordRecordSuccessful
Service connectivityRecordRecordSuccessful
IngressRecordRecordSuccessful
Deployment rolloutRecordRecordSuccessful
Test pass rateRecordRecordNo unexpected drop
CI durationRecordRecordWithin threshold
Pod restartsRecordRecordNo unexpected increase
Logs/eventsRecordRecordNo new critical errors

This matrix makes the upgrade decision evidence-based.

What About the Kubernetes Client Libraries?

One important distinction:

Kubernetes Server
        ≠
Kubernetes Python Client
        ≠
Kubernetes Java Client
        ≠
Kubernetes JavaScript Client

The command:

pip install kubernetes --upgrade

does not upgrade your Kubernetes cluster to 1.36.3.

Likewise:

npm install kubernetes@latest

does not upgrade the Kubernetes server.

Those commands upgrade client libraries, and they should not be presented as the Kubernetes cluster upgrade procedure.

For cluster upgrades, use the supported upgrade mechanism for your Kubernetes distribution and environment.

This distinction is extremely important for QA documentation because confusing client-library versions with server versions can lead to incorrect upgrade procedures.

How QA Engineers Should Think About Version Compatibility

Think in terms of a matrix:

Kubernetes Server
       +
Container Runtime
       +
CNI
       +
CSI
       +
Ingress Controller
       +
Monitoring
       +
Test Framework
       +
Client Libraries

For example:

LayerExample
Kubernetes1.36.3
Runtimecontainerd
CNICilium / Calico
CSICloud/provider driver
IngressNGINX / Gateway implementation
MonitoringPrometheus
TestsPlaywright / Selenium / API tests
ClientPython / Java / Go client

A Kubernetes upgrade should be evaluated against the whole environment.

Interactive SDET Challenge

Suppose after upgrading the cluster you see:

Nodes:          6/6 Ready
Pods:            84 Running
API Tests:       97% Pass
UI Tests:        94% Pass
CI Duration:     +18%
Pod Restarts:    +40%

Would you immediately blame Kubernetes?

No.

First isolate the regression.

Check:

1. Which tests failed?
2. Which pods ran those tests?
3. Did pod startup time change?
4. Did restarts increase?
5. Did resource pressure increase?
6. Did networking errors appear?
7. Did the application logs change?
8. Did the test runner itself change?

This is the difference between upgrade testing and simply observing a failed pipeline.

A Better Kubernetes Upgrade Strategy

Use four validation levels.

Level 1: Infrastructure Smoke Test

Nodes
Pods
Services
DNS
Ingress

Level 2: Application Smoke Test

Health endpoint
Authentication
Basic API
Database connectivity

Level 3: Automation Regression

API suite
UI suite
Integration suite
Contract tests

Level 4: Resilience and Performance

Load
Scale
Pod restart
Node disruption
Resource pressure
Recovery

This gives you progressively stronger confidence.

Should QA Teams Upgrade Immediately?

For a patch release, the answer is generally:

Evaluate promptly, but promote through your normal validation pipeline.

Do not treat a patch release as a reason to skip regression testing.

A sensible flow is:

Kubernetes 1.36.3
      ↓
Development cluster
      ↓
Smoke tests
      ↓
QA cluster
      ↓
Regression tests
      ↓
Performance tests
      ↓
Staging
      ↓
Production

The exact rollout depends on your infrastructure and managed Kubernetes provider.

Kubernetes Upgrade Checklist for SDETs

Before declaring the environment ready, verify:

☑ Nodes Ready
☑ No unexpected Kubernetes events
☑ All critical deployments available
☑ No abnormal pod restarts
☑ DNS working
☑ Internal services reachable
☑ Ingress working
☑ TLS working
☑ API tests passing
☑ UI tests passing
☑ Integration tests passing
☑ Logs collected
☑ Metrics available
☑ CI pipeline stable
☑ Test duration within baseline
☑ Failure recovery validated

This transforms Kubernetes upgrade testing from a manual checklist into a repeatable engineering capability.

The Strategic QA Perspective

Kubernetes should not be treated as invisible infrastructure.

For modern SDETs, it is part of the system under test.

Your application might be:

Frontend
+
API
+
Microservices
+
Database

But your actual test environment is:

Application
+
Kubernetes
+
Container Runtime
+
Networking
+
Storage
+
Ingress
+
Observability
+
CI/CD

Therefore, application quality depends partly on infrastructure behavior.

That is why Kubernetes upgrade testing belongs inside the QA strategy rather than being left entirely to DevOps.

Conclusion

Kubernetes 1.36.3 should be evaluated as part of the complete application delivery and test environment rather than as an isolated version number.

For QA engineers and SDETs, the most valuable work is not simply installing the release.

It is establishing a baseline, validating cluster behavior, checking application compatibility, exercising networking and scheduling, running the existing automation suite, and comparing performance before and after the upgrade.

A strong Kubernetes upgrade test answers three questions:

Does the cluster remain healthy?

Does the application remain healthy?

Does the test system remain trustworthy?

If all three answers are yes, you have much stronger evidence that the upgrade is safe for your environment.

And if something fails, your baseline and diagnostic artifacts give you the information needed to identify whether the problem belongs to Kubernetes, the application, infrastructure dependencies, or the test automation itself.

How to Turn a Kubernetes 1.36.3 Upgrade Into a Reliable QA Strategy

Kubernetes 1.36.3 should not be treated as “just another infrastructure update” when your automated testing environment depends on Kubernetes for scheduling, networking, service discovery, scaling, and application lifecycle management.

For an SDET, the real objective is not simply proving that the cluster upgraded successfully. The objective is proving that the software delivery system still behaves correctly after the upgrade.

That means testing beyond:

kubectl get nodes

A stronger validation model is:

Cluster
   ↓
Infrastructure
   ↓
Application
   ↓
Automation
   ↓
Performance
   ↓
Resilience

From Upgrade Validation to Risk-Based Testing

A useful way to prioritize your tests is to classify them according to business and technical risk.

AreaRiskWhy QA Should Care
Node readinessHighFailed nodes can affect every workload
Pod schedulingHighTests may remain pending
NetworkingCriticalServices may become unreachable
StorageCriticalStateful tests can fail or corrupt workflows
Application startupHighAutomated tests may start too early
CI/CDHighEntire pipelines can become unreliable
ObservabilityMedium/HighFailures become harder to diagnose
PerformanceHighInfrastructure regressions may remain hidden
ResilienceHighRecovery behavior must remain predictable

This gives you a more strategic approach than running the same regression suite and hoping everything passes.

Test the Upgrade Like a Production Change

A mature SDET team can use the same strategy for a Kubernetes upgrade that it uses for a major application release.

Start with a baseline:

kubectl get nodes -o wide
kubectl get pods -A
kubectl get deployments -A
kubectl get services -A
kubectl get events -A

Store the results.

Then execute your upgrade.

Afterward, run the same collection again.

The comparison becomes:

BEFORE
  ↓
Baseline
  ↓
Upgrade
  ↓
AFTER
  ↓
Diff

For example:

MetricBeforeAfterResult
Ready nodes6/66/6Pass
Running pods8484Pass
Pending pods02Investigate
Restarts311Investigate
API failures0.2%0.8%Investigate
CI duration18 min21 minInvestigate

Notice that the cluster can technically be healthy while the test environment is regressing.

That is exactly what QA needs to detect.

Automate the Baseline Instead of Collecting It Manually

You can turn the baseline into a reusable shell script:

#!/usr/bin/env bash

echo "=== Nodes ==="
kubectl get nodes -o wide

echo "=== Pods ==="
kubectl get pods -A

echo "=== Deployments ==="
kubectl get deployments -A

echo "=== Services ==="
kubectl get services -A

echo "=== Events ==="
kubectl get events -A --sort-by=.lastTimestamp

Save it before and after the upgrade:

./cluster-health.sh > before-upgrade.txt

and:

./cluster-health.sh > after-upgrade.txt

Then compare:

diff -u before-upgrade.txt after-upgrade.txt

For larger environments, store these metrics in your observability system instead of relying on text files.

Validate Test Runner Capacity

One area that teams frequently overlook is the test runner itself.

Suppose your CI system launches:

10 API test pods
20 browser test pods
5 integration-test pods
3 reporting pods

That’s already 38 workloads.

Now imagine several pipelines execute simultaneously.

You could suddenly have:

38 × 5 pipelines = 190 workloads

The question becomes:

Can the Kubernetes cluster schedule the same testing workload with the same reliability and latency after the upgrade?

Monitor:

kubectl get pods -A --field-selector=status.phase=Pending

Then investigate individual workloads:

kubectl describe pod <pod-name>

Look for scheduling messages involving:

Insufficient CPU
Insufficient memory
Taints
Tolerations
Affinity
Node selectors
Resource quotas

This is much more useful than simply checking whether nodes report Ready.

Kubernetes 1.36.3 and Parallel Test Execution

Parallel automation is where infrastructure problems often become visible.

Imagine a Playwright or Selenium suite running 50 workers.

Your architecture might look like:

CI Pipeline
     ↓
Test Controller
     ↓
50 Test Workers
     ↓
Application Services
     ↓
Database

If Kubernetes takes longer to schedule those workers, the test suite might show:

Expected: 20 minutes
Actual:   29 minutes

The tests themselves may still pass.

That means a pure pass/fail metric would incorrectly classify the upgrade as successful.

Track:

Test execution time
Pod scheduling latency
Pod startup time
CPU utilization
Memory utilization
Queue time
Test throughput

This is where QA becomes performance engineering.

Separate Test Failures From Infrastructure Failures

Suppose a test reports:

AssertionError:
Expected 200
Received 503

Do not immediately investigate the application.

First check:

kubectl get pods -A
kubectl get events -A
kubectl get svc -A

Then inspect the relevant pod:

kubectl describe pod <pod-name>

And logs:

kubectl logs <pod-name> --previous

You may discover:

Application failure

or:

Pod restarted

or:

Readiness probe failed

or:

Service unavailable

The test assertion is the symptom.

The infrastructure diagnostics help identify the cause.

Build Failure Classification Into Your Automation

Instead of producing:

FAILED: 17 tests

your pipeline should ideally produce something closer to:

Application failures:     5
Infrastructure failures:  7
Environment failures:     3
Test-data failures:        2

This dramatically improves triage.

A simple classification layer could start with Kubernetes state:

def classify_environment(pod_status, restart_count):
    if pod_status != "Running":
        return "infrastructure"

    if restart_count > 3:
        return "environment"

    return "application"

In a production-grade system, classification would obviously require more signals than this example, but the architectural idea is powerful.

Kubernetes vs Traditional VM-Based Test Environments

Kubernetes-based testing provides capabilities that traditional VM environments often handle differently.

CapabilityVM-Based TestingKubernetes-Based Testing
Workload isolationVM levelPod/container level
SchedulingVM orchestrationKubernetes scheduler
ScalingUsually slowerHighly automated
Self-healingExternal tooling often requiredNative workload controllers
Ephemeral environmentsPossibleNatural fit
Parallel test executionGoodExcellent
Service discoveryExternal/configuredNative
Environment densityLowerHigher

But Kubernetes introduces another layer of complexity.

That means:

More automation capability also means more infrastructure behavior that QA needs to understand.

Test Ephemeral Environments

Modern SDET teams increasingly create temporary environments for pull requests.

For example:

Pull Request
     ↓
Build Image
     ↓
Create Namespace
     ↓
Deploy Application
     ↓
Run Tests
     ↓
Collect Results
     ↓
Delete Namespace

A namespace-based strategy could be:

kubectl create namespace qa-pr-123

Deploy:

kubectl apply -f manifests/ \
  -n qa-pr-123

Run tests.

Then clean up:

kubectl delete namespace qa-pr-123

After an infrastructure upgrade, verify that this entire lifecycle remains reliable.

The upgrade isn’t successful if permanent environments work but temporary test environments fail.

Test Cleanup and Resource Leakage

This is an especially useful QA test.

Run a test environment:

kubectl create namespace qa-test

Deploy your workloads.

Run your suite.

Then destroy the environment.

After cleanup:

kubectl get pods -A
kubectl get pvc -A
kubectl get namespaces

Look for resources that should no longer exist.

Resource leakage can eventually create:

CPU pressure
Memory pressure
Storage exhaustion
Slow scheduling
Unexpected test failures

A good automated test environment should be disposable.

Validate Storage Workloads

Stateless API tests are only one side of the problem.

Many test environments also require:

PostgreSQL
MongoDB
Redis
Kafka
Object storage
Persistent test data

For persistent workloads, inspect:

kubectl get pvc -A
kubectl get pv

Then test:

PVC creation
Volume attachment
Read/write operations
Pod restart
Pod rescheduling
Data persistence
Cleanup

A simple application-level check might be:

def test_database_persistence(db):
    db.execute(
        "INSERT INTO test_data(id, value) VALUES (1001, 'upgrade-test')"
    )

    assert db.fetch(
        "SELECT value FROM test_data WHERE id = 1001"
    ) == "upgrade-test"

Then restart the workload and verify the data remains available.

Don’t Forget Stateful Test Dependencies

A test suite can pass while the environment is unhealthy.

For example:

API ────────────────┐
                    ↓
                  Redis
                    ↓
                PostgreSQL

If PostgreSQL experiences recovery delays, API tests may begin failing intermittently.

That can appear as:

Flaky test

when the actual problem is:

Infrastructure recovery

Your QA strategy should therefore test dependencies independently.

Kubernetes 1.36.3 and Resilience Testing

A strong upgrade test includes controlled failure.

Delete a non-critical test pod:

kubectl delete pod <pod-name>

Observe:

kubectl get pods -w

You want to understand:

How quickly does Kubernetes recreate it?

Does readiness return?

Does traffic resume?

Does the test runner recover?

Does the application preserve state?

Now increase the challenge.

Test multiple replicas:

kubectl scale deployment my-api --replicas=5

Then remove one:

kubectl delete pod <pod-name>

The system should converge back toward the desired state.

Test Rollback Readiness

A production-grade upgrade strategy should include a rollback or recovery plan appropriate to your Kubernetes distribution.

Before upgrading, document:

Current version
Target version
Cluster configuration
Critical dependencies
Backup status
Recovery procedure
Validation procedure
Rollback procedure

For application deployments, Kubernetes rollout controls can help:

kubectl rollout status deployment/my-api

and:

kubectl rollout history deployment/my-api

But remember that rolling back an application deployment is not automatically the same as rolling back the Kubernetes cluster itself.

These are separate operational concerns.

Performance Testing After the Upgrade

Functional tests tell you:

Does it work?

Performance tests tell you:

Does it still work under pressure?

For Kubernetes upgrade validation, measure:

CPU
Memory
Pod startup time
Scheduling latency
API latency
Throughput
Error rate
Test duration
Resource saturation

For example:

                    Before       After

P95 API latency      180 ms      190 ms
CPU utilization       62%         64%
Memory utilization    58%         61%
CI duration           18 min      19 min
Error rate             0.2%        0.2%

A small change may be acceptable.

A sudden jump from:

180 ms → 700 ms

requires investigation.

Use Thresholds Instead of Opinions

Avoid:

“The cluster feels slower.”

Define thresholds:

performance:
  api_p95_ms: 250
  error_rate_percent: 1
  ci_duration_minutes: 25
  pod_startup_seconds: 30

Then automate validation.

Conceptually:

assert api_p95 < 250
assert error_rate < 1
assert ci_duration < 25
assert pod_startup < 30

Now your upgrade decision becomes reproducible.

Observability Should Be Part of the Upgrade Test

When infrastructure changes, observability becomes even more important.

You should be able to answer:

Which pod failed?
Why did it fail?
When did it fail?
Was it restarted?
Which node was it running on?
Did the application emit errors?
Did latency increase?
Did resource consumption change?

Useful commands include:

kubectl get events -A
kubectl describe pod <pod>
kubectl logs <pod>
kubectl top nodes
kubectl top pods -A

If your environment uses Prometheus, Grafana, OpenTelemetry, or another monitoring platform, compare the same dashboards before and after the upgrade.

Build a QA Upgrade Dashboard

A useful dashboard could contain:

┌──────────────────────────────────────┐
│ Kubernetes Upgrade Validation       │
├──────────────────────────────────────┤
│ Nodes Ready          6/6             │
│ Running Pods         84              │
│ Pending Pods         0               │
│ Pod Restarts         3               │
│ API P95              185 ms          │
│ Error Rate           0.18%           │
│ CI Duration          18.4 min        │
│ Test Pass Rate       99.6%           │
└──────────────────────────────────────┘

This is far more useful to an engineering organization than a simple:

Upgrade: SUCCESS
Image
Image
Image
Image
Image
Image

Suggested image placement: Place this image after the observability section.

Suggested ALT text: Kubernetes 1.36.3 observability dashboard for QA upgrade testing

Kubernetes 1.36.3 vs Other Upgrade Strategies

Not every organization should upgrade the same way.

StrategySpeedRiskBest For
Big-bang upgradeFastHighSmall controlled environments
Staged environmentsModerateLowerMost QA organizations
Canary approachModerateLowLarge production platforms
Blue/green infrastructureSlowerVery lowCritical systems
Automated upgrade pipelineHigh after setupControlledMature DevOps teams

For most SDET teams, a staged approach is a practical balance:

Development
    ↓
QA
    ↓
Staging
    ↓
Production

Each stage should have automated validation gates.

Turn the Upgrade Into a Regression Gate

Your CI/CD pipeline can enforce a rule such as:

Infrastructure Upgrade
        ↓
Cluster Smoke
        ↓
Application Smoke
        ↓
API Regression
        ↓
UI Regression
        ↓
Performance Baseline
        ↓
Resilience Tests
        ↓
Approval

If a critical gate fails:

STOP

Do not automatically continue to the next environment.

This creates a much safer upgrade process.

A Practical Automated Validation Example

A simplified pipeline might look like:

#!/usr/bin/env bash

set -e

echo "Checking nodes..."
kubectl wait --for=condition=Ready nodes --all --timeout=180s

echo "Checking application..."
kubectl rollout status deployment/my-api --timeout=180s

echo "Checking pods..."
kubectl get pods -A

echo "Running API tests..."
pytest tests/api

echo "Running integration tests..."
pytest tests/integration

echo "Upgrade validation completed."

A mature implementation can extend this with:

Performance thresholds
Failure classification
Observability checks
Artifact collection
Automated rollback decisions

The Most Important QA Question

When evaluating Kubernetes 1.36.3, don’t ask:

“Did Kubernetes upgrade successfully?”

Ask:

“Can my team still trust every automated test result after the upgrade?”

That is a much more meaningful definition of success.

If infrastructure instability creates false failures, your automation loses credibility.

If infrastructure problems hide application failures, your automation becomes dangerous.

The purpose of QA is therefore not merely to produce green pipelines.

It is to produce trustworthy signals.

Final Kubernetes 1.36.3 Upgrade Checklist

Before approving the environment, validate:

AreaValidation
ClusterNodes healthy
SchedulingNo unexpected pending workloads
NetworkingDNS and service connectivity
StoragePersistent volumes work correctly
ApplicationDeployments become ready
ProbesLiveness/readiness behave correctly
CI/CDDeployment pipeline succeeds
APIRegression suite passes
UIBrowser suite passes
IntegrationDependencies communicate correctly
PerformanceBaseline remains within thresholds
ResilienceRecovery behavior remains correct
ObservabilityLogs, metrics, and events available
CleanupTemporary resources are removed
DiagnosticsFailure artifacts automatically collected

AI Overview Optimization

Kubernetes 1.36.3 is a Kubernetes patch release that should be validated through infrastructure, application, automation, performance, and resilience testing before production adoption. QA engineers should establish a pre-upgrade baseline, verify node and pod health, test scheduling and networking, validate application and CI/CD workflows, compare performance metrics, and test failure recovery after the upgrade.

AI-Friendly Summary Table

QuestionAnswer
What is Kubernetes 1.36.3?A patch release in the Kubernetes 1.36 release line.
Should QA test it?Yes. Patch releases should still pass environment and regression validation.
What should be tested first?Nodes, pods, deployments, services, networking, and application health.
Should performance be tested?Yes, especially for large or highly parallel test environments.
Should CI/CD be tested?Yes. Deployment, test execution, diagnostics, and cleanup should be validated.
Should resilience be tested?Yes. Pod recovery, application restart, and dependency recovery are valuable upgrade tests.
Is pip install kubernetes a cluster upgrade?No. It updates a Python client library, not the Kubernetes server.

Featured Snippet Answer

QA engineers should validate Kubernetes 1.36.3 by comparing pre- and post-upgrade cluster health, application behavior, networking, CI/CD execution, test reliability, performance, and failure recovery.

People Asked Questions

What is Kubernetes 1.36.3?

Kubernetes 1.36.3 is a patch release in the Kubernetes 1.36 release series. QA teams should evaluate it against their existing cluster, workloads, dependencies, and automation infrastructure before production adoption.

What should QA engineers test after upgrading to Kubernetes 1.36.3?

QA engineers should validate node health, pod scheduling, deployments, services, DNS, networking, storage, application health, CI/CD pipelines, automated regression tests, performance, observability, and recovery behavior.

Is Kubernetes 1.36.3 safe to upgrade to?

The appropriate upgrade decision depends on the specific Kubernetes environment and dependencies. Teams should validate the release in development or QA environments before production rollout.

How should SDETs test a Kubernetes upgrade?

SDETs should establish a baseline before the upgrade, perform infrastructure smoke tests afterward, execute application and regression tests, compare performance metrics, test failure recovery, and collect diagnostic evidence.

Does Kubernetes 1.36.3 require regression testing?

Yes. Even a patch release should go through appropriate regression testing when Kubernetes supports important application, testing, or production workloads.

How can QA detect Kubernetes infrastructure failures?

QA can inspect pod states, Kubernetes events, node health, deployment status, logs, resource usage, networking, and scheduling behavior to determine whether a test failure originates from infrastructure or the application.

Should Kubernetes performance be tested after an upgrade?

Yes. Teams operating high-volume or parallel workloads should compare CPU, memory, scheduling latency, pod startup time, API latency, throughput, error rate, and CI execution time.

Is the Kubernetes Python client the same as Kubernetes itself?

No. The Kubernetes Python client is a client library used to interact with Kubernetes APIs. Updating it with pip does not upgrade the Kubernetes server or cluster.

How do you check Kubernetes cluster health after an upgrade?

Common checks include:

kubectl get nodes -o wide
kubectl get pods -A
kubectl get deployments -A
kubectl get services -A
kubectl get events -A

These should be combined with application-level and automated test validation.

Why should SDETs test pod recovery?

Pod recovery validates whether workloads return to the desired state after failures. This is particularly important for automated test infrastructure because unexpected recovery behavior can produce false test failures.

Internal Links

External Links

Conclusion

A Kubernetes patch release may look small from a versioning perspective, but its impact should be evaluated across the entire software delivery ecosystem.

For QA engineers and SDETs, the strongest approach is to establish measurable baselines, automate infrastructure checks, validate application behavior, exercise networking and storage, test CI/CD workflows, measure performance, and deliberately introduce failures.

The biggest strategic shift is this:

Old approach:

Upgrade
  ↓
Run tests
  ↓
Check pass/fail


Better approach:

Baseline
  ↓
Upgrade
  ↓
Infrastructure validation
  ↓
Application validation
  ↓
Automation regression
  ↓
Performance comparison
  ↓
Resilience validation
  ↓
Evidence-based decision

That approach doesn’t just tell you whether Kubernetes 1.36.3 works.

It tells you whether your entire testing ecosystem remains reliable after the change.

Final Key Takeaways

  • Kubernetes 1.36.3 should be validated as an infrastructure change, not treated as an isolated version update.
  • Establish a measurable baseline before upgrading.
  • Validate nodes, pods, scheduling, networking, storage, probes, and services.
  • Separate infrastructure failures from genuine application defects.
  • Test parallel and ephemeral test environments, not just permanent deployments.
  • Compare performance metrics before and after the upgrade.
  • Include resilience and recovery scenarios in upgrade validation.
  • Collect Kubernetes diagnostics automatically when tests fail.
  • Use CI/CD quality gates before promoting the upgraded cluster.
  • Most importantly, measure whether your automated tests remain trustworthy, not merely whether they remain green.

Continue Learning

Explore more expert articles on Mobile Testing, Backend & API, AI & Agentic, AI Tools, n8n, LangChain, CrewAI, MCP Servers, AI Agents, LlamaIndex, Docker, FastAPI, Playwright, Cypress, Test Automation, DevOps, and Software Engineering at www.skakarh.com.

QAPulse by SK delivers expert release analysis, AI engineering insights, enterprise automation strategies, migration guidance, DevOps best practices, and practical testing knowledge to help software professionals build scalable, intelligent, and production-ready software systems.

Advertisement
Found this helpful? Clap to let Shahnawaz know — you can clap up to 50 times.