Cloud Native 14 min read

Why Kubernetes Dominates Container Orchestration: Core Concepts, Comparison, and Real‑World Benchmarks

This article introduces Kubernetes’ fundamental building blocks such as Pods, Deployments, Services, compares it with Docker Swarm across scheduling, autoscaling, load balancing and disaster recovery, shares practical deployment experiences using the Wayne management tool, provides self‑build setup tips, and presents benchmark results that contrast k8s clusters with bare‑metal Java workloads.

Huajiao Technology
Huajiao Technology
Huajiao Technology
Why Kubernetes Dominates Container Orchestration: Core Concepts, Comparison, and Real‑World Benchmarks

Introduction

Kubernetes (k8s) is the dominant container‑orchestration platform. It abstracts containers into Pods and provides built‑in mechanisms for service discovery, load balancing, scaling, and high‑availability.

Core Kubernetes Concepts

Pod is the smallest deployable unit. A pod can host one or more containers that share network namespace and storage. Pods are created and managed by controllers such as: Deployment: declarative management of stateless workloads; supports replica scaling, rolling updates and rollbacks. StatefulSet: manages stateful workloads (e.g., etcd, Elasticsearch) with stable network IDs and persistent volume claims. DaemonSet: ensures a copy of a pod runs on every node, commonly used for monitoring agents or log collectors.

Service exposes pods to other pods or external clients and provides load balancing. Common service types: ClusterIP (default): virtual IP reachable only inside the cluster; implemented with iptables NAT. NodePort: opens a static port on each node and forwards traffic to the corresponding pod. LoadBalancer: provisions a cloud‑provider external load balancer on top of NodePort. Ingress: L7 HTTP/HTTPS routing (often backed by Nginx) that directs traffic to services based on host or path rules.

Technical Comparison with Docker Swarm

Resource scheduling : Swarm schedules at the container level; k8s schedules at the pod level, allowing finer‑grained placement.

Auto‑scaling : Swarm lacks native autoscaling (requires external tooling); k8s provides Horizontal Pod Autoscaler (HPA) based on CPU/memory or custom metrics.

Load balancing : k8s offers internal Service load balancing (iptables) and external Ingress; Swarm relies on external cloud load balancers.

Rolling updates : k8s uses Deployment objects for declarative rolling updates; Swarm supports blue‑green updates via external scripts.

Disaster recovery : k8s replica controllers maintain the desired replica count and automatically reschedule pods when a node fails; Swarm does not automatically recover failed nodes.

Practical Experience

In a large‑team environment an open‑source k8s management UI (e.g., the wayne project) can simplify service creation, RBAC and project segmentation, but it adds an abstraction layer that may increase the learning curve for developers unfamiliar with native k8s objects.

Managed k8s services (e.g., Alibaba Cloud ACK) provide ready‑made high‑availability clusters, integrated image repositories, cloud‑disk persistent volumes, and built‑in monitoring/alerting, reducing operational overhead.

Self‑Hosted Cluster – Key Steps

Below are the essential commands and configuration tweaks for a typical CentOS‑based k8s installation.

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF

If kubelet and Docker use different cgroup drivers, align Docker to systemd:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

Switch kube-proxy from iptables to IPVS for higher throughput:

yum install -y ipvsadm
lsmod | grep ip_vs

(verify modules)

modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4

Update the proxy mode:

kubectl edit configmap kube-proxy -n kube-system
# set "mode": "ipvs" and "scheduler": "rr" (round‑robin)

Performance Testing

Load tests were executed with 60 concurrent threads against a self‑built k8s cluster. Sample results (ReqTPS = requests per second, RespTPS = successful responses, RT = average response time in ms):

Task63 | ReqTPS: 4522 | RespTPS: 4522 | RT: 12 | Thread: 60

For a 40‑thread run:

Task63 | ReqTPS: 4569 | RespTPS: 4571 | RT: 8 | Thread: 40

Baseline bare‑metal Java service (same 60‑thread load) yielded:

Task63 | ReqTPS: 7391 | RespTPS: 7392 | RT: 7 | Thread: 60

The k8s deployment shows a modest latency increase (≈12 ms vs 7 ms) and lower throughput, which is acceptable for most production workloads.

Conclusion

Kubernetes enables rapid, image‑based deployment, fine‑grained resource control, and built‑in high‑availability. While there is a measurable performance overhead compared with bare‑metal execution, the trade‑off is typically negligible relative to the operational benefits of orchestration, scaling and self‑service provisioning.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Cloud NativeKubernetesPerformance Testingcontainer orchestrationDocker Swarm
Huajiao Technology
Written by

Huajiao Technology

The Huajiao Technology channel shares the latest Huajiao app tech on an irregular basis, offering a learning and exchange platform for tech enthusiasts.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.