Nextgen Blog
HomeLearnAIQuantumRoboticsSecuritySpaceAbout
Nextgen Blog

By Anubhav โ€” full stack engineer, IIT Mandi CSE. Deep dives into AI, software engineering, and the technologies shaping the next generation of tech.

Navigate

  • Home
  • Learn
  • Blog
  • Archive
  • About

Topics

  • Artificial Intelligence
  • Quantum Computing
  • Robotics
  • Cybersecurity
  • Space Tech

Connect

Built with โค๏ธ & By - Anubhav

ยฉ 2026 Nextgen Blog by Anubhav. All rights reserved.

Privacy PolicyTerms of Service
Phase 05 ยท Production & GitOpsChapter 28 of 33
27.
Phase 05Read time ~14 minDifficulty intermediate

Local Kubernetes ๐Ÿ–ฅ๏ธ

Warrior, now we move from Kubernetes theory โ†’ actually running Kubernetes on your own PC.

In this chapter
  • 01Why run Kubernetes locally?
  • 02Three popular choices
  • 03Which one should you use?
  • 04Docker Desktop Kubernetes
  • 05Docker Desktop Kubernetes
  • 06Verify kubectl
  • 07Check your nodes
  • 08Your first Kubernetes architecture
  • 09Check all Pods
  • 10Create your first Pod
  • 11What happened internally?
  • 12Inspect the Pod
  • 13Check the Pod IP
  • 14Create a Service
  • 15Why can't your browser access it?
  • 16Use NodePort locally
  • 17Access it
  • 18kubectl port-forward
  • 19Port-forward is extremely useful
  • 20But don't confuse port-forward with production networking
  • 21Create a Deployment instead of a Pod
  • 22Scale it
  • 23Expose the Deployment
  • 24Your first YAML deployment
  • 25Create the Service YAML
  • 26Why labels matter
  • 27Check Endpoints
  • 28Create a local Node.js application
  • 29Dockerize it
  • 30Important local-cluster issue
  • 31Solutions
  • 32Option 1 โ€” Use Docker Desktop Kubernetes
  • 33Option 2 โ€” Use a local registry
  • 34Option 3 โ€” Kind
  • 35Option 4 โ€” Push to a registry
  • 36Node.js Deployment
  • 37Node.js Service
  • 38Test the Node.js Service
  • 39Test DNS
  • 40Local Kubernetes project architecture
  • 41Docker Compose vs Kubernetes
  • 42Docker Compose
  • 43Kubernetes
  • 44Minikube
  • 45Minikube dashboard
  • 46Kind
  • 47Docker Desktop vs Minikube vs Kind
  • 48Your first complete local workflow
  • 49Useful commands to memorize
  • 50Cluster
  • 51Pods
  • 52Deployments
  • 53Services
  • 54Debugging
  • 55Local access
  • 56Your local Kubernetes debugging workflow
  • 57Important local-learning exercise ๐Ÿš€
  • 58Application
  • 59Health
  • 60Kubernetes
  • 61The most important mental model:
  • 62Next โ†’ Chapter 28: Kubernetes on AWS โ€” EKS โ˜๏ธ
In this chapter (62 sections)
01Why run Kubernetes locally?02Three popular choices03Which one should you use?04Docker Desktop Kubernetes05Docker Desktop Kubernetes06Verify kubectl07Check your nodes08Your first Kubernetes architecture09Check all Pods10Create your first Pod11What happened internally?12Inspect the Pod13Check the Pod IP14Create a Service15Why can't your browser access it?16Use NodePort locally17Access it18kubectl port-forward19Port-forward is extremely useful20But don't confuse port-forward with production networking21Create a Deployment instead of a Pod22Scale it23Expose the Deployment24Your first YAML deployment25Create the Service YAML26Why labels matter27Check Endpoints28Create a local Node.js application29Dockerize it30Important local-cluster issue31Solutions32Option 1 โ€” Use Docker Desktop Kubernetes33Option 2 โ€” Use a local registry34Option 3 โ€” Kind35Option 4 โ€” Push to a registry36Node.js Deployment37Node.js Service38Test the Node.js Service39Test DNS40Local Kubernetes project architecture41Docker Compose vs Kubernetes42Docker Compose43Kubernetes44Minikube45Minikube dashboard46Kind47Docker Desktop vs Minikube vs Kind48Your first complete local workflow49Useful commands to memorize50Cluster51Pods52Deployments53Services54Debugging55Local access56Your local Kubernetes debugging workflow57Important local-learning exercise ๐Ÿš€58Application59Health60Kubernetes61The most important mental model:62Next โ†’ Chapter 28: Kubernetes on AWS โ€” EKS โ˜๏ธ

