HorizontalPodAutoscaler
apiVersion: autoscaling/v2
import "k8s.io/api/autoscaling/v2"
HorizontalPodAutoscaler
HorizontalPodAutoscaler — це конфігурація для горизонтального автомасштабування, яка автоматично керує кількістю реплік будь-якого ресурсу, що реалізує субресурс масштабування, на основі вказаних метрик.
Зрозуміло, ось переклад без формату YAML:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata (ObjectMeta):
metadata — стандартні метадані обʼєкта. Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (HorizontalPodAutoscalerSpec):
spec — специфікація поведінки автомасштабування. Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
status (HorizontalPodAutoscalerStatus):
status містить поточну інформацію про автомасштабування.
HorizontalPodAutoscalerSpec
HorizontalPodAutoscalerSpec описує бажану функціональність HorizontalPodAutoscaler.
maxReplicas (int32), обовʼязково
maxReplicas — верхня межа кількості реплік, до якої може масштабуватись автомасштабувальник. Не може бути менше minReplicas.
scaleTargetRef (CrossVersionObjectReference), обовʼязково
scaleTargetRef вказує на цільовий ресурс для масштабування і використовується для збору метрик для Podʼів, а також для зміни кількості реплік.
CrossVersionObjectReference містить достатньо інформації для ідентифікації вказаного ресурсу.
scaleTargetRef.kind (string), обовʼязково
kind — тип вказаного ресурсу; Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
scaleTargetRef.name (string), обовʼязково
name — назва вказаного ресурсу; Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
scaleTargetRef.apiVersion (string)
apiVersion — версія API вказаного ресурсу
minReplicas (int32)
minReplicas — нижня межа кількості реплік, до якої може масштабуватись автомасштабувальник. Стандартне значення — 1 Pod. minReplicas може бути 0, якщо ввімкнути альфа-функцію HPAScaleToZero і налаштувати щонайменше одну метрику типу Object або External. Масштабування активне, поки є принаймні одне значення метрики.
behavior (HorizontalPodAutoscalerBehavior)
behavior — налаштовує поведінку масштабування цільового ресурсу як в напрямку збільшення, так і в напрямку зменшення (поля scaleUp та scaleDown відповідно). Якщо не вказано, будуть використані типові правила масштабування HPAScalingRules для збільшення і зменшення.
HorizontalPodAutoscalerBehavior налаштовує поведінку масштабування цільового ресурсу як в напрямку збільшення, так і в напрямку зменшення (поля scaleUp та scaleDown відповідно).
behavior.scaleDown (HPAScalingRules)
scaleDown — політика масштабування для зменшення. Якщо не встановлено, типове значення дозволяє зменшувати до minReplicas Podʼів з вікном стабілізації 300 секунд (тобто використовується найкраще рекомендоване значення за останні 300 секунд).
HPAScalingRules налаштовує поведінку масштабування для одного напрямку. Ці правила застосовуються після обчислення бажаної кількості реплік з метрик для HPA. Вони можуть обмежувати швидкість масштабування, вказуючи політики масштабування, та запобігати "повзучості" за допомогою визначення вікна стабілізації, щоб кількість реплік не встановлювалась миттєво, а вибирався найбезпечніше значення з вікна стабілізації.
behavior.scaleDown.policies ([]HPAScalingPolicy)
Atomic: will be replaced during a merge
policies — список потенційних політик масштабування, які можуть використовуватись під час масштабування. Принаймні одна політика повинна бути вказана, інакше HPAScalingRules буде відкинуто як недійсне
HPAScalingPolicy — це одна політика, яка повинна виконуватися для вказаного інтервалу в минулому.
behavior.scaleDown.policies.type (string), обовʼязково
type — використовується для зазначення політики масштабування.
behavior.scaleDown.policies.value (int32), обовʼязково
value — містить кількість зміни, що дозволяється політикою. Вона повинна бути більше нуля.
behavior.scaleDown.policies.periodSeconds (int32), обовʼязково
periodSeconds — визначає вікно часу, протягом якого політика повинна бути true. PeriodSeconds повинен бути більше нуля і менше або рівний 1800 (30 хвилин).
behavior.scaleDown.selectPolicy (string)
selectPolicy — використовується для зазначення того, яка політика повинна бути використана. Якщо не встановлено, використовується типове значення Max.
behavior.scaleDown.stabilizationWindowSeconds (int32)
stabilizationWindowSeconds — кількість секунд, протягом яких враховуються попередні рекомендації під час збільшення або зменшення масштабування. stabilizationWindowSeconds повинен бути більше або рівний нулю і менше або рівний 3600 (одна година). Якщо не встановлено, використовуються типові значення:
- Для збільшення масштабування: 0 (тобто стабілізація не виконується).
- Для зменшення масштабування: 300 (тобто вікно стабілізації 300 секунд).
behavior.scaleUp (HPAScalingRules)
scaleUp — це політика масштабування вгору. Якщо не встановлено, використовується стандартне значення, яке є найбільшим з:
- збільшення не більше ніж на 4 Podʼи за 60 секунд
- подвоєння кількості Podʼів за 60 секунд
Стабілізація не використовується.
HPAScalingRules налаштовує поведінку масштабування в одному напрямку. Ці правила застосовуються після обчислення DesiredReplicas з метрик для HPA. Вони можуть обмежити швидкість масштабування, вказуючи політики масштабування. Вони можуть запобігти нестабільному масштабуванню, вказуючи вікно стабілізації, щоб кількість реплік не змінювалася миттєво, а вибиралося найбезпечніше значення з вікна стабілізації.
behavior.scaleUp.policies ([]HPAScalingPolicy)
Atomic: буде замінено під час обʼєднання
policies — це список можливих політик масштабування, які можуть бути використані під час масштабування. Має бути вказана принаймні одна політика, інакше HPAScalingRules буде вважатися недійсним.
HPAScalingPolicy — це окрема політика, якої треба має бути true протягом заданого інтервалу в минулому.
behavior.scaleUp.policies.type (string), обовʼязково
type — використовується для зазначення політики масштабування.
behavior.scaleUp.policies.value (int32), обовʼязково
value — містить кількість змін, дозволених політикою. Значення має бути більше нуля.
behavior.scaleUp.policies.periodSeconds (int32), обовʼязково
periodSeconds визначає вікно часу, протягом якого політика має бути true. PeriodSeconds має бути більше нуля та менше або дорівнювати 1800 (30 хвилин).
behavior.scaleUp.selectPolicy (string)
selectPolicy використовується для вказівки, яка політика має бути використана. Якщо не встановлено, використовується стандартне значення Max.
behavior.scaleUp.stabilizationWindowSeconds (int32)
stabilizationWindowSeconds — це кількість секунд, протягом яких минулі рекомендації мають враховуватися під час масштабування вгору або вниз. StabilizationWindowSeconds має бути більше або дорівнювати нулю та менше або дорівнювати 3600 (одна година). Якщо не встановлено, використовуються стандартні значення:
- Для масштабування вгору: 0 (тобто стабілізація не виконується).
- Для масштабування вниз: 300 (тобто вікно стабілізації триває 300 секунд).
metrics ([]MetricSpec)
Atomic: буде замінено під час обʼєднання
metrics містить специфікації для обчислення бажаної кількості реплік (буде використана максимальна кількість реплік за всіма метриками). Бажана кількість реплік обчислюється множенням відношення між цільовим значенням та поточним значенням на поточну кількість Podʼів. Таким чином, метрики, що використовуються, мають зменшуватися зі збільшенням кількості Podʼів, і навпаки. Дивіться індивідуальні типи джерел метрик для отримання додаткової інформації про те, як кожен тип метрик має реагувати. Якщо не встановлено, стандартна метрика з буде встановлена на 80% середнього використання CPU.
MetricSpec визначає, як масштабуватися на основі однієї метрики (лише
type
та одне інше відповідне поле мають бути встановлені одночасно).metrics.type (string), обовʼязково
type — тип джерела метрики. Має бути одним з "ContainerResource", "External", "Object", "Pods" або "Resource", кожен з яких відповідає відповідному полю в обʼєкті. Примітка: тип "ContainerResource" доступний лише за умови, що увімкнено функцію HPAContainerMetrics.
metrics.containerResource (ContainerResourceMetricSource)
containerResource стосується метрики ресурсу (наприклад, ті, що вказані в запитах і лімітах), відомої Kubernetes, яка описує один контейнер у кожному Podʼі поточного цільового масштабу (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додаток до тих, що доступні для звичайних метрик на кожен Pod за допомогою джерела "pods". Це альфа-функція і може бути увімкнена прапорцем функції HPAContainerMetrics.
ContainerResourceMetricSource вказує, як масштабуватися на основі метрики ресурсу, відомої Kubernetes, як вказано в запитах і лімітах, описуючи кожен Pod у поточному цільовому масштабі (наприклад, CPU або памʼять). Значення будуть усереднені перед порівнянням з цільовим значенням. Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додаток до тих, що доступні для звичайних метрик на кожен Pod за допомогою джерела "pods". Має бути встановлений лише один тип "target".
metrics.containerResource.container (string), обовʼязково
container — це назва контейнера в Podʼах цільового масштабу.
metrics.containerResource.name (string), обовʼязково
name — це назва відповідного ресурсу.
metrics.containerResource.target (MetricTarget), обовʼязково
target — визначає цільове значення для даної метрики.
MetricTarget визначає цільове значення, середнє значення або середнє використання певної метрики.
metrics.containerResource.target.type (string), обовʼязково
type — представляє, чи є тип метрики Utilization, Value або AverageValue.
metrics.containerResource.target.averageUtilization (int32)
averageUtilization — це цільове значення середнього значення метрики ресурсу по всім відповідним Podʼам, представлене у відсотках від запитуваного значення ресурсу для Podʼів. Наразі дійсно лише для типу джерела метрики Resource.
metrics.containerResource.target.averageValue (Quantity)
averageValue – це цільове значення середнього значення метрики по всім відповідним Podʼам (як кількість).
metrics.containerResource.target.value (Quantity)
value — це цільове значення метрики (як кількість).
metrics.external (ExternalMetricSource)
external стосується глобальної метрики, яка не повʼязана з жодним обʼєктом Kubernetes. Це дозволяє автоматичне масштабування на основі інформації, що надходить від компонентів, які працюють за межами кластера (наприклад, довжина черги у хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює за межами кластера).
ExternalMetricSource вказує, як масштабуватися на основі метрики, не повʼязаної з жодним обʼєктом Kubernetes (наприклад, довжина черги у хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює за межами кластера).
metrics.external.metric (MetricIdentifier), обовʼязково
metric — визначає цільову метрику за назвою та селектором.
MetricIdentifier визначає назву та, за потреби, селектор для метрики.
metrics.external.metric.name (string), обовʼязково
name — це назва даної метрики.
metrics.external.metric.selector (LabelSelector)
selector — це строкове кодування стандартного селектора міток Kubernetes для даної метрики. Якщо встановлено, він передається як додатковий параметр серверу метрик для більш специфічного вибору метрик. Якщо не встановлено, для збору метрик буде використовуватися лише назва метрики.
metrics.external.target (MetricTarget), обовʼязково
target — визначає цільове значення для даної метрики.
MetricTarget визначає цільове значення, середнє значення або середнє використання певної метрики.
metrics.external.target.type (string), обовʼязково
type — представляє, чи є тип метрики Utilization, Value або AverageValue.
metrics.external.target.averageUtilization (int32)
averageUtilization — це цільове значення середнього значення метрики ресурсу по всім відповідним Podʼам, представлене у відсотках від запитуваного значення ресурсу для Podʼів. Наразі дійсно лише для типу джерела метрики Resource.
metrics.external.target.averageValue (Quantity)
averageValue — це цільове значення середнього значення метрики по всім відповідним Podʼам (як кількість).
metrics.external.target.value (Quantity)
value – це цільове значення метрики (як кількість).
metrics.object (ObjectMetricSource)
object — стосується метрики, що описує один обʼєкт Kubernetes (наприклад, кількість запитів на секунду на обʼєкті Ingress).
ObjectMetricSource вказує, як масштабуватися на основі метрики, що описує обʼєкт Kubernetes (наприклад, кількість запитів на секунду на обʼєкті Ingress).
metrics.object.describedObject (CrossVersionObjectReference), обовʼязково
describedObject визначає опис обʼєкта, такого як тип, імʼя та версія API.
CrossVersionObjectReference містить достатньо інформації для ідентифікації відповідного ресурсу.
metrics.object.describedObject.kind (string), обовʼязково
kind — це тип посилання; Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metrics.object.describedObject.name (string), обовʼязково
name — це імʼя посилання; Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
metrics.object.describedObject.apiVersion (string)
apiVersion — це версія API посилання.
metrics.object.metric (MetricIdentifier), обовʼязково
metric — визначає цільову метрику за назвою та селектором.
MetricIdentifier визначає назву та, за потреби, селектор для метрики.
metrics.object.metric.name (string), обовʼязково
name — це назва даної метрики.
metrics.object.metric.selector (LabelSelector)
selector — це строкове кодування стандартного селектора міток Kubernetes для даної метрики. Якщо встановлено, він передається як додатковий параметр серверу метрик для більш специфічного вибору метрик. Якщо не встановлено, для збору метрик буде використовуватися лише назва метрики.
metrics.object.target (MetricTarget), обовʼязково
target — визначає цільове значення для даної метрики.
MetricTarget визначає цільове значення, середнє значення або середнє використання певної метрики.
metrics.object.target.type (string), обовʼязково
type — представляє, чи є тип метрики Utilization, Value або AverageValue.
metrics.object.target.averageUtilization (int32)
averageUtilization — цільове значення середнього значення метрики ресурсу по всім відповідним Podʼам, представлене у відсотках від запитуваного значення ресурсу для Podʼів. Наразі дійсно лише для типу джерела метрики Resource.
metrics.object.target.averageValue (Quantity)
averageValue — цільове значення середнього значення метрики по всім відповідним Podʼам (як кількість).
metrics.object.target.value (Quantity)
value — цільове значення метрики (як кількість).
metrics.pods (PodsMetricSource)
pods — стосується метрики, що описує кожен Pod у поточному цільовому масштабі (наприклад, кількість транзакцій на секунду). Значення будуть усереднені перед порівнянням з цільовим значенням.
PodsMetricSource вказує, як масштабуватися на основі метрики, що описує кожен Pod у поточному цільовому масштабі (наприклад, кількість транзакцій на секунду). Значення будуть усереднені перед порівнянням з цільовим значенням.
metrics.pods.metric (MetricIdentifier), обовʼязково
metric — визначає цільову метрику за назвою та селектором.
MetricIdentifier визначає назву та, за потреби, селектор для метрики.
metrics.pods.metric.name (string), обовʼязково
name — це назва даної метрики.
metrics.pods.metric.selector (LabelSelector)
selector — це строкове кодування стандартного селектора міток Kubernetes для даної метрики. Якщо встановлено, він передається як додатковий параметр серверу метрик для більш специфічного вибору метрик. Якщо не встановлено, для збору метрик буде використовуватися лише назва метрики.
metrics.pods.target (MetricTarget), обовʼязково
target визначає цільове значення для даної метрики.
MetricTarget визначає цільове значення, середнє значення або середнє використання певної метрики.
metrics.pods.target.type (string), обовʼязково
type — представляє, чи є тип метрики Utilization, Value або AverageValue.
metrics.pods.target.averageUtilization (int32)
averageUtilization — це цільове значення середнього значення метрики ресурсу по всім відповідним Podʼам, представлене у відсотках від запитуваного значення ресурсу для Podʼів. Наразі дійсно лише для типу джерела метрики Resource.
metrics.pods.target.averageValue (Quantity)
averageValue — це цільове значення середнього значення метрики по всім відповідним Podʼам (як кількість).
metrics.pods.target.value (Quantity)
value — це цільове значення метрики (як кількість).
metrics.resource (ResourceMetricSource)
resource — стосується метрики ресурсу (наприклад, ті, що вказані в запитах і лімітах), відомої Kubernetes, яка описує кожен у поточному цільовому масштабі (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додаток до тих, що доступні для звичайних метрик на кожен за допомогою джерела "pods".
ResourceMetricSource вказує, як масштабуватися на основі метрики ресурсу, відомої Kubernetes, як вказано в запитах і лімітах, описуючи кожен у поточному цільовому масштабі (наприклад, CPU або памʼять). Значення будуть усереднені перед порівнянням з цільовим значенням. Такі метрики вбудовані в Kubernetes і мають спеціальні параметри масштабування на додаток до тих, що доступні для звичайних метрик на кожен под за допомогою джерела "pods". Повинен бути встановлений лише один тип "target".
metrics.resource.name (string), обовʼязково
name — це назва ресурсу.
metrics.resource.target (MetricTarget), обовʼязково
target — визначає цільове значення для даної метрики.
MetricTarget визначає цільове значення, середнє значення або середнє використання певної метрики.
metrics.resource.target.type (string), обовʼязково
type представляє, чи є тип метрики Utilization, Value або AverageValue.
metrics.resource.target.averageUtilization (int32)
averageUtilization — це цільове значення середнього значення метрики ресурсу по всім відповідним Podʼам, представлене у відсотках від запитуваного значення ресурсу для Podʼів. Наразі дійсно лише для типу джерела метрики Resource.
metrics.resource.target.averageValue (Quantity)
averageValue — це цільове значення середнього значення метрики по всім відповідним Podʼам (як кількість).
metrics.resource.target.value (Quantity)
value —це цільове значення метрики (як кількість).
HorizontalPodAutoscalerStatus
HorizontalPodAutoscalerStatus описує поточний стан горизонтального автомасштабувальника Podʼів.
desiredReplicas (int32), обовʼязково
desiredReplicas — це бажана кількість реплік Podʼів, якими керує цей автомасштабувальник, відповідно до останнього обчислення автомасштабувальника.
conditions ([]HorizontalPodAutoscalerCondition)
Patch strategy: обʼєднання за ключем
type
Map: під час обʼєднання зберігатимуться унікальні значення за ключем type
conditions — це набір станів, необхідних для масштабування цільового обʼєкта автомасштабувальником, та вказує, чи було їх досягнуто.
HorizontalPodAutoscalerCondition описує стан HorizontalPodAutoscaler у певний момент часу.
conditions.status (string), обовʼязково
status — це статус стану (True, False, Unknown)
conditions.type (string), обовʼязково
type описує поточний стан
conditions.lastTransitionTime (Time)
lastTransitionTime — це останній час, коли стан перейшла з одного стану в інший
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.message (string)
message - це зрозуміле людині пояснення, що містить деталі про зміну стану
conditions.reason (string)
reason — це причина останньї зміни стану.
currentMetrics ([]MetricStatus)
Atomic: буде замінено під час обʼєднання
currentMetrics — це останній прочитаний статус метрик, які використовує цей автомасштабувальник.
MetricStatus описує останній прочитаний статус окремої метрики.
currentMetrics.type (string), обовʼязково
type — це тип джерела метрики. Це буде один з "ContainerResource", "External", "Object", "Pods" або "Resource", кожен з яких відповідає відповідному полю в обʼєкті. Примітка: тип "ContainerResource" доступний лише за увімкненого прапора функції HPAContainerMetrics.
currentMetrics.containerResource (ContainerResourceMetricStatus)
container resource стосується метрики ресурсу (такої як зазначено в запитах та обмеженнях), відомої Kubernetes, що описує окремий контейнер у кожному Podʼі в поточному цільовому масштабуванні (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні опції масштабування, окрім тих, що доступні для звичайних метрик на кожен Pod, використовуючи джерело "pods".
ContainerResourceMetricStatus вказує поточне значення метрики ресурсу, відомої Kubernetes, як зазначено в запитах та обмеженнях, що описує окремий контейнер у кожному Podʼі в поточному цільовому масштабуванні (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні опції масштабування, окрім тих, що доступні для звичайних метрик на кожен Pod, використовуючи джерело "pods".
currentMetrics.containerResource.container (string), обовʼязково
container — це імʼя контейнера в Podʼах цільового масштабування
currentMetrics.containerResource.current (MetricValueStatus), обовʼязково
current — містить поточне значення для даної метрики
MetricValueStatus містить поточне значення метрики
currentMetrics.containerResource.current.averageUtilization (int32)
currentAverageUtilization — це поточне значення середнього використання метрики ресурсу серед усіх відповідних Podʼів, представлене у відсотках від запитаного значення ресурсу для Podʼів.
currentMetrics.containerResource.current.averageValue (Quantity)
averageValue — це поточне середнє значення метрики серед усіх відповідних Podʼів (як кількість)
currentMetrics.containerResource.current.value (Quantity)
value — це поточне значення метрики (як кількість).
currentMetrics.containerResource.name (string), обовʼязково
name — це імʼя ресурсу, про який йдеться.
currentMetrics.external (ExternalMetricStatus)
external стосується глобальної метрики, яка не повʼязана з жодним обʼєктом Kubernetes. Вона дозволяє автомасштабування на основі інформації, що надходить від компонентів, що працюють за межами кластера (наприклад, довжина черги у хмарному сервісі обміну повідомленнями або QPS від балансувальника навантаження, що працює за межами кластера).
ExternalMetricStatus вказує поточне значення глобальної метрики, не повʼязаної з жодним обʼєктом Kubernetes.
currentMetrics.external.current (MetricValueStatus), обовʼязково
current — містить поточне значення для даної метрики
MetricValueStatus містить поточне значення метрики
currentMetrics.external.current.averageUtilization (int32)
currentAverageUtilization — це поточне значення середнього використання метрики ресурсу серед усіх відповідних Podʼів, представлене у відсотках від запитаного значення ресурсу для Podʼів.
currentMetrics.external.current.averageValue (Quantity)
averageValue — це поточне середнє значення метрики серед усіх відповідних Podʼів (як кількість)
currentMetrics.external.current.value (Quantity)
value — це поточне значення метрики (як кількість).
currentMetrics.external.metric (MetricIdentifier), обовʼязково
metric — ідентифікує цільову метрику за імʼям і селектором
MetricIdentifier визначає імʼя та, за потреби, селектор для метрики
currentMetrics.external.metric.name (string), обовʼязково
name — це імʼя даної метрики
currentMetrics.external.metric.selector (LabelSelector)
selector — це строково-кодована форма стандартного селектора міток Kubernetes для даної метрики. Коли встановлено, він передається як додатковий параметр до сервера метрик для більш специфічного вибору метрик. Коли не встановлено, буде використано лише metricName для збору метрик.
currentMetrics.object (ObjectMetricStatus)
object стосується метрики, що описує окремий обʼєкт Kubernetes (наприклад, кількість запитів на секунду для обʼєкта Ingress).
ObjectMetricStatus вказує поточне значення метрики, що описує обʼєкт Kubernetes (наприклад, кількість запитів на секунду для обʼєкта Ingress).
currentMetrics.object.current (MetricValueStatus), обовʼязково
current — містить поточне значення для даної метрики
MetricValueStatus містить поточне значення метрики
currentMetrics.object.current.averageUtilization (int32)
currentAverageUtilization — це поточне значення середнього використання метрики ресурсу серед усіх відповідних Podʼів, представлене у відсотках від запитаного значення ресурсу для Podʼів.
currentMetrics.object.current.averageValue (Quantity)
averageValue — це поточне середнє значення метрики серед усіх відповідних Podʼів (як кількість)
currentMetrics.object.current.value (Quantity)
value — це поточне значення метрики (як кількість).
currentMetrics.object.describedObject (CrossVersionObjectReference), обовʼязково
DescribedObject вказує описи обʼєкта, такі як kind, name, apiVersion
CrossVersionObjectReference містить достатньо інформації, щоб ідентифікувати вказаний ресурс.
currentMetrics.object.describedObject.kind (string), обовʼязково
kind — це тип посилання; Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
currentMetrics.object.describedObject.name (string), обовʼязково
name — це імʼя посилання; Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
currentMetrics.object.describedObject.apiVersion (string)
apiVersion — це версія API посилання
currentMetrics.object.metric (MetricIdentifier), обовʼязково
metric — ідентифікує цільову метрику за імʼям і селектором
MetricIdentifier визначає імʼя та, за потреби, селектор для метрики
currentMetrics.object.metric.name (string), обовʼязково
name — це імʼя даної метрики
currentMetrics.object.metric.selector (LabelSelector)
selector — це строково-кодована форма стандартного селектора міток Kubernetes для даної метрики. Коли встановлено, він передається як додатковий параметр до сервера метрик для більш специфічного вибору метрик. Коли не встановлено, буде використано лише metricName для збору метрик.
currentMetrics.pods (PodsMetricStatus)
pods — стосується метрики, що описує кожен Pod у поточному цільовому масштабуванні (наприклад, кількість оброблених транзакцій на секунду). Значення буде усереднено перед порівнянням з цільовим значенням.
PodsMetricStatus вказує поточне значення метрики, що описує кожен Pod у поточному цільовому масштабуванні (наприклад, кількість оброблених транзакцій на секунду).
currentMetrics.pods.current (MetricValueStatus), обовʼязково
current — містить поточне значення для даної метрики
MetricValueStatus містить поточне значення метрики
currentMetrics.pods.current.averageUtilization (int32)
currentAverageUtilization — це поточне значення середнього використання метрики ресурсу серед усіх відповідних Podʼів, представлене у відсотках від запитаного значення ресурсу для Podʼів.
currentMetrics.pods.current.averageValue (Quantity)
averageValue — це поточне значення середньої метрики серед усіх відповідних Podʼів (як кількість)
currentMetrics.pods.current.value (Quantity)
value — це поточне значення метрики (як кількість).
currentMetrics.pods.metric (MetricIdentifier), обовʼязково
metric — ідентифікує цільову метрику за імʼям і селектором
MetricIdentifier визначає імʼя та, за потреби, селектор для метрики
currentMetrics.pods.metric.name (string), обовʼязково
name — це імʼя даної метрики
currentMetrics.pods.metric.selector (LabelSelector)
selector — це строково-кодована форма стандартного селектора міток Kubernetes для даної метрики. Коли встановлено, він передається як додатковий параметр до сервера метрик для більш специфічного вибору метрик. Коли не встановлено, буде використано лише metricName для збору метрик.
currentMetrics.resource (ResourceMetricStatus)
resource — стосується метрики ресурсу (такої як зазначено в запитах та обмеженнях), відомої Kubernetes, що описує кожен Pod у поточному цільовому масштабуванні (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні опції масштабування, окрім тих, що доступні для звичайних метрик на кожен Pod, використовуючи джерело "pods".
ResourceMetricStatus вказує поточне значення метрики ресурсу, відомої Kubernetes, як зазначено в запитах та обмеженнях, що описує кожен Pod у поточному цільовому масштабуванні (наприклад, CPU або памʼять). Такі метрики вбудовані в Kubernetes і мають спеціальні опції масштабування, окрім тих, що доступні для звичайних метрик на кожен Pod, використовуючи джерело "pods".
currentMetrics.resource.current (MetricValueStatus), обовʼязково
current містить поточне значення для даної метрики
MetricValueStatus містить поточне значення метрики
currentMetrics.resource.current.averageUtilization (int32)
currentAverageUtilization — це поточне значення середнього використання метрики ресурсу серед усіх відповідних Podʼів, представлене у відсотках від запитаного значення ресурсу для Podʼів.
currentMetrics.resource.current.averageValue (Quantity)
averageValue — це поточне середнє значення метрики серед усіх відповідних Podʼів (як кількість)
currentMetrics.resource.current.value (Quantity)
value — це поточне значення метрики (як кількість).
currentMetrics.resource.name (string), обовʼязково
name — це імʼя ресурсу, про який йдеться.
currentReplicas (int32)
currentReplicas — це поточна кількість реплік Podʼів, якими керує цей автомасштабувальник, як це було останній раз спостережено автомасштабувальником.
lastScaleTime (Time)
lastScaleTime — це останній час, коли HorizontalPodAutoscaler масштабував кількість Podʼів, використовується автомасштабувальником для контролю частоти зміни кількості Podʼів.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
observedGeneration (int64)
observedGeneration — це останнє покоління, яке спостерігав цей автомасштабувальник.
HorizontalPodAutoscalerList
HorizontalPodAutoscalerList — це список обʼєктів горизонтального автомасштабувальника Podʼів.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscalerList
metadata (ListMeta)
metadata — це стандартні метадані списку.
items ([]HorizontalPodAutoscaler), обовʼязково
items — це список обʼєктів горизонтального автомасштабувальника Podʼів.
Операції
get
отримати вказаний HorizontalPodAutoscaler
HTTP запит
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
401: Unauthorized
get
отримати статус вказаного HorizontalPodAutoscaler
HTTP запит
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу HorizontalPodAutoscaler
HTTP запит
GET /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
Параметри
namespace (в шляху): string, обовʼязково
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (HorizontalPodAutoscalerList): OK
401: Unauthorized
list
перелік або перегляд за обʼєктів типу HorizontalPodAutoscaler
HTTP запит
GET /apis/autoscaling/v2/horizontalpodautoscalers
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (HorizontalPodAutoscalerList): OK
401: Unauthorized
create
створення HorizontalPodAutoscaler
HTTP запит
POST /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
Параметри
namespace (в шляху): string, обовʼязково
body: HorizontalPodAutoscaler, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
201 (HorizontalPodAutoscaler): Created
202 (HorizontalPodAutoscaler): Accepted
401: Unauthorized
update
заміна вказаний HorizontalPodAutoscaler
HTTP запит
PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
body: HorizontalPodAutoscaler, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
201 (HorizontalPodAutoscaler): Created
401: Unauthorized
update
заміна статусу вказаного HorizontalPodAutoscaler
HTTP запит
PUT /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
body: HorizontalPodAutoscaler, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
201 (HorizontalPodAutoscaler): Created
401: Unauthorized
patch
часткове оновлення вказаного HorizontalPodAutoscaler
HTTP запит
PATCH /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
body: patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
201 (HorizontalPodAutoscaler): Created
401: Unauthorized
patch
часткове оновлення статусу вказаного HorizontalPodAutoscaler
HTTP запит
PATCH /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
body: patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
201 (HorizontalPodAutoscaler): Created
401: Unauthorized
delete
видалення HorizontalPodAutoscaler
HTTP запит
DELETE /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя HorizontalPodAutoscaler
namespace (в шляху): string, обовʼязково
body: deleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (HorizontalPodAutoscaler): OK
202 (HorizontalPodAutoscaler): Accepted
401: Unauthorized
deletecollection
видалення колекції HorizontalPodAutoscaler
HTTP запит
DELETE /apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers
Параметри
namespace (в шляху): string, обовʼязковий
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): булеве значення
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized