Skip to main content

Зачем Kubernetes в DevOps

Kubernetes (K8s) — стандарт де-факто для запуска контейнеров в продакшене: масштабирование, отказоустойчивость, деплой без даунтайма. Понимание K8s нужно почти на любом DevOps-проекте.

Ключевые темы

  • Компоненты: control plane, nodes, kubelet, API server
  • kubectl: get, describe, logs, exec; контексты и namespaces
  • Pod — минимальная единица; один или несколько контейнеров
  • Deployment — желаемое состояние, реплики, rolling update
  • StatefulSet, DaemonSet — когда использовать
  • Service: ClusterIP, NodePort, LoadBalancer
  • Ingress — маршрутизация HTTP/HTTPS, TLS
  • ConfigMap и Secret — как подключать в поды
  • Переменные окружения и смонтированные файлы
  • Шаблонизация манифестов, values, релизы
  • Установка чартов: helm install, upgrade, rollback

Минимальный Deployment + Service

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: app
          image: my-registry/my-app:1.0
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
    - port: 80
      targetPort: 8080
  type: ClusterIP

Что добавить сюда

  • Свои манифесты и Helm-чарты
  • Заметки по managed K8s (EKS, GKE, AKS)
  • Ссылки: официальная документация, Kubernetes The Hard Way, практики