Since you're on Windows and already work with Docker/Node.js, we'll focus on a practical local setup.


1. Why run Kubernetes locally?#

Before deploying to:

  • AWS EKS
  • Google GKE
  • Azure AKS

you should be able to run:

Your PC
   โ†“
Local Kubernetes Cluster
   โ†“
Node
   โ†“
Pod
   โ†“
Container
   โ†“
Your application

This lets you practice Kubernetes without paying for cloud infrastructure.


2. Three popular choices#

There are three common options:

Tool Best for
Docker Desktop Kubernetes Easiest for beginners
Minikube Learning Kubernetes
Kind Kubernetes testing/CI

Conceptually:

Docker Desktop
      โ†“
Kubernetes cluster
Minikube
   โ†“
Kubernetes cluster
Kind
 โ†“
Kubernetes nodes inside containers

3. Which one should you use?#

For your learning journey:

Docker Desktop Kubernetes#

is the easiest starting point.

Why?

You already understand Docker.

You can have:

Windows
  โ”‚
  โ†“
Docker Desktop
  โ”‚
  โ†“
Kubernetes
  โ”‚
  โ”œโ”€โ”€ Control Plane
  โ”‚
  โ””โ”€โ”€ Worker Node

For more realistic multi-node testing later, Kind is excellent.


4. Docker Desktop Kubernetes#

Docker Desktop can provide a local Kubernetes cluster.

After installing Docker Desktop, open:

Docker Desktop
    โ†“
Settings
    โ†“
Kubernetes

Depending on your Docker Desktop version, the exact UI wording may differ.

Enable Kubernetes and create/start the cluster.


5. Verify kubectl#

Open PowerShell:

kubectl version --client

You should get client information.

Then:

kubectl cluster-info

If Kubernetes is running correctly, you'll see cluster/control-plane information.


6. Check your nodes#

Run:

kubectl get nodes

You might see:

NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   10m   v1.xx.x

The important part:

STATUS = Ready

means your node is available for scheduling.


7. Your first Kubernetes architecture#

Your laptop is now effectively hosting a Kubernetes cluster.

Conceptually:

             YOUR WINDOWS PC
                    โ”‚
              Docker Desktop
                    โ”‚
             Kubernetes Cluster
                    โ”‚
             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”
             โ”‚             โ”‚
        Control Plane    Worker
                         Node
                           โ”‚
                         Pod
                           โ”‚
                       Container

Depending on the local distribution/version, control-plane and worker roles may be implemented differently. Don't assume every local setup exactly mirrors a multi-node cloud cluster.


8. Check all Pods#

Run:

kubectl get pods -A

You will probably see system components in namespaces such as:

kube-system

For example:

coredns
kube-proxy

These are Kubernetes infrastructure components.


9. Create your first Pod#

Let's create an NGINX Pod.

kubectl run nginx --image=nginx

Check:

kubectl get pods

You might initially see:

NAME    READY   STATUS              RESTARTS   AGE
nginx   0/1     ContainerCreating   0          2s

Wait a moment.

Then:

kubectl get pods

Eventually:

NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          30s

Congratulations.

You just created a Kubernetes workload.


10. What happened internally?#

You ran:

kubectl run nginx --image=nginx

The flow is approximately:

kubectl
   โ”‚
   โ†“
API Server
   โ”‚
   โ†“
Pod object created
   โ”‚
   โ†“
Scheduler
   โ”‚
   โ†“
Node selected
   โ”‚
   โ†“
kubelet
   โ”‚
   โ†“
Container runtime
   โ”‚
   โ†“
NGINX container

This is the architecture from Chapter 3 happening for real.


