Третий сезон ❤️☠️🤖, пожалуй, всё ещё уступает первому, но вышел существенно лучше второго. Вообще, я посмотрел в сети, и, оказывается, к первому сезону привлекли 11 разных стран для разработки, а ко второму и третьему только по 4 страны, а большинство эпизодов делали США. То есть проект начинался, как международный, но потом изначальные авторы почти целиком забрали его себе. Ударило ли по качеству именно это — сложно сказать — но признак не самый хороший.
Во втором сезоне мне запомнилась буквально пара эпизодов. Его проблема была в том, что он короткий, недосказанный, и не с такими интересными идеями. Третий сезон двинулся в сторону улучшения, но всё равно на его фоне некоторые серии из первого сезона, которые казались чисто проходными, внезапно обрели глубину и интересность.
Далее пройдусь по эпизодам без спойлеров.
«Three Robots: Exit Strategies» (три робота)
Продолжение короткой зарисовки из первой части, где человечество погибло в результате войны с роботами, и роботы ходят по руинам и рассуждают с шутками о всяких жизненных вещах. Есть очень классные язвительные подколки в сторону людей и их недостатков, я бы с удовольствием посмотрел ещё несколько эпизодов в этой вселенной.
«Bad Travelling» (про гигантского краба)
Очень крутая серия, в моём личном рейтинге лучшая в сезоне. Это то, за что я в целом ценю весь проект: тут есть и экшен, и нагнетание атмосферы, и острые социальные высказывания, и крутой неоднозначный герой, чью мотивацию ты понимаешь полностью только к концу.
«The Very Pulse of the Machine» (про космонавток на Ио)
Ну такое себе. Подобную тему можно было, на мой взгляд, раскрыть гораздо круче. А здесь что-то полу-наркоманское. Посмотрел без особого удовольствия, но и перемотать не хотелось.
«Night of the Mini Dead» (зомби в миниатюре)
По сюжету совершенно ничего интересного, вся серия держится на визуальном стиле: миниатюрная кукольная анимация (представьте себе Гранд Макет, в котором сняли покадровый фильм, передвигая фигурки). Интересно, потому что необычно, но я бы такое ожидал скорее в формате ролика на ютубе, а не в высокобюджетном проекте от крупной студии.
«Kill Team Kill» (про медведя)
Классический экшен-эпизод, где просто драка без какой-либо сюжетной мысли. Пару таких серий мы видели в первом сезоне: про ограбление колонны («Blindspot») и про мехов против пришельцев («Suits»). Но в первом сезоне был более интересный сеттинг, а здесь, на мой взгляд, нет. С мехами куда круче и эффектнее смотрится.
«Swarm» (рой в космосе)
Пожалуй, вторая по интересности серия в моём личном рейтинге. Очень классный сюжет, очень классная задумка, хочется посмотреть что-то более длинное с этой тематикой. Концовку объяснили не слишком хорошо, и приходится строить собственные теории, но в остальном шикарно.
«Mason's Rats» (война с крысами)
Тоже офигенная идея, классный экшен, жёсткий чёрный юмор, и тоже как будто не хватило времени, я бы сделал минут на 10-15 дольше, чуть помедленнее подавая события. Но однозначно один из лучших эпизодов сезона.
«In Vaulted Halls Entombed» (солдаты в пещере)
Классический эпизод-ужастик, мы это видели в первой части в серии «Sucker of Souls» (про дракулу). Там, кстати, тоже пещера, и вообще довольно похоже всё. В общем, вся серия как визуализация какой-нибудь одной статьи про SCP — сюжета считайте нет, но криповенько и со вкусом.
«Jibaro» (танцующая девушка в озере)
Это, кажется, то ли экранизация японского театра Кабуки, то ли что-то похожее. Вся серия вычурно театральная, причем даже не в нашем привычном европейском стиле. Она немая, держится на костюмах и движениях, сюжет ясен только в общих чертах. Мне вот совершенно не зашло, на очень большого любителя. Но, я думаю, есть люди, которые от неё в восторге. Тем не менее, насколько место таким экспериментам в как бы фантастическом сериале — для меня вопрос спорный.
Ждём ещё пару лет.#fiction
• Если помните, то несколько месяцев назад я делился с вами очень крутым материалом, где подробно описан опыт автора по ручному развертыванию Kubernetes без использования автоматизированных инструментов. Так вот, есть еще одна статья, не менее интересная и полезная. На этот раз автор описывает настройки аудита в Kubernetes, его возможности и примеры конфигураций, которые помогут вам сформировать эффективную политику аудита для вашего кластера.
➡Что такое аудит;
➡Политика аудита;
➡Параметры фильтрации;
➡Уровни логирования;
➡Стадии omitStages;
➡Подавление системного шума;
➡Фильтрация по пользователям;
➡Защита чувствительных данных;
➡Детализация для важных API;
➡Настройка API-сервера;
➡Заключение.
#Kubernetes
• Популярность Kubernetes растет, порог входа снижается, но вопросам безопасности порой оказывают недостаточное внимание.
•KubeHound - это как Bloodhound, но только для Kubernetes. Тулза предназначена для построения графов и вычисления путей атак для компрометации кластера. Принцип работы следующий:
➡KubeHound анализирует Kubernetes-кластер;
➡Собирает данные о ролях, привязках, сервисных аккаунтах, настройках Pod и сетевых политиках;
➡Формирует граф атак, определяя цепочки эксплуатации, показывая найденные уязвимости и их комбинации.
➡Выводит отчет, выделяя риски и рекомендациями по исправлению.
• Куча дополнительной информации по использованию KubeHound можно найти по ссылкам ниже:
➡️https://github.com/DataDog/KubeHound
➡️https://kubehound.io
• Дополнительно: подборка бесплатных инструментов с открытым исходным кодом для обеспечения безопасности Kubernetes.
#Kubernetes
👩💻 Kubernetes The Hard Way.
• Автор этого гайда работал над ним около двух лет, осуществил тысячи перезапусков и пересобрал сотни кластеров — всё это вылилось в одну, но очень насыщенную статью. Kubernetes вручную, от и до, без kubeadm и прочих поблажек.
- Удобные alias’ы, функции и обёртки;
- Десятки скриптов, которые реально работают в бою;
- Важные моменты, о которых молчат в туториалах.
➡Введение;
➡Почему «The Hard Way»;
➡Архитектура развертывания;
➡Создание инфраструктуры;
➡Базовая настройка узлов;
➡Загрузка модулей ядра;
➡Настройка параметров sysctl;
➡Установка компонентов;
➡Настройка компонентов;
➡Проверка готовности компонентов;
➡Работа с сертификатами;
➡Создание корневых сертификатов;
➡Создание сертификатов приложений;
➡Создание ключа подписи ServiceAccount;
➡Создание всех сертификатов;
➡Создание конфигураций kubeconfig;
➡Создание всех kubeconfig;
➡Проверка блока сертификатов;
➡Создание static pod-ов управляющего контура;
➡Создание всех static pod-ов управляющего контура;
➡Создание static pod-ов ETCD кластера;
➡Запуск службы Kubelet;
➡Проверка состояния кластера;
➡Настройка ролевой модели;
➡Загрузка конфигурации в кластер;
➡Загрузка корневых сертификатов в кластер;
➡Маркировка и ограничение узлов.
#Kubernetes
• Недавно на хабре был обновлен очень объемный гайд по установке Kubernetes, который включает в себя очень много полезной информации для новичков. Стоит отметить, что Kubernetes — это большая и довольно сложная тема, но если вы изучите это пошаговое руководство, то у вас появился работающий стенд для экспериментов, что послужит отличным началом для изучения k8s: https://habr.com/ru/articles/725640
• Обратите внимание, что руководство содержит много дополнительного материала:
➡Основы Kubernetes;
➡Руководство начинающим для понимания основных концепций Kubernetes;
➡Различия между Docker, containerd, CRI-O и runc;
➡Визуальное руководство по диагностике неисправностей в Kubernetes;
➡Записки о containerd;
➡Зачем нужен контейнер pause в Kubernetes;
➡Как я клонировал Томми Версетти, или запускаем GUI/GPU приложения в Kubernetes;
➡Отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived.
• Ну и вот еще очень содержательный репозиторий, который содержит сотни инструментов для работы с Kubernetes и контейнерами: Awesome Open Source K8s And Container Tools.
#Kubernetes
👩💻 Руководство по современным сетевым политикам Kubernetes.
• Сетевые политики — основополагающий аспект защиты кластеров Kubernetes. Политики L4 обеспечивают базовый контроль над трафиком на основе IP-адресов и портов, в то время как политики L7 позволяют гранулярно контролировать трафик на уровне приложений с помощью надёжной криптографической идентификации. Комбинируя оба типа политик и используя service mesh, можно реализовать модель «нулевого доверия», отвечающую современным вызовам в области безопасности.
• Это руководство для тех, кто хочет узнать больше об управлении сетевым трафиком Kubernetes на основе политик. Вы узнаете о разных типах политик и о том, почему они важны, о плюсах и минусах каждой из них и о том, как их определять и когда следует комбинировать.
➡Первоисточник || Источник.
#Kubernetes
👩💻 Техническая история Kubernetes: секреты создателя.
• Эта история от первого ведущего архитектора проекта, Брайана Гранта, который постил в Twitter серию тредов о технической истории проекта. Он рассказал о появлении разных фичей в K8s и логике, которая стояла за принятием отдельных решений.
• В честь юбилея оркестратора Брайан собрал все твиты в одну статью. Это её перевод, из которого вы узнаете, как появились контроллеры рабочих нагрузок, декларативная модель ресурсов, descheduler и многое другое:
➡️https://habr.com/ru/post/851176/
#Kubernetes
👩💻 Инструменты для обеспечения безопасности Kubernetes.
• ПО для обеспечения безопасности Kubernetes… их так много, и у каждого свои цели, область применения и лицензии... Однако, хочу поведать Вам о некоторых интересных решениях с открытым исходным кодом, которые полностью бесплатны:
• Trivy — простой, но мощный сканер уязвимостей для контейнеров, легко интегрируемый в CI/CD-пайплайн. Его примечательная особенность — простота установки и работы: приложение состоит из единственного бинарника и не требует установки базы данных или дополнительных библиотек. Обратная сторона простоты Trivy состоит в том, что придется разбираться, как парсить и пересылать результаты в формате JSON, чтобы ими могли воспользоваться другие инструменты безопасности Kubernetes.
• Portieris — это admission controller для Kubernetes; применяется для принудительных проверок на доверие к контенту. Portieris использует сервер Notary в качестве источника истины для подтверждения доверенных и подписанных артефактов (то есть одобренных контейнерных образов). При создании или изменении рабочей нагрузки в Kubernetes Portieris загружает информацию о подписи и политику доверия к контенту для запрошенных образов контейнеров и при необходимости на лету вносит изменения в JSON-объект API для запуска подписанных версий этих образов.
• Kube-bench — приложение на Go, проверяющее, безопасно ли развернут Kubernetes. Ищет небезопасные параметры конфигурации среди компонентов кластера (etcd, API, controller manager и т.д.), сомнительные права на доступ к файлам, незащищенные учетные записи или открытые порты, квоты ресурсов, настройки ограничения числа обращений к API для защиты от DoS-атак и т.п.
• Kube-hunter — Kube-hunter «охотится» на потенциальные уязвимости (вроде удаленного выполнения кода или раскрытия данных) в кластерах Kubernetes. Kube-hunter можно запускать как удаленный сканер — в этом случае он оценит кластер с точки зрения стороннего злоумышленника — или как pod внутри кластера. Отличительной особенностью Kube-hunter'а является режим «активной охоты», во время которого он не только сообщает о проблемах, но и пытается воспользоваться уязвимостями, обнаруженными в целевом кластере, которые потенциально могут нанести вред его работе. Так что пользуйтесь с осторожностью!
• Kubeaudit — это консольный инструмент, изначально разработанный в Shopify для аудита конфигурации Kubernetes на предмет наличия различных проблем в области безопасности. Например, он помогает выявить контейнеры, работающие без ограничений, с правами суперпользователя, злоупотребляющие привилегиями или использующие ServiceAccount по умолчанию. У Kubeaudit есть и другие интересные возможности. К примеру, он умеет анализировать локальные файлы YAML, выявляя недостатки в конфигурации, способные привести к проблемам с безопасностью, и автоматически исправлять их.
• Kyverno — движок политик безопасности Kubernetes с открытым исходным кодом, который помогает вам определять политики с помощью простых манифестов Kubernetes. Он может проверять, изменять и генерировать ресурсы Kubernetes. Таким образом, это может позволить организациям определять и применять политики так, чтобы разработчики и администраторы придерживались определенного стандарта.
#Kubernetes
👩💻 Play with Kubernetes — сервис для практического знакомства с K8s.
• PWK полностью повторяет идею (и даже интерфейс) своего «прародителя» Play with Docker (о котором я упоминал вчера): его основной сайт — это так называемая «игровая площадка» (playground), предоставляющая в веб-браузере доступ к виртуальной Linux-машине для возможности проведения экспериментов с кластерами Kubernetes. По сути это доступный бесплатно SaaS-аналог Minikube со своими удобствами (работа прямо в браузере) и ограничениями
• Предлагаемая в онлайн-сервисе лабораторная работа ориентирована на начинающих и посвящена основным концепциям и возможностям Kubernetes:
- Что вообще позволяет делать эта система: запуск контейнеров, балансировка нагрузки, выкатывание новых версий образов, автомасштабирование…;
- Архитектура Kubernetes;
- Ресурсы Kubernetes: узлы, поды, сервисы, пространства имён, секреты;
- Декларативный подход;
- Сетевая модель Kubernetes;
и т.п.
• Выглядит же прохождение лабораторной работы аналогично тому, как всё было в Play with Docker: слева у вас есть документ-инструкция (в том числе и команды для ввода), а справа — терминал (точнее, их два — для двух узлов Kubernetes), позволяющий «поиграть» в администратора K8s-кластера и видеть, что и как происходит на самом деле. Последнему, безусловно, способствует возможность выполнять произвольные уточняющие команды на любых этапах выполнения работы.
➡️https://labs.play-with-k8s.com
#Kubernetes
👩💻Kubenomicon.
• Поделюсь с Вами очень интересным проектом, который описывает методы атак на Kubernetes. Проект сырой, но постоянно дополняется необходимой информацией. Особенно будет полезно изучить начинающим специалистам: https://kubenomicon.com/
#Kubernetes
👩💻 Top 4 Kubernetes Service Types in one diagram.
• ClusterIP — открывает доступ к сервису по внутреннему IP-адресу в кластере. Этот тип делает сервис доступным только внутри кластера;
• NodePort — открывает сервис на том же порту каждого выбранного узла в кластере с помощью NAT. Делает сервис доступным вне кластера через <NodeIP>:<NodePort>. Является надмножеством ClusterIP;
• LoadBalancer — создает внешний балансировщик нагрузки в текущем облаке (если это поддерживается) и назначает фиксированный внешний IP-адрес для сервиса. Является надмножеством NodePort;
• ExternalName — открывает доступ к сервису по содержимому поля externalName (например, foo.bar.example.com), возвращая запись CNAME с его значением. При этом прокси не используется. Для этого типа требуется версия kube-dns 1.7+ или CoreDNS 0.0.8+.
➡ Подробнее тут: https://kubernetes.io/ru/
#Kubernetes