Я занят настройкой нового кластера 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
Как мне проверить, был ли создан работающий узел с правильными настройками.
Внутри документации Kubernetes относительно Построение больших кластеров мы можем прочитать, что версия 1.17 поддерживает:
Kubernetes поддерживает кластеры с количеством узлов до 5000. Точнее говоря, мы поддерживаем конфигурации, которые удовлетворяют всем из следующих критериев:
- Не более 5000 узлов
- Не более 150000 всего модулей
- Не более 300000 всего контейнеров
- Нет более 100 модулей на узел
Внутри GKE жесткое ограничение на количество модулей на узел составляет 110
из-за доступных адресов.
При максимальном значении по умолчанию 110 модулей на узел, Kubernetes назначает / 24 CIDR блок (256 адресов) на каждый из узлов. Имея примерно в два раза больше доступных IP-адресов, чем количество подов, которые могут быть созданы на узле, Kubernetes может уменьшить повторное использование IP-адресов, когда поды добавляются и удаляются с узла.
Это описано в ] Оптимизация выделения IP-адресов и Квоты и ограничения .
Как или установка максимального количества модулей для Rancher
, вот решение [Решено] Установка максимального количества модулей .
Также обсуждается Увеличить максимальное количество модулей на узел
... использование одного числа (максимальное количество модулей) может ввести пользователей в заблуждение, учитывая огромные различия в спецификациях компьютеров, рабочей нагрузке и среде. Если у нас есть тест узлов, мы можем позволить пользователям профилировать свои узлы и решать, какая конфигурация для них лучше всего. Тест может существовать как тест узла e2e или в репозитории contrib.
Я надеюсь, что это дает немного больше информации о пределах.
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
См. таблицу здесь. 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.