Этот вопрос проверяет знание методов эффективного и безопасного развертывания приложений в Kubernetes.
Чтобы правильно развернуть приложение в Kubernetes, следует:
Использовать декларативный подход (Deployment, Helm).
Разделять сервисы по разным namespace.
Настраивать liveness и readiness probe для мониторинга состояния Pod-ов.
Определять resource limits и requests для оптимального распределения ресурсов.
Используйте Deployment и Helm-чарты для управления обновлениями и конфигурацией.
Пример манифеста Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latestИспользуйте namespace, чтобы разделять окружения (dev, prod).
Команда для создания namespace:
kubectl create namespace my-namespaceReadiness Probe проверяет, готов ли Pod принимать трафик.
Liveness Probe перезапускает Pod при сбое.
Пример:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 5Используйте requests (минимальные ресурсы) и limits (максимальные).
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"Вывод:
Применение этих практик делает развертывание в Kubernetes более надежным, управляемым и масштабируемым.