Kubernetes Networking

Published on: September 24, 2025

Tags: #kubernetes #networking #cni #clusterip #ingress


Pod-to-Pod Communication

graph LR
    subgraph Node 2
        PodD[Pod D 
10.1.2.3] PodC[Pod C
10.1.2.2] end subgraph Node 1 PodA[Pod A
10.1.1.2] PodB[Pod B
10.1.1.3] end PodA -- "CNI Network" --> PodC PodA -- "CNI Network" --> PodB PodD -- "CNI Network" --> PodC style PodA fill:#d6e4ff style PodB fill:#d6e4ff style PodC fill:#d6e4ff style PodD fill:#d6e4ff

Kubernetes Service (ClusterIP)

graph TD
    subgraph "Kubernetes Cluster"
        subgraph "Client Pods"
            ClientA[Client Pod 1]
            ClientB[Client Pod 2]
        end

        subgraph "Service Abstraction"
            MyService[Service: my-service 
ClusterIP: 10.96.100.1
DNS: my-service.default.svc.cluster.local] end subgraph "Backend Pods
(with changing IPs)" Pod1[Pod 1
10.1.1.2] Pod2[Pod 2
10.1.1.3] Pod3[Pod 3
10.1.2.2] end end ClientA -- "Connect to my-service" --> MyService ClientB -- "Connect to 10.96.100.1" --> MyService MyService -- "Load Balances" --> Pod1 MyService -- "Load Balances" --> Pod2 MyService -- "Load Balances" --> Pod3 style MyService fill:#c8e6c9,stroke:#333,stroke-width:2px

Kubernetes Ingress

graph TD
    subgraph "Internet"
        User[User Browser]
    end

    subgraph "Kubernetes Cluster"
        Ingress[Ingress Controller]

        subgraph "Services (ClusterIP)"
            ServiceA[Service A]
            ServiceB[Service B]
        end

        subgraph "Pods"
            PodA1[Pod A-1]
            PodA2[Pod A-2]
            PodB1[Pod B-1]
        end
    end

    User -- "Request: api.example.com/serviceA" --> Ingress
    User -- "Request: api.example.com/serviceB" --> Ingress

    Ingress -- "Route: /serviceA" --> ServiceA
    Ingress -- "Route: /serviceB" --> ServiceB

    ServiceA --> PodA1
    ServiceA --> PodA2
    ServiceB --> PodB1

    style Ingress fill:#ffcdd2,stroke:#b71c1c,stroke-width:2px

Share this post

Share on X  •  Share on LinkedIn  •  Share via Email