1. Home
  2. /
  3. Kubernetes-yaml
  4. /
  5. Simple Kubernetes Deployment

Simple Kubernetes Deployment - Kubernetes-yaml Typing CST Test

Loading…

Simple Kubernetes Deployment — Kubernetes-yaml Code

A simple Kubernetes Deployment running an Nginx container.

# kubernetes/demo-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
	name: nginx-deployment
	namespace: default
spec:
	replicas: 3
	selector:
		matchLabels:
		app: nginx
	template:
		metadata:
		labels:
		app: nginx
		spec:
		containers:
		- name: nginx
		image: nginx:1.21
		ports:
		- containerPort: 80

Kubernetes-yaml Language Guide

Kubernetes (K8s) is an open-source container orchestration platform that automates deployment, scaling, and management of containerized applications. It uses declarative YAML manifests to define the desired state of resources.

Primary Use Cases

  • ▸Deploying and scaling containerized applications
  • ▸Automating rolling updates and rollbacks
  • ▸Service discovery and load balancing
  • ▸Resource monitoring and self-healing
  • ▸Multi-cloud and hybrid infrastructure management

Notable Features

  • ▸Automated container orchestration
  • ▸Declarative YAML configuration
  • ▸Self-healing and auto-scaling
  • ▸Service discovery and load balancing
  • ▸Extensible via CRDs and operators

Origin & Creator

Created by Google based on their internal Borg system, first released in 2014, and now maintained by the Cloud Native Computing Foundation (CNCF).

Industrial Note

Kubernetes is widely used in DevOps, microservices orchestration, hybrid/multi-cloud deployments, edge computing, and large-scale enterprise cloud platforms.

Quick Explain

  • ▸Kubernetes orchestrates containers across multiple hosts, ensuring high availability and scalability.
  • ▸Uses YAML manifests to define resources like Pods, Services, Deployments, and ConfigMaps.
  • ▸Supports declarative configuration for infrastructure and applications.
  • ▸Automates scheduling, scaling, and self-healing of containers.
  • ▸Provides extensible APIs and integrations with cloud and CI/CD systems.

Core Features

  • ▸Pods - smallest deployable unit
  • ▸Deployments - manage stateless apps and updates
  • ▸Services - abstract network access to pods
  • ▸ConfigMaps and Secrets - configuration and sensitive data management
  • ▸Namespaces - logical cluster partitioning

Learning Path

  • ▸Understand container basics (Docker)
  • ▸Learn Kubernetes core concepts (Pods, Services, Deployments)
  • ▸Practice writing YAML manifests
  • ▸Explore ConfigMaps, Secrets, and Volumes
  • ▸Deploy and scale applications in a test cluster

Practical Examples

  • ▸Deploy Nginx web server
  • ▸Deploy a Python Flask app with PostgreSQL
  • ▸Configure ConfigMaps and Secrets for app configuration
  • ▸Set up Horizontal Pod Autoscaler
  • ▸Use PersistentVolumeClaims for stateful apps

Comparisons

  • ▸Kubernetes vs Docker Swarm: feature-rich vs simpler
  • ▸Kubernetes vs Nomad: enterprise orchestration vs lightweight
  • ▸Kubernetes vs OpenShift: upstream vs enterprise distribution
  • ▸Kubernetes vs ECS: vendor-agnostic vs AWS integrated
  • ▸Kubernetes vs Rancher: orchestration vs management layer

Strengths

  • ▸Scalable and resilient infrastructure
  • ▸Portable across on-prem and cloud
  • ▸Supports complex microservices architectures
  • ▸Large ecosystem of tools and integrations
  • ▸Declarative, version-controllable configurations

Limitations

  • ▸Steep learning curve for beginners
  • ▸Operational complexity for small deployments
  • ▸YAML manifests can become verbose
  • ▸Resource-intensive for small clusters
  • ▸Requires external tools for CI/CD, monitoring, and logging

When NOT to Use

  • ▸Small-scale deployments with single container
  • ▸Simple applications without scaling requirements
  • ▸Environments where operational overhead is unacceptable
  • ▸Use cases requiring extremely low-latency bare-metal workloads
  • ▸Projects without containerization or microservices

Cheat Sheet

  • ▸kubectl get pods
  • ▸kubectl describe deployment <name>
  • ▸kubectl logs <pod>
  • ▸kubectl apply -f <file.yaml>
  • ▸kubectl delete -f <file.yaml>

FAQ

  • ▸Is Kubernetes only for cloud? -> No, can run on-premises or on local clusters (Minikube, Kind).
  • ▸Do I need Docker for Kubernetes? -> Kubernetes supports any container runtime.
  • ▸What is the difference between Deployment and StatefulSet? -> Deployment is for stateless apps, StatefulSet for stateful apps.
  • ▸Can Kubernetes autoscale? -> Yes, using HPA/VPA for pods and cluster autoscaler for nodes.
  • ▸Is Kubernetes free? -> Yes, open-source; enterprise distributions may have costs.

30-Day Skill Plan

  • ▸Week 1: Deploy simple pods and services
  • ▸Week 2: Work with deployments and replicasets
  • ▸Week 3: Configure volumes and persistent storage
  • ▸Week 4: Explore ingress and networking
  • ▸Week 5: Integrate CI/CD and monitoring

Final Summary

  • ▸Kubernetes automates container orchestration for scalable, resilient applications.
  • ▸Uses declarative YAML manifests for configuration as code.
  • ▸Provides robust ecosystem for CI/CD, monitoring, and cloud integrations.
  • ▸Supports self-healing, auto-scaling, and multi-cloud portability.
  • ▸Essential for modern microservices, DevOps, and cloud-native deployments.

Project Structure

  • ▸Deployment YAMLs for applications
  • ▸Service YAMLs for networking
  • ▸ConfigMaps and Secrets YAMLs for configuration
  • ▸Namespace YAMLs for logical separation
  • ▸Ingress and NetworkPolicy YAMLs for access control

Monetization

  • ▸Managed Kubernetes services (EKS, GKE, AKS)
  • ▸Enterprise microservices deployments
  • ▸DevOps consultancy and CI/CD integration
  • ▸SaaS platforms hosted on Kubernetes
  • ▸Custom operators and automation solutions

Productivity Tips

  • ▸Use Helm charts for reusable deployments
  • ▸Templatize manifests with Kustomize
  • ▸Automate CI/CD with GitOps workflows
  • ▸Leverage namespaces for environment separation
  • ▸Monitor clusters proactively for performance and health

Basic Concepts

  • ▸Cluster - group of nodes running Kubernetes
  • ▸Pod - one or more containers sharing network/storage
  • ▸Deployment - ensures desired number of pod replicas
  • ▸Service - stable network endpoint for pods
  • ▸Namespace - isolates resources within a cluster

Official Docs

  • ▸https://kubernetes.io/docs/
  • ▸Kubernetes API Reference
  • ▸Kubectl CLI Reference
  • ▸Helm Charts Documentation
  • ▸Kubernetes GitHub Repository

More Kubernetes-yaml Typing Exercises

Simple Kubernetes Service

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher