Kubernetes — Убивает Ли Metrics Server Модули, Которые Используют Слишком Много Памяти?

  • Автор темы Yaroslava Strona
  • Обновлено
  • 21, Oct 2024
  • #1

У меня есть модуль (в моем локальном кластере Kubernetes), который я настроил так, чтобы в конечном итоге попытаться превысить лимит памяти. Когда это произошло, мой модуль начал выдавать ошибку, сообщающую, что ему не хватает памяти.

Так и осталось. С исчерпанной памятью. Я могу убить его вручную, но в остальном он так и останется.

Однако, когда я установил Сервер метрик и повторите этот тест, эти модули довольно быстро уничтожаются из-за «нехватки памяти» (как только они приближаются к максимальному объему памяти, разрешенному модулем).

Поэтому, чтобы доказать, что причиной этого был сервер Metrics, я удалил его, и предыдущая функциональность вернулась (ошибки нехватки памяти).

Наконец я снова установил Metrics Server и.... ошибки нехватки памяти продолжались....

Так что теперь я в замешательстве. Что могло убить мои контейнеры, когда им не хватило памяти? (Я хочу, чтобы это произошло, но мне нужно это понять, чтобы я мог на это положиться.)

Действительно ли здесь виноват Metrics Server? И это настраивается?

#кубернетес

Yaroslava Strona


Рег
24 Oct, 2020

Тем
79

Постов
211

Баллов
626
  • 25, Oct 2024
  • #2

Я почувствовал себя немного странно, прочитав ваш вопрос, потому что это нарушит принципы проектирования Kubernetes.

Итак проверил Правила RBAC сервера метрик предоставили манифесты. Не существует назначения ролей, которое позволило бы серверу метрик удалять модули:

 
 kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:

name: system:auth-delegator
rules:

- verbs:

- create

apiGroups:

- authentication.k8s.io

resources:

- tokenreviews

- verbs:

- create

apiGroups:

- authorization.k8s.io

resources:

- subjectaccessreviews
 

Существует еще одна привязка ClusterRoleBinding для system:auth-delegator ClusterRole, but this doesn't allow this eighter:

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: system:metrics-server rules: - apiGroups: [""] resources: - nodes/metrics verbs: - get - apiGroups: [""] resources: - pods - nodes verbs: ## ONLY read verbs allowed here!!! - get - list - watch

Это предназначено только для интеграции службы API, предоставляемой Metrics-Server.

Таким образом, у Metrics-Server, похоже, нет прямого способа уничтожить модули.

 

Линард


Рег
30 Sep, 2015

Тем
86

Постов
209

Баллов
689
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно