Skip to content

Instantly share code, notes, and snippets.

@creio
Created April 26, 2024 13:50
Show Gist options
  • Save creio/7384252929e9b7d9749f31d30e8d127d to your computer and use it in GitHub Desktop.
Save creio/7384252929e9b7d9749f31d30e8d127d to your computer and use it in GitHub Desktop.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
labels:
app: my-app
spec:
replicas: 4 # Четыре реплики пода справляются с пиковой нагрузкой
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app-image:latest
resources:
requests:
memory: "128Mi" # Запрос ровно 128M памяти
cpu: "0.5" # Запрос 0.5 CPU для первых запросов, затем 0.1 CPU
limits:
memory: "128Mi" # Лимит на использование 128M памяти
cpu: "1" # Лимит на использование 1 CPU
readinessProbe:
httpGet:
path: /health # Путь для проверки готовности приложения
port: 8080 # Порт, на котором работает приложение
initialDelaySeconds: 10 # Задержка перед началом проверки готовности
periodSeconds: 5 # Интервал проверки готовности
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 60 # Задержка перед началом проверки работоспособности
periodSeconds: 10 # Интервал проверки работоспособности
env:
- name: ENV_VAR_NAME
value: ENV_VAR_VALUE # Переменные окружения для приложения
---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 4 # Минимальное количество реплик
maxReplicas: 10 # Максимальное количество реплик
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50 # Цель использования ресурса CPU (в процентах)
---
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment