Learning
Kubernetes

Haladó témák

HPA, resource requests/limits, namespace szeparáció, probe-ok és tartós tárolás (PVC).

Haladó témák

Horizontal Pod Autoscaler (HPA)

A HPA automatikusan skálázza a deployment-eket CPU/memória alapján (ehhez tipikusan szükséges a Metrics Server).

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-deployment
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70

Resource requests és limits

  • Request: scheduler szempontjából a minimum igény.
  • Limit: maximum használat; memória limit túllépés → OOMKill.
resources:
  requests:
    memory: "128Mi"
    cpu: "250m"
  limits:
    memory: "256Mi"
    cpu: "500m"

Namespace-ek szeparációhoz

kubectl create namespace team-frontend
kubectl create namespace team-backend
kubectl create namespace development
kubectl create namespace staging
kubectl create namespace production

Liveness és readiness probe

spec:
  containers:
    - name: myapp
      image: myapp:1.0.0
      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 15
        periodSeconds: 20
      readinessProbe:
        httpGet:
          path: /ready
          port: 8080
        initialDelaySeconds: 5
        periodSeconds: 10
  • Liveness: bukás → újraindítás
  • Readiness: bukás → kivétel a forgalomból (nem feltétlen restart)

PersistentVolumeClaim (PVC)

Állapottal rendelkező alkalmazásoknál tartós tárolást ad, a pod életciklusától függetlenül.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myapp-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

Rövid összefoglaló

  • HPA automatikus skálázás CPU/memória alapján.
  • Requests/limits stabilitást és fair erőforrás-használatot ad.
  • Probe-ok nélkül nehéz megbízhatóan forgalmazni.

On this page