11. Inspect the Pod#

Run:

kubectl describe pod nginx

Look at:

Events

You may see events similar to:

Scheduled
Pulling
Pulled
Created
Started

This is extremely useful for debugging.


12. Check the Pod IP#

Run:

kubectl get pod nginx -o wide

Example:

NAME    READY   STATUS    IP           NODE
nginx   1/1     Running   10.1.0.15    docker-desktop

The Pod has its own cluster IP.

But remember:

Pod IPs are not meant to be your stable application endpoint.

That's why we learned Services.


13. Create a Service#

Expose NGINX internally:

kubectl expose pod nginx --port=80

Check:

kubectl get services

You should see something like:

NAME         TYPE        CLUSTER-IP     PORT(S)
kubernetes   ClusterIP   10.x.x.x       443/TCP
nginx        ClusterIP   10.x.x.x       80/TCP

14. Why can't your browser access it?#

Because:

ClusterIP

is normally accessible only inside the Kubernetes cluster.

Your browser is outside the cluster network.

Architecture:

Browser
   X
   โ”‚
   โ”‚
ClusterIP
   โ”‚
   โ†“
Pod

We need an external access method.


15. Use NodePort locally#

Delete the current Service:

kubectl delete service nginx

Now create:

kubectl expose pod nginx `
  --port=80 `
  --target-port=80 `
  --type=NodePort

Check:

kubectl get service nginx

Example:

NAME    TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)
nginx   NodePort   10.x.x.x      <none>        80:30080/TCP

The important part is:

80:30080

Meaning:

Service port = 80
NodePort     = 30080

16. Access it#

Depending on your local Kubernetes implementation, you may be able to access:

http://localhost:30080

If that doesn't work with your specific local setup, inspect the cluster's networking behavior or use the convenient method in the next section.


17. kubectl port-forward#

This is one of the most useful local-development commands.

Run:

kubectl port-forward pod/nginx 8080:80

You should see:

Forwarding from 127.0.0.1:8080 -> 80

Now open:

http://localhost:8080

You'll see the NGINX page.

The architecture is:

Browser
   โ”‚
   โ”‚ localhost:8080
   โ†“
kubectl port-forward
   โ”‚
   โ†“
Pod:80
   โ”‚
   โ†“
NGINX

18. Port-forward is extremely useful#

Suppose you have:

PostgreSQL
Redis
Node.js API
Grafana
Prometheus

running inside Kubernetes.

You can temporarily access them locally.

For example:

kubectl port-forward svc/backend 3000:80

Then:

localhost:3000
       โ†“
backend Service
       โ†“
backend Pod

This is excellent for development and debugging.


19. But don't confuse port-forward with production networking#

kubectl port-forward is primarily a development/debugging mechanism.

Production architecture is normally:

Internet
   โ†“
Load Balancer / Ingress
   โ†“
Service
   โ†“
Pods

Not:

Internet
   โ†“
kubectl port-forward

20. Create a Deployment instead of a Pod#

Earlier we created:

kubectl run nginx --image=nginx

That's a direct Pod.

Production applications usually use:

Deployment
   โ†“
ReplicaSet
   โ†“
Pods

Create one:

kubectl create deployment nginx `
  --image=nginx

Check:

kubectl get deployments

Then:

kubectl get pods

21. Scale it#

Run:

kubectl scale deployment nginx --replicas=3

Check:

kubectl get pods

You'll see three Pods:

nginx-xxxxx
nginx-yyyyy
nginx-zzzzz

Architecture:

              Deployment
                  โ”‚
              ReplicaSet
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ†“       โ†“       โ†“
        Pod     Pod     Pod

22. Expose the Deployment#

Create a Service:

kubectl expose deployment nginx `
  --port=80 `
  --type=NodePort

Check:

kubectl get svc

Now:

Browser
   โ†“
NodePort
   โ†“
Service
   โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”
Pod    Pod    Pod

The Service distributes traffic across eligible Pods.


23. Your first YAML deployment#

Now let's stop using imperative commands.

Create:

deployment.yaml
apiVersion: apps/v1
kind: Deployment
 
metadata:
  name: nginx
 
