> Как описать Deployment в Kubernetes для репликации приложения (Node.js, JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: TrendTech

Стек: Node.js, JavaScript

> Пример ответа

Для репликации фронтенд-приложения на Node.js в Kubernetes используется ресурс Deployment. Пример манифеста:

YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-app
labels:
app: frontend
spec:
replicas: 3
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: nodejs-app
image: myregistry/frontend:latest
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 3
periodSeconds: 5

Ключевые моменты:

  • replicas: 3 - количество копий приложения для отказоустойчивости и масштабирования
  • selector и template - связывают Deployment с подами через метки
  • containerPort - порт, на котором работает Node.js (обычно 3000)
  • resources - ограничения CPU/памяти для стабильной работы
  • livenessProbe - проверка живости (если приложение зависло, Kubernetes перезапустит под)
  • readinessProbe - проверка готовности (трафик направляется только на готовые поды)

Для доступа извне дополнительно создаётся Service (тип ClusterIP или LoadBalancer) и, при необходимости, Ingress для маршрутизации HTTP-запросов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью