Как проверить максимальную емкость модуля узла Kubernetes

Я занят настройкой нового кластера k8s.

Я использую rke с параметром --max-pods: 200

kubelet: # https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-args
    extra_args: 
    - max-pods: 200  # https://forums.rancher.com/t/solved-setting-max-pods/11866/5

Как мне проверить, был ли создан работающий узел с правильными настройками.

0
задан 24 February 2020 в 08:54
4 ответа

Внутри документации Kubernetes относительно Построение больших кластеров мы можем прочитать, что версия 1.17 поддерживает:

Kubernetes поддерживает кластеры с количеством узлов до 5000. Точнее говоря, мы поддерживаем конфигурации, которые удовлетворяют всем из следующих критериев:

  • Не более 5000 узлов
  • Не более 150000 всего модулей
  • Не более 300000 всего контейнеров
  • Нет более 100 модулей на узел

Внутри GKE жесткое ограничение на количество модулей на узел составляет 110 из-за доступных адресов.

При максимальном значении по умолчанию 110 модулей на узел, Kubernetes назначает / 24 CIDR блок (256 адресов) на каждый из узлов. Имея примерно в два раза больше доступных IP-адресов, чем количество подов, которые могут быть созданы на узле, Kubernetes может уменьшить повторное использование IP-адресов, когда поды добавляются и удаляются с узла.

Это описано в ] Оптимизация выделения IP-адресов и Квоты и ограничения .

Как или установка максимального количества модулей для Rancher , вот решение [Решено] Установка максимального количества модулей .

Также обсуждается Увеличить максимальное количество модулей на узел

... использование одного числа (максимальное количество модулей) может ввести пользователей в заблуждение, учитывая огромные различия в спецификациях компьютеров, рабочей нагрузке и среде. Если у нас есть тест узлов, мы можем позволить пользователям профилировать свои узлы и решать, какая конфигурация для них лучше всего. Тест может существовать как тест узла e2e или в репозитории contrib.

Я надеюсь, что это дает немного больше информации о пределах.

0
ответ дан 26 February 2020 в 00:36

I обнаружил, что это лучший способ

kubectl get nodes -A
NAME            STATUS   ROLES                      AGE   VERSION
192.168.1.1   Ready    controlplane,etcd,worker   9d    v1.17.2
192.168.1.2   Ready    controlplane,etcd,worker   9d    v1.17.2

kubectl describe nodes 192.168.1.1 | grep -i pods

Capacity:
cpu:                16
ephemeral-storage:  55844040Ki
hugepages-2Mi:      0
memory:             98985412Ki
pods:               110
Allocatable:
cpu:                16
ephemeral-storage:  51465867179
hugepages-2Mi:      0
memory:             98883012Ki
pods:               110
1
ответ дан 26 February 2020 в 00:36
  1. Максимальное количество модулей kubelet по умолчанию на узел — 110.
  2. Рекомендуемая практика Kuberentes — 100 модулей на узел.
  3. Openshift устанавливает значение по умолчанию на 250 модулей на узел и протестировал 500 модулей на узел.
  4. EKS указал, что он ограничен количеством IP-адресов, которые может использовать модуль. Azure CNI имеет некоторые ограничения. По умолчанию узел pod cidr имеет значение /24, что означает меньше 256.

См. таблицу здесь. https://www.stackrox.com/post/2020/02/eks-vs-gke-vs-aks/ и https://learnk8s.io/kubernetes-node-size#:~:text=Most%20managed%20Kubernetes%20services%20even,%20%20type%20of%20node.

введите описание изображения здесь

Большинство управляемых сервисов Kubernetes даже налагают жесткие ограничения на количество модулей на узел:

В Amazon Elastic Kubernetes Service (EKS) максимальное количество модулей на узел зависит от типа узла. и колеблется от 4 до 737. В Google Kubernetes Engine (GKE) ограничение составляет 100 модулей на узел, независимо от типа узла. В службе Azure Kubernetes (AKS) ограничение по умолчанию составляет 30 модулей pod на узел, но его можно увеличить до 250.

1
ответ дан 29 July 2020 в 07:29

Следующая команда вернет максимальное значение pod для < node_name>:

kubectl get node <node_name> -ojsonpath='{.status.capacity.pods}{"\n"}'

edit: исправлена ​​опечатка в моей команде, спасибо @Shtlzut.

6
ответ дан 14 August 2020 в 04:37

Теги

Похожие вопросы