spec:
  replicas: 3
 
  selector:
    matchLabels:
      app: nginx
 
  template:
    metadata:
      labels:
        app: nginx
 
    spec:
      containers:
        - name: nginx
          image: nginx:1.27
          ports:
            - containerPort: 80

Apply:

kubectl apply -f deployment.yaml

Check:

kubectl get deployment
kubectl get pods

24. Create the Service YAML#

Create:

service.yaml
apiVersion: v1
kind: Service
 
metadata:
  name: nginx
 
spec:
  selector:
    app: nginx
 
  ports:
    - port: 80
      targetPort: 80
 
  type: NodePort

Apply:

kubectl apply -f service.yaml

Check:

kubectl get svc nginx

25. Why labels matter#

Our Deployment:

labels:
  app: nginx

Service:

selector:
  app: nginx

The Service finds Pods using the label.

Pod
labels:
  app=nginx
       โ†‘
       โ”‚
       โ”‚ matches
       โ”‚
Service
selector:
  app=nginx

If you accidentally write:

selector:
  app: backend

the Service won't find those Pods.

Then:

Service
   โ†“
No endpoints

This is one of the most common Kubernetes mistakes.


26. Check Endpoints#

Run:

kubectl get endpoints nginx

or, on modern clusters:

kubectl get endpointslices

If your Service has three ready Pods, you should see corresponding backend endpoints.

This is a great debugging technique.


27. Create a local Node.js application#

Now let's make this relevant to your stack.

Suppose your Node.js API is:

const express = require("express");
 
const app = express();
 
app.get("/", (req, res) => {
  res.json({
    message: "Hello Kubernetes"
  });
});
 
app.get("/health", (req, res) => {
  res.json({
    status: "ok"
  });
});
 
app.listen(3000, "0.0.0.0", () => {
  console.log("Server running on port 3000");
});

Notice:

app.listen(3000, "0.0.0.0")

This matters.

Inside containers, don't accidentally bind the server only to:

127.0.0.1

because then other network interfaces may not be able to reach it.


28. Dockerize it#

Dockerfile:

FROM node:22-alpine
 
WORKDIR /app
 
COPY package*.json ./
 
RUN npm ci
 
COPY . .
 
EXPOSE 3000
 
CMD ["node", "server.js"]

Build:

docker build -t node-api:1.0 .

Now you have:

node-api:1.0

29. Important local-cluster issue#

Here's something beginners often encounter.

You built:

node-api:1.0

on your machine.

But Kubernetes might use a container runtime/environment where that locally built image isn't automatically available in the way you expect.

Then you get:

ErrImagePull

or:

ImagePullBackOff

Why?

Kubernetes may try to pull:

node-api:1.0

from a registry.

But your image exists only locally.


30. Solutions#

You have several options.

Option 1 โ€” Use Docker Desktop Kubernetes#

Depending on your Docker Desktop configuration, locally built images may be available to the local cluster.

This is one reason Docker Desktop is convenient for beginners.


Option 2 โ€” Use a local registry#

You can run a local container registry:

Your machine
   โ”‚
   โ”œโ”€โ”€ Docker build
   โ”‚
   โ†“
Local Registry
   โ”‚
   โ†“
Kubernetes

Option 3 โ€” Kind#

Kind supports workflows where images can be loaded into the cluster.

Conceptually:

docker build -t node-api:1.0 .

then:

kind load docker-image node-api:1.0

Now Kind nodes can use that image.


Option 4 โ€” Push to a registry#

For example:

Docker Hub
ECR
GHCR
GCR/Artifact Registry
ACR

Then Kubernetes pulls it.

Production typically uses a registry.


31. Node.js Deployment#

Example:

apiVersion: apps/v1
kind: Deployment
 
metadata:
  name: node-api
 
spec:
  replicas: 2
 
  selector:
    matchLabels:
      app: node-api
 
  template:
    metadata:
      labels:
        app: node-api
 
    spec:
      containers:
        - name: node-api
          image: node-api:1.0
 
          ports:
            - containerPort: 3000
 
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
 
            limits:
              cpu: "500m"
              memory: "512Mi"
 
          readinessProbe:
            httpGet:
              path: /health
              port: 3000
 
            initialDelaySeconds: 5
            periodSeconds: 10

