У одного или нескольких контейнеров нет ограничений по ресурсам — предупреждение в VS Code Kubernetes tools

#kubernetes #visual-studio-code

#kubernetes #visual-studio-code

Вопрос:

После создания pod-определения.yml-файл.

 apiVersion: v1
kind: Pod
metadata:
    name: myapp-pod
    labels: 
      app: myapp
      type: server
spec:
    containers:
        - name: nginx-container
          image: nginx
  

Линтер выдает это предупреждение.

One or more containers do not have resource limits - this could starve other processes

Ответ №1:

Рекомендуется объявлять запросы ресурсов и ограничения как для памяти, так и для процессора для каждого контейнера. Это помогает запланировать контейнер на узел, у которого есть доступные ресурсы для вашего модуля, а также для того, чтобы ваш модуль не использовал ресурсы, которые нужны другим модулям, поэтому сообщение «это может привести к голоданию других процессов».

Например, чтобы добавить запросы ресурсов и ограничения к вашему примеру

 apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels: 
    app: myapp
    type: server
spec:
  containers:
  - name: nginx-container
    image: nginx
    resources:
      limits:
        memory: 512Mi
        cpu: "1"
      requests:
        memory: 256Mi
        cpu: "0.2"
  

Комментарии:

1. Установка ограничений ЦП не всеми считается хорошей практикой 🙂 home.robusta.dev/blog/stop-using-cpu-limits

Ответ №2:

Как вы знаете, это предупреждение исходит от компоновщика в расширении VS Code ms-kubernetes-tools.vscode-kubernetes-tools . Если вы хотите, чтобы компоновщик отключил предупреждение

 One or more containers do not have resource limits - this could starve other processes
  

затем отредактируйте VS Code setting.json , чтобы он выглядел следующим образом:

 {
    "vs-kubernetes": {
        "disable-linters": ["resource-limits"],
        ...
    },
    ...
}
  

Комментарии:

1. Что (вроде) противоречит цели компоновщика, не так ли?

2. Довольно часто вы читаете код других людей или код сторонних разработчиков. Это не зависит от вас, чтобы изменить его. И даже если это ваш собственный код, ваша команда может почему-то не захотеть этого. Дело в том, что существует множество сценариев, в которых вы просто хотите отключить эти волнистые подчеркивания в VS Code, чтобы у вас был приятный опыт чтения.

3. «вы просто хотите отключить это волнообразное подчеркивание в VS Code, чтобы у вас был приятный опыт чтения»… согласовано

4. @VincentYin полностью согласен. В моем случае эти извилистые строки довольно раздражают, поскольку я намеренно не устанавливаю ограничения ресурсов, поскольку мы уже определили ограничения по умолчанию для каждого модуля, используя LimitRange для кластера, что означает, что нам нужно определить ограничения ресурсов только для контейнеров, которые отклоняются от нормы.

5. И бывают случаи, когда вы хотите установить ограничение памяти, но не ограничение процессора для контейнера… вы не получаете кредит за установку ограничения памяти; он по-прежнему лает на процессор. Эти закорючки сводят с ума. Делает всю папку и ее родительские папки оранжевыми в моей теме VS Code.

Ответ №3:

Я работал со своими объектными файлами YAML, и ранее у меня был каждый отдельный объект в отдельном файле, и недавно я заметил, что для объектного файла «Deployment» у меня есть следующее предупреждение о переносе:

One or more containers do not have resource limits - this could starve other processes

Прежде чем исправить эту проблему, я решил немного реорганизовать свое определение объекта и определить более одного объекта в одном файле, если они связаны. Итак, теперь у меня такое же развертывание, как и раньше, вместе с утверждением объема и сервисом, все в одном файле.

Но затем я заметил, что предупреждение о переносе не отображается при развертывании, но оно появляется, если я удаляю требование службы и тома из файла, оставляя развертывание в покое.

Поэтому я полагаю, что код компоновки не учитывает возможность наличия множества объектов для каждого файла. определение.

Спасибо!