EDIT:
РЕШЕНИЕ: Я забыл добавить target_cpu_utilization_percentage
в autoscaler.tf
файл
Мне нужен веб-сервис на Python (или другом языке), работающий в Kubernetes, но с автоматическим масштабированием.
Я создал Deployment
и Horizontal Autoscaler
, но не работает.
Я использую Terraform для настройки Kubernetes.
У меня есть эти файлы:
Deployments.tf
resource "kubernetes_deployment" "rui-test" {
metadata {
name = "rui-test"
labels {
app = "rui-test"
}
}
spec {
strategy = {
type = "RollingUpdate"
rolling_update = {
max_unavailable = "26%" # This is not working
}
}
selector = {
match_labels = {
app = "rui-test"
}
}
template = {
metadata = {
labels = {
app = "rui-test"
}
}
spec = {
container {
name = "python-test1"
image = "***************************"
}
}
}
}
}
Autoscaler.tf
resource "kubernetes_horizontal_pod_autoscaler" "test-rui" {
metadata {
name = "test-rui"
}
spec {
max_replicas = 10 # THIS IS NOT WORKING
min_replicas = 3 # THIS IS NOT WORKING
scale_target_ref {
kind = "Deployment"
name = "test-rui" # Name of deployment
}
}
}
Service.tf
resource "kubernetes_service" "rui-test" {
metadata {
name = "rui-test"
labels {
app = "rui-test"
}
}
spec {
selector {
app = "rui-test"
}
type = "LoadBalancer" # Use 'cluster_ip = "None"' or 'type = "LoadBalancer"'
port {
name = "http"
port = 8080
}
}
}
Когда я запускаю kubectl get hpa
, я вижу это:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
rui-test Deployment/rui-test <unknown>/80% 1 3 1 1h
Вместо:
rui-test Deployment/rui-test <unknown>/79% 3 10 1 1h
Вот чего я хочу.
Но если я бегу kubectl autoscale deployment rui-test --min=3 --max=10 --cpu-percent=81
, я вижу это:
Error from server (AlreadyExists): horizontalpodautoscalers.autoscaling "rui-test" already exists
В куберне появляются такие