одни лимиты/реквесты, а в describe pods отображаются другие значения лимитов/реквестов?
describe podname
Limits:
cpu: 100m
memory: 20Mi
Requests:
cpu: 100m
memory: 20Mi
describe sts
Limits:
cpu: 500m
memory: 1Gi
Requests:
cpu: 500m
memory: 1Gi
Вопрос вызван сообщением об ошибке:
I1121 17:09:49.827059 1 event.go:294] "Event occurred" object="namespace/podname" fieldPath="" kind="HorizontalPodAutoscaler" apiVersion="autoscaling/v2" type="Warning" reason="FailedComputeMetricsReplicas" message="invalid metrics (1 invalid out of 1), first error is: failed to get cpu resource metric value: failed to get cpu utilization: missing request for cpu"
Легко такое может быть, когда мутейшн контроллер стоит
😊 что такое мутейшн контроллер?
Посмотри что поды выкатились после обновления стс. И что ты правильно смотришь контейнеры, на которых стоят ресурсы
ямлы покажи pod'ов и sts'а актуальные из кластера
так приведенная информация бралась из "k describe po namepod" и "k describe sts stsname", т.е. из того, что сейчас уже в работе (в Running)
Ты либо тролль, либо не знаю. Тебе искренне хотят помочь и просят прислать ямли. kubectl get pod -o yaml kubectl get sts -o yaml
мб у тебя роллинг апдейт не прошел, мб хуки мутации, гадать можно бесконечно
во-первых, по поводу тролля - ты не прав. во-вторых, ты прав на счет контейнеров: в поде запущено два контейнера, и я посмотрел на лимиты/реквесты для другого контейнера, вместо интересующего меня приложения. @identw п.2 выше 😊 но суть ошибки, которую я увидел - актуально (по поводу HPA)
я извиняюсь, но скидывать данные пока не готов. в любом случае, спасибо, что отозвался! 🤝
скидывать ямли пока не готов. тебе тоже спасибо за наводку про два контейнера, хотя бы проверил, что лимиты и ресурсы корректные для интересующего меня. А вот для другого контейнера (linkerd-proxy) в pod.yaml говорится resources: {} (хотя в describe отображаются ресурсы и лимиты) Подскажи, пожалуйста, если в поде два контейнера (один из них linkerd-proxy), то в в выводе команды k get hpa сколько должно отобразиться "таргетов"? Например, у меня сейчас показывается "0% / 80%" В Интернете видел картинку, где должно быть несколько значений https://github.com/kubernetes-sigs/metrics-server/issues/923#issuecomment-1017470343 еще такое попалось Note that in the case of multi container pods all containers must have some form of resource specification (limits or requests).
из hpa.yaml (полученного k get hpa -o yaml > hpa.yaml) maxReplicas: 3 metrics: - resource: name: cpu target: averageUtilization: 80 type: Utilization type: Resource minReplicas: 1
концептуально как должно быть? если в HPA описывается только CPU, то k get hpa отобразит только одну пару "текущееЗначени/таргет" (при том, что в поде бегут два контейнера) так получается?
текущееЗначение - будет среднее взятое из metrics API за какой-то промежуток времени
Там несколько значений не по разным контейнерам, а по разным метрикам - процессор и память например
Спасибо за разъяснения! Сделал тестовую разливку, HPA увеличил количество реплик k -n sergey get hpa NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE test Deployment/test 184%/70%, 0%/30% 1 10 10 137m А можно как-то сделать подсказку для отображения, чтобы понимать, какой ресурс идет первым в списке, а какой второй? Я так понимаю, зависит от того, в какой последовательности идет в описании в самом HPA, потому как я memory ставил после CPU, но после сохранения k8s сам сделал memory первым в описании HPA, а CPU поставил после.
А хз. Скорее всего по порядку. Там лист - он упорядочен. Мне казалось, что листы не перемешиваются никогда.
суть в том, что изначально было описание только для CPU. Я отредактировал deploy - добавил литм/реквест для memory (после CPU) Сохранил деплоймент. Открыл на редактирование еще раз деплоймент, и там первым был memory, а за ним было описание для cpu 🤷♂️
в describe видно. Но хотелось бы видеть подсказки в выводе команды (исключительно для удобства и наглядности)
kubectl custom-template/jsonpath в помощь
Обсуждают сегодня