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

Kubernetes — учётные записи служб

Необходимы для того чтобы каждая служба имела свой доступ к метаданным, некоторым не нужен доступ, некоторым только на чтение, некоторым запись определённых метаданных Создание учётной записи kubectl create serviceaccount foo kubectl describe sa foo Name: foo Namespace: default Labels: <none> Annotations: <none> Image pull secrets: <none> Mountable secrets: foo-token-nxxfs Tokens: foo-token-nxxfs Events: <none> kubectl describe […]

Read More &#8594

Kubernetes API — защита

Аутентификация Из сертификата клиента Из токена аутентификации, переданного в заголовке http В результату обычной HTTP-аутентификации Плагины аутентификации активируются при запуске API Пользователи и группы Плагин аутентификации возвращает имя пользователя и группу. Kubernetes использует информацию для верификации дальнейших действий Пользователи могу быть:  Реальные люди Модули Встроенные группы:  system:unauthenticated  — где ни один плагин аутентификации не смог […]

Read More &#8594

Kubernetes отказоустойчивость кластера

Etcd Создана как распределённая система, достаточно указать при создании ноды что войти в кластер, число в кластере должно быть не чётным, чтобы работал принцип кворума. Число мастер узлов более 7 начинает влиять на производительность всего кластера. API Не хранит никакого состояния, все данные хранит в etcd, по этому экземпляров API может быть сколько угодно. Менеджер […]

Read More &#8594

Kubernetes службы

По сути службы представляют собой правила iptables основанные на паре IP-port По сути сам IP адрес без порта не имеет смысла, по этому службы не пингуются, они не могу отвечать на ping. Kube-proxy — зпущен на каждой ноде кластера. После того как в API поступает информация о создании службы. Всем kube-proxy посылается информация с виртуальным […]

Read More &#8594

Kubernetes как устроена сеть

Сеть реализована при помощи плагинов CNI (Container Network Interface):  Calico Flannel Romana Чтобы включить CNI, надо запускать kubelet с параметром —network-plugin=cni Таким образом обеспечивается свзять между контейнерами внутри кластера, не зависимо от сложности физической сети. Каждый контейнер получает уникальный IP адрес, чтобы не было конфликтов, контейнеры в одном поде принадлежать одной подсети, для обеспечения коммутации […]

Read More &#8594

Kubernetes внутреннее устройство

Чтобы посмотреть статусы компонентов kubectl get componentstatuses Вывести все запущенные системные контейнеры на всех узлах кластера kubectl get po -o custom-columns=POD:metadata.name,NODE:spec.nodeName —sort-by spec.nodeName -n kube-system ETCD Это быстрое, распределённое и согласованное хранилище в формате ключ — значение, для хранения манифестов — только API Kubernetes взаимодействует с etcd Особенность параллельной позитивной блокировки что каждая порция данных […]

Read More &#8594