Виталий Лещенко

Kubernetes для самых маленьких. Часть 30: Как защитить поды?

Границы пода задаются полями securityContext: процесс работает не от root (runAsNonRoot), без capabilities (drop: [ALL]), без повышения прав (allowPrivilegeEscalation: false), с фильтром seccompProfile: RuntimeDefault, а privileged, hostNetwork и hostPath приложению не даются. Чтобы не помнить поля наизусть, неймспейс помечают метками Pod Security Admission: enforce=restricted не пустит нарушающий под, warn и audit только предупредят. Свои правила вроде запрета тега latest пишут на CEL в ValidatingAdmissionPolicy.

Читать дальше
Виталий Лещенко

Kubernetes для самых маленьких. Часть 29: Как устроены аутентификация и RBAC?

Объекта «пользователь» в Kubernetes нет: kube-apiserver извлекает имя и группы из предъявленного удостоверения — клиентского сертификата X.509 (CN и O), JWT-токена ServiceAccount или ID-токена OIDC от внешнего провайдера. Затем авторизаторы Node,RBAC решают, разрешён ли глагол на ресурс: права складываются только из разрешений в Role и ClusterRole, выданных через RoleBinding и ClusterRoleBinding, запретов нет. Людям — OIDC, сертификат нельзя отозвать до истечения срока, а create pods и list secrets фактически дают все секреты неймспейса.

Читать дальше
Виталий Лещенко

Hyper-V. Часть 10: Обслуживаем кластер Hyper-V

В прошлой части мы собрали кластер и добавили в него машины. Теперь его нужно обслуживать: каждый месяц ставить обновления на узлы, следить, чтобы нагрузка распределялась равномерно, а копии одной службы не оказывались на одном узле, раз в несколько лет переводить кластер на новую Windows Server и разбираться, почему машины внезапно переехали. Этому и посвящена последняя часть серии.


Пауза узла

Читать дальше
Виталий Лещенко

Hyper-V. Часть 9: Собираем отказоустойчивый кластер

В прошлой части мы переносили машины между одиночными хостами — но каждый перенос запускал администратор, а если хост просто сгорел, машины на нём остановились до ручного вмешательства. Отказоустойчивый кластер решает эту задачу: несколько хостов следят друг за другом, и машины упавшего узла сами запускаются на оставшихся. Разберём, что кластер даёт и чего не даёт, какое хранилище ему нужно, как устроены общие тома и кворум, как собрать кластер из PowerShell и как добавить в него машины.


Что даёт кластер

Читать дальше
Виталий Лещенко

Hyper-V. Часть 8: Переносим виртуальные машины между хостами

До сих пор машина жила на одном хосте. Но хост нужно обновлять, ремонтировать, а однажды и заменить, и машины с него приходится переносить. Разберём все способы: экспорт и импорт, живую миграцию работающей машины между хостами без кластера, перенос файлов машины на другой том, что мешает переезду между разными процессорами, когда поднимать версию конфигурации после переезда на новую Windows Server и как держать на другом хосте копию машины на случай аварии.


Экспорт и импорт

Читать дальше
Виталий Лещенко

Hyper-V. Часть 7: Управляем Hyper-V с рабочей станции

Во всех предыдущих частях команды выполнялись на самом хосте. В работе так не делают: заходить на хост по RDP ради каждой машины не нужно, а на хосте с Server Core и негде открыть окно консоли. Разберём, как управлять Hyper-V с рабочей станции администратора: какие средства на неё поставить и какие права выдать, как подключиться к хосту в домене и вне домена, как открыть консоль машины и как выполнять команды внутри гостя без его сети.


Средства управления

Читать дальше
Виталий Лещенко

Hyper-V. Часть 6: Как работают контрольные точки?

Контрольная точка замораживает текущий диск машины и начинает писать изменения в разностный файл .avhdx; откат возвращает машину к замороженному состоянию, а удаление точки сливает .avhdx обратно с родительским диском. Рабочая точка (по умолчанию) снимает согласованное состояние дисков без памяти, стандартная сохраняет ещё и память. Точка лежит на том же томе, что и машина, и без родительского диска бесполезна, поэтому резервную копию она не заменяет.

Читать дальше
Виталий Лещенко

Hyper-V. Часть 5: Распределяем процессор и память

В первой части машина получила два виртуальных процессора и 4 ГБ памяти, и этого хватило, чтобы установить систему. Здесь разберём, как Hyper-V делит между машинами процессорное время и память: что значат резерв, лимит и вес процессора, как работает динамическая память и что делать, когда памяти на хосте не хватает, что из этого меняется на работающей машине и как дать машине собственный Hyper-V.


Виртуальные процессоры

Читать дальше
Виталий Лещенко

Hyper-V. Часть 4: Настраиваем сеть виртуальных машин

В первой части мы создали один external-коммутатор и подключили к нему машину. Здесь разберём сеть Hyper-V целиком: какие бывают виртуальные коммутаторы и что происходит с картой хоста, как раздавать машинам VLAN и частные VLAN, как объединить несколько карт и как обслуживать сетевые адаптеры машин — от добавления на ходу до защиты от чужого DHCP-сервера.


Виртуальные коммутаторы

Читать дальше
Виталий Лещенко

Hyper-V. Часть 3: Настраиваем виртуальные диски

В первой части диск машины появился сам: New-VM -NewVHDPath … -NewVHDSizeBytes 80GB создал динамический VHDX и подключил его к машине. Здесь разберём, какими бывают виртуальные диски, как менять их размер, возвращать место на томе и конвертировать между форматами, как подключать и отключать диски у работающей машины и когда вместо файла дают физический диск.


VHD и VHDX

Читать дальше