Files
english/.opencode/skills/devops/references/kubernetes-basics.md
2026-04-12 01:06:31 +07:00

1.7 KiB

Kubernetes Core Concepts

Cluster Architecture

CONTROL PLANE                    WORKER NODES
├── API Server (kubectl)         ├── Kubelet (node agent)
├── Scheduler (pod placement)    ├── Kube-proxy (networking)
├── Controller Manager           └── Container Runtime
└── etcd (cluster state)

Pod

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: myapp
    image: myapp:1.0
    ports:
    - containerPort: 8080
    resources:
      requests: { memory: "256Mi", cpu: "250m" }
      limits: { memory: "512Mi", cpu: "500m" }

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate: { maxSurge: 1, maxUnavailable: 0 }
  selector:
    matchLabels: { app: myapp }
  template:
    metadata:
      labels: { app: myapp }
    spec:
      containers:
      - name: myapp
        image: myapp:1.0

Service

apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  type: ClusterIP  # ClusterIP, NodePort, LoadBalancer
  selector: { app: myapp }
  ports:
  - port: 8080
    targetPort: 8080

ConfigMap & Secret

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  DATABASE_HOST: "postgres.svc.cluster.local"
---
apiVersion: v1
kind: Secret
type: Opaque
stringData:
  password: secretpassword

Workload Types

Type Use Case
Deployment Stateless apps
StatefulSet Databases
DaemonSet One per node
Job Batch tasks
CronJob Scheduled

Labels

labels:
  app: myapp
  version: v1.0.0
  tier: frontend
  environment: prod