[ci skip] Real estate crawler: 2 replicas for UI/API, rolling update for celery
- UI and API: 1 → 2 replicas for zero-downtime during restarts/crashes - Celery worker: Recreate → RollingUpdate strategy - Celery beat: unchanged (Recreate, singleton scheduler) - Move f1 from Cloudflare proxied to non-proxied DNS
This commit is contained in:
parent
2298459496
commit
5fe288a4e4
1 changed files with 32 additions and 59 deletions
|
|
@ -32,7 +32,7 @@ resource "kubernetes_deployment" "realestate-crawler-ui" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spec {
|
spec {
|
||||||
replicas = 1
|
replicas = 2
|
||||||
strategy {
|
strategy {
|
||||||
type = "RollingUpdate"
|
type = "RollingUpdate"
|
||||||
rolling_update {
|
rolling_update {
|
||||||
|
|
@ -104,7 +104,7 @@ resource "kubernetes_deployment" "realestate-crawler-api" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spec {
|
spec {
|
||||||
replicas = 1
|
replicas = 2
|
||||||
strategy {
|
strategy {
|
||||||
type = "RollingUpdate"
|
type = "RollingUpdate"
|
||||||
rolling_update {
|
rolling_update {
|
||||||
|
|
@ -262,7 +262,11 @@ resource "kubernetes_deployment" "realestate-crawler-celery" {
|
||||||
spec {
|
spec {
|
||||||
replicas = 1
|
replicas = 1
|
||||||
strategy {
|
strategy {
|
||||||
type = "Recreate"
|
type = "RollingUpdate"
|
||||||
|
rolling_update {
|
||||||
|
max_unavailable = 0
|
||||||
|
max_surge = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
selector {
|
selector {
|
||||||
match_labels = {
|
match_labels = {
|
||||||
|
|
@ -281,6 +285,11 @@ resource "kubernetes_deployment" "realestate-crawler-celery" {
|
||||||
image = "viktorbarzin/realestatecrawler:latest"
|
image = "viktorbarzin/realestatecrawler:latest"
|
||||||
image_pull_policy = "Always"
|
image_pull_policy = "Always"
|
||||||
command = ["python", "-m", "celery", "-A", "celery_app", "worker", "--loglevel=info"]
|
command = ["python", "-m", "celery", "-A", "celery_app", "worker", "--loglevel=info"]
|
||||||
|
port {
|
||||||
|
name = "metrics"
|
||||||
|
container_port = 9090
|
||||||
|
protocol = "TCP"
|
||||||
|
}
|
||||||
env {
|
env {
|
||||||
name = "ENV"
|
name = "ENV"
|
||||||
value = "prod"
|
value = "prod"
|
||||||
|
|
@ -330,6 +339,26 @@ resource "kubernetes_deployment" "realestate-crawler-celery" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "kubernetes_service" "realestate-crawler-celery-metrics" {
|
||||||
|
metadata {
|
||||||
|
name = "realestate-crawler-celery-metrics"
|
||||||
|
namespace = kubernetes_namespace.realestate-crawler.metadata[0].name
|
||||||
|
labels = {
|
||||||
|
"app" = "realestate-crawler-celery"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spec {
|
||||||
|
selector = {
|
||||||
|
app = "realestate-crawler-celery"
|
||||||
|
}
|
||||||
|
port {
|
||||||
|
port = 9090
|
||||||
|
target_port = 9090
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Celery beat for scheduled task management
|
# Celery beat for scheduled task management
|
||||||
resource "kubernetes_deployment" "realestate-crawler-celery-beat" {
|
resource "kubernetes_deployment" "realestate-crawler-celery-beat" {
|
||||||
metadata {
|
metadata {
|
||||||
|
|
@ -398,59 +427,3 @@ resource "kubernetes_deployment" "realestate-crawler-celery-beat" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "kubernetes_cron_job_v1" "scrape-rightmove" {
|
|
||||||
metadata {
|
|
||||||
name = "scrape-rightmove"
|
|
||||||
namespace = kubernetes_namespace.realestate-crawler.metadata[0].name
|
|
||||||
}
|
|
||||||
spec {
|
|
||||||
concurrency_policy = "Replace"
|
|
||||||
failed_jobs_history_limit = 5
|
|
||||||
schedule = "0 0 1 * *"
|
|
||||||
starting_deadline_seconds = 10
|
|
||||||
successful_jobs_history_limit = 10
|
|
||||||
job_template {
|
|
||||||
metadata {}
|
|
||||||
spec {
|
|
||||||
backoff_limit = 3
|
|
||||||
ttl_seconds_after_finished = 10
|
|
||||||
template {
|
|
||||||
metadata {}
|
|
||||||
spec {
|
|
||||||
container {
|
|
||||||
name = "scrape-rightmove"
|
|
||||||
image = "viktorbarzin/realestatecrawler:latest"
|
|
||||||
command = ["/bin/sh", "-c", <<-EOT
|
|
||||||
/app/runall.sh # Run the scrape script
|
|
||||||
EOT
|
|
||||||
]
|
|
||||||
env {
|
|
||||||
name = "DB_CONNECTION_STRING"
|
|
||||||
value = "mysql://wrongmove:wrongmove@mysql.dbaas.svc.cluster.local:3306/wrongmove"
|
|
||||||
}
|
|
||||||
# env {
|
|
||||||
# name = "HTTP_PROXY"
|
|
||||||
# value = "http://tor-proxy.tor-proxy:8118"
|
|
||||||
# }
|
|
||||||
# env {
|
|
||||||
# name = "HTTPS_PROXY"
|
|
||||||
# value = "http://tor-proxy.tor-proxy:8118"
|
|
||||||
# }
|
|
||||||
volume_mount {
|
|
||||||
name = "data"
|
|
||||||
mount_path = "/app/data"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
volume {
|
|
||||||
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