Kubernetes
Chapter 59: Kubernetes Basics
Section titled “Chapter 59: Kubernetes Basics”Overview
Section titled “Overview”This chapter covers Kubernetes container orchestration basics.
59.1 Kubernetes Architecture
Section titled “59.1 Kubernetes Architecture”Components
Section titled “Components” Kubernetes Architecture+------------------------------------------------------------------+| || +------------------+ || | Control Plane | || | +--------------+ | || | | kube-apiserver| || | | etcd | || | | kube-scheduler| || | | kube-controller| || | +--------------+ | || +------------------+ || | || | || +------------------+ +------------------+ || | Worker Nodes | | Worker Nodes | || | +--------------+ | | +--------------+ | || | | kubelet | | | | kubelet | | || | | kube-proxy | | | | kube-proxy | | || | | containerd | | | | containerd | | || | +--------------+ | | +--------------+ | || +------------------+ +------------------+ || |+------------------------------------------------------------------+59.2 kubectl
Section titled “59.2 kubectl”Basic Commands
Section titled “Basic Commands”# Cluster infokubectl cluster-infokubectl get nodes
# Podskubectl get podskubectl get pods -o widekubectl describe pod pod_namekubectl logs pod_namekubectl exec -it pod_name -- /bin/sh
# Deploymentskubectl get deploymentskubectl create deployment nginx --image=nginxkubectl scale deployment nginx --replicas=3kubectl rollout status deployment nginx
# Serviceskubectl get serviceskubectl expose deployment nginx --port=8059.3 Pods
Section titled “59.3 Pods”Pod Definition
Section titled “Pod Definition”apiVersion: v1kind: Podmetadata: name: nginx labels: app: nginxspec: containers: - name: nginx image: nginx:1.24 ports: - containerPort: 80 resources: limits: memory: "128Mi" cpu: "500m" requests: memory: "64Mi" cpu: "250m"59.4 Deployments
Section titled “59.4 Deployments”Deployment Example
Section titled “Deployment Example”apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.24 ports: - containerPort: 8059.5 Services
Section titled “59.5 Services”Service Types
Section titled “Service Types”apiVersion: v1kind: Servicemetadata: name: nginxspec: type: ClusterIP # or NodePort, LoadBalancer selector: app: nginx ports: - port: 80 targetPort: 80# NodePort examplekubectl expose deployment nginx --type=NodePort
# LoadBalancerkubectl expose deployment nginx --type=LoadBalancer59.6 ConfigMaps and Secrets
Section titled “59.6 ConfigMaps and Secrets”ConfigMap
Section titled “ConfigMap”apiVersion: v1kind: ConfigMapmetadata: name: app-configdata: database_url: "postgres://db:5432/app" cache_enabled: "true"Secret
Section titled “Secret”apiVersion: v1kind: Secretmetadata: name: db-secrettype: OpaquestringData: username: admin password: changeme59.7 Namespaces
Section titled “59.7 Namespaces”Namespace Commands
Section titled “Namespace Commands”# List namespaceskubectl get namespaces
# Create namespacekubectl create namespace dev
# Use namespacekubectl config set-context --current --namespace=dev
# Get in namespacekubectl get pods -n devSummary
Section titled “Summary”In this chapter, you learned:
- ✅ Kubernetes architecture
- ✅ kubectl commands
- ✅ Pods
- ✅ Deployments
- ✅ Services
- ✅ ConfigMaps and Secrets
- ✅ Namespaces
Next Chapter
Section titled “Next Chapter”Chapter 60: Container Security
Last Updated: February 2026