This combines concepts you've already learned:

Deployment
+
replicas
+
resources
+
readinessProbe

32. Node.js Service#

apiVersion: v1
kind: Service
 
metadata:
  name: node-api
 
spec:
  selector:
    app: node-api
 
  ports:
    - port: 80
      targetPort: 3000
 
  type: ClusterIP

Notice:

Service: 80
Pod:     3000

So:

node-api:80
      โ†“
Pod:3000

33. Test the Node.js Service#

Because it's a ClusterIP Service, create a temporary debugging Pod:

kubectl run curl `
  --image=curlimages/curl `
  -it `
  --rm `
  --restart=Never `
  -- sh

Inside:

curl http://node-api

You should receive:

{
  "message": "Hello Kubernetes"
}

Now you've actually tested Kubernetes Service discovery.


34. Test DNS#

Inside the debug container:

nslookup node-api

You'll see the Kubernetes DNS resolve the Service.

This demonstrates:

node-api
   โ†“
CoreDNS
   โ†“
ClusterIP

35. Local Kubernetes project architecture#

At this point you can build:

                 Browser
                    โ”‚
                    โ†“
               NodePort
                    โ”‚
                    โ†“
              Frontend Service
                    โ”‚
                    โ†“
              Next.js Pods
                    โ”‚
                    โ†“
             Backend Service
                    โ”‚
                    โ†“
              Node.js Pods
                โ”‚       โ”‚
                โ†“       โ†“
             Redis   PostgreSQL

And eventually:

                   Ingress
                      โ”‚
             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
             โ†“                 โ†“
        Next.js Service    API Service
             โ†“                 โ†“
        Next.js Pods       Node Pods
                               โ”‚
                         โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”
                         โ†“           โ†“
                       Redis      PostgreSQL

36. Docker Compose vs Kubernetes#

You may already know Docker Compose.

Compare:

Docker Compose#

docker-compose.yml
 
frontend
backend
redis
postgres

Kubernetes#

Deployment
Service
ConfigMap
Secret
Ingress
PVC
HPA
NetworkPolicy

Compose is usually simpler for local multi-container development.

Kubernetes is designed for orchestration and production-scale management.


37. Minikube#

Now let's understand Minikube.

Minikube is a tool that runs a local Kubernetes cluster.

Typical architecture:

Windows
   โ†“
Minikube
   โ†“
Kubernetes

You can check:

minikube status

Start:

minikube start

Check:

kubectl get nodes

38. Minikube dashboard#

Minikube can provide a dashboard:

minikube dashboard

This can help beginners visually understand:

Namespaces
Deployments
Pods
Services
ConfigMaps
Secrets

However, don't rely entirely on the UI.

You should become comfortable with:

kubectl

because that's what you'll use heavily in real environments.


39. Kind#

Kind means:

Kubernetes IN Docker

It runs Kubernetes nodes as containers.

Architecture:

Docker
 โ”‚
 โ”œโ”€โ”€ control-plane container
 โ”œโ”€โ”€ worker container
 โ””โ”€โ”€ worker container

Create:

kind create cluster

Check:

kubectl get nodes

Kind is particularly useful for:

  • Kubernetes testing
  • CI pipelines
  • multi-node experiments
  • local development

40. Docker Desktop vs Minikube vs Kind#

For your learning:

Docker Desktop
      โ†“
 easiest beginning
Minikube
      โ†“
 Kubernetes learning
Kind
      โ†“
 multi-node/testing/CI

You don't need to install all three immediately.

Start with one.


41. Your first complete local workflow#

You should understand this entire sequence:

1. Write Node.js application
          โ†“
2. Dockerfile
          โ†“
3. docker build
          โ†“
4. Docker image
          โ†“
5. Kubernetes Deployment
          โ†“
6. Pod
          โ†“
7. Service
          โ†“
8. port-forward / NodePort / Ingress
          โ†“
9. Browser/client

And if you use a registry:

Docker image
     โ†“
Container Registry
     โ†“
Kubernetes
     โ†“
Pod

42. Useful commands to memorize#

Cluster#

kubectl cluster-info
kubectl get nodes
kubectl get nodes -o wide

Pods#

kubectl get pods
kubectl get pods -o wide
kubectl describe pod <pod>
kubectl logs <pod>

Deployments#

kubectl get deployments
kubectl describe deployment <deployment>
kubectl scale deployment <deployment> --replicas=3

Services#

kubectl get svc
kubectl describe svc <service>

Debugging#

kubectl get events --sort-by=.lastTimestamp
kubectl exec -it <pod> -- /bin/sh

Local access#

kubectl port-forward pod/<pod> 8080:80

or:

kubectl port-forward svc/<service> 3000:80

43. Your local Kubernetes debugging workflow#

When something doesn't work:

Application not working
        โ†“
kubectl get pods
        โ†“
Is Pod Running?
     /       \
   NO         YES
   โ†“           โ†“
describe      Service?
logs             โ†“
events        Endpoint?
                 โ†“
              Ingress?
                 โ†“
                DNS?

This connects directly to Chapter 23.


44. Important local-learning exercise ๐Ÿš€#

Build this:

Node.js API
     โ”‚
     โ†“
Deployment
     โ”‚
     โ”œโ”€โ”€ Pod 1
     โ””โ”€โ”€ Pod 2
     โ”‚
     โ†“
Service
     โ”‚
     โ†“
localhost

Requirements:

Application#

GET /

returns:

{
  "message": "Hello Kubernetes"
}

Health#

GET /health

returns:

{
  "status": "ok"
}

Kubernetes#

Use:

  • Deployment
  • 2 replicas
  • Service
  • readinessProbe
  • resource requests
  • resource limits

Then access it with:

kubectl port-forward svc/node-api 3000:80

Open:

http://localhost:3000

If you can do this successfully, you've gone from:

Kubernetes theory
        โ†“
Running Kubernetes application

๐Ÿง  Chapter 27 Cheat Sheet#

Docker Desktop
    โ†“
Local Kubernetes
 
kubectl get nodes
    โ†“
Check cluster
 
kubectl get pods
    โ†“
Check workloads
 
kubectl describe
    โ†“
Inspect details/events
 
kubectl logs
    โ†“
Application logs
 
Deployment
    โ†“
Manages Pods
 
Service
    โ†“
Stable networking
 
ClusterIP
    โ†“
Internal access
 
NodePort
    โ†“
External node-level access
 
port-forward
    โ†“
Local development/debugging
 
Ingress
    โ†“
HTTP/HTTPS routing
 
Minikube
    โ†“
Local Kubernetes learning
 
Kind
    โ†“
Kubernetes-in-Docker / testing

The most important mental model:#

                    LOCAL PC
                       โ”‚
                    Docker
                       โ”‚
                 Kubernetes
                       โ”‚
                 Deployment
                       โ”‚
                  ReplicaSet
                       โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ†“                 โ†“
             Pod               Pod
              โ”‚                 โ”‚
           Container         Container
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ†“
                    Service
                       โ†“
                Local Client

Next โ†’ Chapter 28: Kubernetes on AWS โ€” EKS โ˜๏ธ#

This is where local Kubernetes becomes real cloud Kubernetes.

We'll cover:

  • What AWS EKS actually is
  • EKS architecture
  • Control plane vs worker nodes
  • EC2 node groups
  • Managed node groups
  • EKS networking
  • VPC, subnets and security groups
  • Load Balancer
  • IAM + Kubernetes RBAC
  • ECR + EKS
  • Deploying your Node.js application
  • HPA + Cluster Autoscaler on EKS
  • Production architecture
  • Approximate cost considerations
  • Complete flow:
Developer
   โ†“
Docker
   โ†“
ECR
   โ†“
EKS
   โ†“
Deployment
   โ†“
Pods
   โ†“
Service
   โ†“
AWS Load Balancer
   โ†“
Internet

Finished this chapter?

Mark it as complete to track your mastery.

Previous ChapterChapter 26 โ€” Kustomize ๐ŸงฉNext ChapterChapter 28 โ€” Kubernetes on AWS: EKS โ˜๏ธ
PrevNext