Set explicit resource limits for API and celery-beat pods
Overrides LimitRange defaults (500m CPU) which caused kernel CPU throttling during streaming requests. API gets 2000m CPU limit, celery-beat gets 200m.
This commit is contained in:
parent
8db7b60493
commit
9179456bf7
2 changed files with 163 additions and 0 deletions
86
k8s/api-deployment.yaml
Normal file
86
k8s/api-deployment.yaml
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
deployment.kubernetes.io/revision: "125"
|
||||||
|
labels:
|
||||||
|
app: realestate-crawler-api
|
||||||
|
tier: 4-aux
|
||||||
|
name: realestate-crawler-api
|
||||||
|
namespace: realestate-crawler
|
||||||
|
spec:
|
||||||
|
progressDeadlineSeconds: 600
|
||||||
|
replicas: 2
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: realestate-crawler-api
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 1
|
||||||
|
maxUnavailable: 0
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: realestate-crawler-api
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: ENV
|
||||||
|
value: prod
|
||||||
|
- name: DB_CONNECTION_STRING
|
||||||
|
value: mysql://wrongmove:N5uy5v4wntXStCOvBlY7V@mysql.dbaas.svc.cluster.local:3306/wrongmove
|
||||||
|
- name: CELERY_BROKER_URL
|
||||||
|
value: redis://redis.redis.svc.cluster.local:6379/0
|
||||||
|
- name: CELERY_RESULT_BACKEND
|
||||||
|
value: redis://redis.redis.svc.cluster.local:6379/1
|
||||||
|
- name: UVICORN_LOG_LEVEL
|
||||||
|
value: debug
|
||||||
|
- name: OSRM_FOOT_URL
|
||||||
|
value: http://osrm-foot.osm-routing.svc.cluster.local:5000
|
||||||
|
- name: OSRM_BICYCLE_URL
|
||||||
|
value: http://osrm-bicycle.osm-routing.svc.cluster.local:5000
|
||||||
|
- name: OTP_URL
|
||||||
|
value: http://otp.osm-routing.svc.cluster.local:8080
|
||||||
|
- name: SLACK_WEBHOOK_URL
|
||||||
|
value: https://hooks.slack.com/services/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
|
||||||
|
- name: WEBAUTHN_RP_ID
|
||||||
|
value: wrongmove.viktorbarzin.me
|
||||||
|
- name: WEBAUTHN_ORIGIN
|
||||||
|
value: https://wrongmove.viktorbarzin.me
|
||||||
|
image: viktorbarzin/realestatecrawler:350
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: realestate-crawler-api
|
||||||
|
ports:
|
||||||
|
- containerPort: 5001
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "50m"
|
||||||
|
memory: "128Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "2000m"
|
||||||
|
memory: "1Gi"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/data
|
||||||
|
mountPropagation: None
|
||||||
|
name: data
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "2"
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
enableServiceLinks: true
|
||||||
|
priorityClassName: tier-4-aux
|
||||||
|
restartPolicy: Always
|
||||||
|
schedulerName: default-scheduler
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
nfs:
|
||||||
|
path: /mnt/main/real-estate-crawler
|
||||||
|
server: 10.0.10.15
|
||||||
77
k8s/celery-beat-deployment.yaml
Normal file
77
k8s/celery-beat-deployment.yaml
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
deployment.kubernetes.io/revision: "66"
|
||||||
|
labels:
|
||||||
|
app: realestate-crawler-celery-beat
|
||||||
|
tier: 4-aux
|
||||||
|
name: realestate-crawler-celery-beat
|
||||||
|
namespace: realestate-crawler
|
||||||
|
spec:
|
||||||
|
progressDeadlineSeconds: 600
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: realestate-crawler-celery-beat
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/restartedAt: "2026-02-21T23:21:10Z"
|
||||||
|
labels:
|
||||||
|
app: realestate-crawler-celery-beat
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- python
|
||||||
|
- -m
|
||||||
|
- celery
|
||||||
|
- -A
|
||||||
|
- celery_app
|
||||||
|
- beat
|
||||||
|
- --loglevel=info
|
||||||
|
env:
|
||||||
|
- name: ENV
|
||||||
|
value: prod
|
||||||
|
- name: DB_CONNECTION_STRING
|
||||||
|
value: mysql://wrongmove:N5uy5v4wntXStCOvBlY7V@mysql.dbaas.svc.cluster.local:3306/wrongmove
|
||||||
|
- name: CELERY_BROKER_URL
|
||||||
|
value: redis://redis.redis.svc.cluster.local:6379/0
|
||||||
|
- name: CELERY_RESULT_BACKEND
|
||||||
|
value: redis://redis.redis.svc.cluster.local:6379/1
|
||||||
|
- name: SCRAPE_SCHEDULES
|
||||||
|
value: |
|
||||||
|
[{"name":"Daily RENT","listing_type":"RENT","hour":"2","min_bedrooms":1,"max_bedrooms":3,"min_price":2000,"max_price":4000},{"name":"Daily BUY","listing_type":"BUY","hour":"3","min_bedrooms":2,"max_bedrooms":3,"min_price":300000,"max_price":800000}]
|
||||||
|
image: viktorbarzin/realestatecrawler:350
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: celery-beat
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "10m"
|
||||||
|
memory: "64Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "200m"
|
||||||
|
memory: "256Mi"
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/data
|
||||||
|
mountPropagation: None
|
||||||
|
name: data
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "2"
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
enableServiceLinks: true
|
||||||
|
priorityClassName: tier-4-aux
|
||||||
|
restartPolicy: Always
|
||||||
|
schedulerName: default-scheduler
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
nfs:
|
||||||
|
path: /mnt/main/real-estate-crawler
|
||||||
|
server: 10.0.10.15
|
||||||
Loading…
Add table
Add a link
Reference in a new issue