Cloud Native 12 min read

Why Kubernetes Is Getting So Popular: A Technical Overview

The article explains Kubernetes' rapid rise by detailing its history, YAML‑based declarative infrastructure, GitOps workflow, scalability features, security policies, cloud‑provider integration, extensibility through CRDs and Operators, and the vibrant community that drives continuous innovation.

High Availability Architecture
High Availability Architecture
High Availability Architecture
Why Kubernetes Is Getting So Popular: A Technical Overview

When this article was written, Kubernetes had been around for about six years and had become one of the most beloved platforms for engineers, ranking third among the most popular platforms. Kubernetes is a system that lets you run containers and coordinate their workloads.

Originally, containers stem from Linux kernel isolation mechanisms (cgroups since 2007 and namespaces since 2002). With LXC in 2008 and Google’s Borg, containers gained importance, and Docker’s 2013 release popularized them. Kubernetes, released in 2015, quickly became the de‑facto standard for container scheduling.

Infrastructure Expressed in YAML

Kubernetes shifted infrastructure from code‑centric tools like Puppet and Chef to data‑centric YAML files. All resources—Pods, Deployments, ConfigMaps, etc.—can be described in YAML, for example:

apiVersion: v1
kind: Pod
metadata:
  name: site
  labels:
    app: web
spec:
  containers:
  - name: front-end
    image: nginx
    ports:
    - containerPort: 80

This representation lets DevOps or SRE engineers describe workloads without writing code in languages such as Python, Ruby, or JavaScript.

GitOps: storing all YAML files in a Git repository provides version control, auditability, and easy automation via pull‑request workflows.

Scalability: YAML makes it simple to adjust numeric fields; for instance, the HorizontalPodAutoscaler can automatically scale pods between a minimum and maximum number.

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-deployment
  minReplicas: 1
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

Security and control: YAML can be validated with tools like Conftest and Open Policy Agent. An example OPA policy ensures containers do not run as root:

package main

den y[msg] {
  input.kind = "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot = true
  msg = "Containers must not run as root"
}

Cloud‑provider integration: Kubernetes can automatically create cloud resources such as an AWS LoadBalancer when a Service of type LoadBalancer is defined.

Scalability

Kubernetes is highly extensible. Users can define Custom Resource Definitions (CRDs) to add new resource types, such as a CronTab:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: crontabs.my.org
spec:
  group: my.org
  versions:
  - name: v1
    served: true
    storage: true
    schema:
      openAPIV3Schema:
        type: object
        properties:
          spec:
            type: object
            properties:
              cronSpec:
                type: string
                pattern: '^([0-9*]+)(/[0-9]+)?(\s+([0-9*]+)(/[0-9]+)?){4}$'
              replicas:
                type: integer
                minimum: 1
                maximum: 10
  scope: Namespaced
  names:
    plural: crontabs
    singular: crontab
    kind: CronTab
    shortNames:
    - ct

Instances can then be created with a simple YAML file:

apiVersion: "my.org/v1"
kind: CronTab
metadata:
  name: my-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-cron-image
  replicas: 5

Developers can also build Operators—controllers that automate the lifecycle of CRDs—using the Operator SDK:

$ operator-sdk new my-operator --repo github.com/myuser/my-operator

The SDK scaffolds a project with Go code and YAML manifests, for example:

.
|____cmd
|____manager
|    ____main.go
|____go.mod
|____deploy
|    ____role.yaml
|    ____role_binding.yaml
|    ____service_account.yaml
|    ____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
|    ____version.go
|____build
|    ____bin
|        ____user_setup
|        ____entrypoint
|    ____Dockerfile
|____pkg
|    ____apis
|        ____apis.go
|____controller
|    ____controller.go

Additional SDK commands add APIs and controllers:

$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService
$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService

Finally, the operator can be built and pushed to a container registry:

$ operator-sdk build your.container.registry/youruser/myapp-operator

Other projects like KUDO let users create Operators with declarative YAML. For example, installing a Kafka operator:

$ kubectl kudo install kafka

and configuring it with parameters:

$ kubectl kudo install kafka --instance=my-kafka-name \
    -p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181 \
    -p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m \
    -p BROKER_COUNT=5 -p BROKER_MEM=4096m \
    -p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3 \
    -p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20

Innovation

Kubernetes releases a major version every three to four months, delivering dozens of new features and improvements each cycle, with a vibrant contributor community reflected in GitHub activity.

Community

The project graduated to the Cloud Native Computing Foundation in 2015 and now hosts many SIGs, CloudNativeCon/KubeCon events, and a technical oversight committee that drives ecosystem growth.

Future

Serverless frameworks such as Knative and OpenFaaS are abstracting infrastructure further, allowing developers to focus more on application code while Kubernetes continues to evolve with new open‑source projects.

cloud-nativescalabilitykubernetesdevopsYAMLoperators
High Availability Architecture
Written by

High Availability Architecture

Official account for High Availability Architecture.

0 followers
Reader feedback

How this landed with the community

login 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.