Kubernetes запрет узлов для подов

У каждой ноды есть ограничения, например по умолчанию главному узлу кластера не могут быть назначены не системные поды, он имеет ограничение NoSchedule У каждого пода есть допущения, например под kube-proxy имеет допущение NoSchedule, и может быть назначен master ноде в кластере С каждым ограничением связано его проявление: Noschedule — модули не будут назначаться узлу, если […]

Read More &#8594

Kubernetes масштабирование нод в кластере

kubectl cordon узел — пометит узел как не назначенный, но ничего не будет делать с подами на этом узле kubectl drain узел — помечает узел как не назначенный, а потом вытесняет поды kubectl uncordon — разблокирует узел и поды будут снова назначаться узлам В основном применяется для облачной инфраструктуры. Ноды будут добавляться по мере необходимости […]

Read More &#8594

Kubernetes автомасштабирование на основе custom metric

При выборе объекта HorizontalPodAutoscaling(HPA), можно выбрать три типа: Resource — запускает масштабирование на основе ресурсных запросов пода Pods — использует ссылки на любую другую метрику, относящуюся к поду. Например можно использовать QPS, сколько запросов получают все модули в поде. — spec: metrics: — type: Pods resource: metricName: qps targetAverageValue: 100 — Object — используется когда […]

Read More &#8594

Kubernetes автоматическое масштабирование CPU

Горизонтальное автомасштабирование модуля Автомасштабирование обеспечивается созданием ресурса HorizontalPodAutoscaler (HPA) — он применим для таких ресурсов как Deployment, ReplecaSet, ReplicationController, StatefulSet Он наблюдает за подами и метриками и меняет значение replicas Создадим Deployment: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kubia spec: replicas: 3 template: metadata: name: kubia labels: app: kubia spec: containers: — image: luksa/kubia:v1 name: […]

Read More &#8594

Kubernetes мониторинг потребляемых ресурсов(Heapster)

Heapster собирает данные со всех cAdvisor со всех узлов Для того чтобы его активировать в minikube, или чтобы активировать в других https://github.com/kubernetes/heapster minikube addons enable heapster выводим потребление нодами kubectl top node Выводим информацию о потребление ресурсов подами kubectl top pod —all-namespaces для того чтобы просмотреть информацию о контейнерах в поде, есть ключ —containers Примечание: […]

Read More &#8594

Kubernetes распределение вычислительных ресурсов

Лимиты задаются для каждого контейнера, сумма этих лимитов задаёт лимит пода 200m — это 200 милиядер, т.е. 1/5 времени одного ядра apiVersion: v1 kind: Pod metadata: name: requests-pod spec: containers: — image: busybox command: [«dd», «if=/dev/zero», «of=/dev/null»] name: main resources: requests: cpu: 200m memory: 10Mi MostRequestedPriority — при настройке этой опции на планировщике, поды будут […]

Read More &#8594

Kubernetes изоляция сети модуля

Регулировать взаимодействие модулей по сети можно через создание политики сети NetworkPolicy. Но только если плагин сетевого взаимодействия поддерживает. NetworkPolicy. — применяется к модулям по селектору меток, и определяют какие источники могут получать доступ к модулям, которые попали под выбор меток. Или куда этим модулям можно, а куда нельзя подключаться. Запретим модулям взаимодействовать между собой apiVersion: […]

Read More &#8594

Kubernetes политика безопасности модуля

Ресурс политики безопасности модуля PodSecurityPolicy определяет следующее: может ли модуль использовать пространства имен хоста IPC, PID или Network; к каким портам хоста может быть привязан модуль; под какими идентификаторами пользователя может работать контейнер; можно ли создать модуль с привилегированными контейнерами; какие функциональные возможности ядра разрешены, какие добавляются по умолчанию и какие всегда игнорируются; какие метки […]

Read More &#8594

Kubernetes защита узлов кластера и сети

Поды могут использовать сетевой интерфейс хоста, тогда отличие в испльзовании службы, будет такое Чтобы использовать сеть хоста, указываем при создании пода spec: hostNetwork: true Чтобы не привязывать всё сетевую систему узла в Pod, достаточно пробросить один порт apiVersion: v1 kind: Pod metadata: name: kubia-hostport spec: containers: — image: luksa/kubia name: kubia ports: — containerPort: 8080 […]

Read More &#8594