👨🏫👨🏫 Kubernetes на Proxmox
В статье автор создает кластер и две ноды: управление и рабочая. В качестве дополнительной задачи — сквозной доступ к PCIe для рабочей ноды.
В эксперименте использован мини-пк на базе Intel N100 (ASUS PN42) с 32 ГБ оперативной памяти + 1 ТБ хранилища. В качестве гипера — Proxmox Virtual Environment 8.1.
Продолжение тут
#гайд
В статье автор создает кластер и две ноды: управление и рабочая. В качестве дополнительной задачи — сквозной доступ к PCIe для рабочей ноды.
В эксперименте использован мини-пк на базе Intel N100 (ASUS PN42) с 32 ГБ оперативной памяти + 1 ТБ хранилища. В качестве гипера — Proxmox Virtual Environment 8.1.
Продолжение тут
#гайд
👍4🔥2❤1
🧳🧳 The Kubernetes Storage Layer
The Kuberentes storage layer для конечного пользователя — это etcd, но на самом деле он состоит из 3 разных уровней. Чтобы масштабировать Kubernetes настолько, насколько это возможно на сегодняшний день, был проделан и продолжает выполняться значительный объем работы на уровне хранения. Существует 3 уровня абстракции: кэш-память для просмотра, кэш-память-перехватчик и, наконец, etcd. Понимание того, как запросы API взаимодействуют с каждым уровнем, может значительно снизить затраты и повысить производительность, а понимание реализации этих уровней может показаться сложной задачей, но это не обязательно так.
Подробности здесь
#видео
The Kuberentes storage layer для конечного пользователя — это etcd, но на самом деле он состоит из 3 разных уровней. Чтобы масштабировать Kubernetes настолько, насколько это возможно на сегодняшний день, был проделан и продолжает выполняться значительный объем работы на уровне хранения. Существует 3 уровня абстракции: кэш-память для просмотра, кэш-память-перехватчик и, наконец, etcd. Понимание того, как запросы API взаимодействуют с каждым уровнем, может значительно снизить затраты и повысить производительность, а понимание реализации этих уровней может показаться сложной задачей, но это не обязательно так.
Подробности здесь
#видео
👏5❤2
Очередной #дайджест для DevOps-ов
🛟 Как сделать безопасную загрузку с полностью зашифрованным диском без загрузчика на UEFI — после завершения установки вы получите включённый Secure boot с использованием личных ключей для подписи EFI-файлов, подписанные ключом файл ядра и initramfs
🛟 Рассказ о переводе Kubernetes на новую платформу — связка website-metadata-scraper, KDP, ArgoCD и CloudFlare с шифрованием origin
🛟 Elasticsearch, снова опенсорсный — какие изменения и что нового ждет внутри
🛟 Практический пентест Kubernetes — правильная настройка среды оркестрации влияет на работу всей инфраструктуры
🛟 Определение прошивки и версии драйвера устройств в ESXi — как удостовериться в совместимости версии Firmware определенного компонента, например сетевой карты, с версией драйвера, присутствующего в ESXi
🛟 Как сделать безопасную загрузку с полностью зашифрованным диском без загрузчика на UEFI — после завершения установки вы получите включённый Secure boot с использованием личных ключей для подписи EFI-файлов, подписанные ключом файл ядра и initramfs
🛟 Рассказ о переводе Kubernetes на новую платформу — связка website-metadata-scraper, KDP, ArgoCD и CloudFlare с шифрованием origin
🛟 Elasticsearch, снова опенсорсный — какие изменения и что нового ждет внутри
🛟 Практический пентест Kubernetes — правильная настройка среды оркестрации влияет на работу всей инфраструктуры
🛟 Определение прошивки и версии драйвера устройств в ESXi — как удостовериться в совместимости версии Firmware определенного компонента, например сетевой карты, с версией драйвера, присутствующего в ESXi
❤2🎉1🥱1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какому соглашению об именах следует следовать для стороннего инструмента, управляющего EndpointSlices?
Anonymous Quiz
4%
Используйте только заглавные буквы
40%
Используйте имя пространства имен Kubernetes
52%
Используйте имя инструмента только строчными буквами, заменив пробелы и знаки препинания на тире
4%
Используйте случайно сгенерированное имя
❤5
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Что такое экспортер? Для чего он используется?
Экспортер служит мостом между сторонней системой или приложением и Prometheus, позволяя Prometheus отслеживать и собирать данные из этой системы или приложения. Экспортер действует как сервер, прослушивая определенный сетевой порт на предмет запросов от Prometheus для сбора метрик. Он собирает метрики из сторонней системы или приложения и преобразует их в формат, понятный Prometheus. Затем экспортер предоставляет эти метрики Prometheus через конечную точку HTTP, делая их доступными для сбора и анализа.
Экспортеры обычно используются для мониторинга различных типов компонентов инфраструктуры, таких как базы данных, веб-серверы и системы хранения данных. Например, существуют экспортеры для мониторинга популярных баз данных, таких как MySQL и PostgreSQL, а также веб-серверов, таких как Apache и Nginx. В целом экспортеры являются критически важным компонентом экосистемы Prometheus, позволяя отслеживать широкий спектр систем и приложений и обеспечивая высокую степень гибкости и расширяемости платформы.
Экспортер служит мостом между сторонней системой или приложением и Prometheus, позволяя Prometheus отслеживать и собирать данные из этой системы или приложения. Экспортер действует как сервер, прослушивая определенный сетевой порт на предмет запросов от Prometheus для сбора метрик. Он собирает метрики из сторонней системы или приложения и преобразует их в формат, понятный Prometheus. Затем экспортер предоставляет эти метрики Prometheus через конечную точку HTTP, делая их доступными для сбора и анализа.
Экспортеры обычно используются для мониторинга различных типов компонентов инфраструктуры, таких как базы данных, веб-серверы и системы хранения данных. Например, существуют экспортеры для мониторинга популярных баз данных, таких как MySQL и PostgreSQL, а также веб-серверов, таких как Apache и Nginx. В целом экспортеры являются критически важным компонентом экосистемы Prometheus, позволяя отслеживать широкий спектр систем и приложений и обеспечивая высокую степень гибкости и расширяемости платформы.
👍8❤1
🧐🧐 Kubernetes Events
События генерируются различными компонентами Kubernetes, такими как планировщик, kubelet, контроллеры и т. д., для сбора информации, относящейся к нодам, подам и другим ресурсам.
События будут иметь запись о состоянии, если пода запланирована, контейнер выходит из строя или ноде не хватает места на диске.
Продолжение тут
#туториал
События генерируются различными компонентами Kubernetes, такими как планировщик, kubelet, контроллеры и т. д., для сбора информации, относящейся к нодам, подам и другим ресурсам.
События будут иметь запись о состоянии, если пода запланирована, контейнер выходит из строя или ноде не хватает места на диске.
Продолжение тут
#туториал
❤1👍1
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Какая особенность определений портов в модулях позволяет ссылаться на них в атрибуте targetPort сервиса в Kubernetes?
Anonymous Quiz
11%
IP-адресация
22%
Соглашения об именах
11%
Сетевые протоколы
56%
Сопоставление портов
🥰5❤1
Привет, друзья! 👋
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬
1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨
Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
❤1👍1
#дайджест перед выходными
🛟 Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android — сказ об инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов
🛟 Освоение NGINX — руководство для начинающих по созданию быстрого, безопасного и масштабируемого веб-сервера
🛟 РЕД АДМ — централизованное управление ИТ-инфраструктурой и плавная миграция с Microsoft AD
🛟 k8spacket — инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana
🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
🛟 Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android — сказ об инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов
🛟 Освоение NGINX — руководство для начинающих по созданию быстрого, безопасного и масштабируемого веб-сервера
🛟 РЕД АДМ — централизованное управление ИТ-инфраструктурой и плавная миграция с Microsoft AD
🛟 k8spacket — инструмент для сбора информации о трафике TCP и метаданных TLS-подключений в кластере Kubernetes с использованием eBPF и визуализации в Grafana
🛟 Введение в Istio для Kubernetes: основы и начальная настройка — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes
👍4❤2
WatchYourLAN
Легковесный сетевой IP-сканер с веб-графическим интерфейсом.
Особенности:
👉 Отправляет уведомления при обнаружении нового хоста
👉 Отслеживает историю хостов онлайн/оффлайн
👉 Сохраняет список всех хостов в сети
👉 Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana
#софт
Легковесный сетевой IP-сканер с веб-графическим интерфейсом.
Особенности:
👉 Отправляет уведомления при обнаружении нового хоста
👉 Отслеживает историю хостов онлайн/оффлайн
👉 Сохраняет список всех хостов в сети
👉 Отправляет данные в InfluxDB2 для создания панели мониторинга Grafana
#софт
👏6❤1
🕸️🕸️ Сетевые плагины (CNI) в Kubernetes
CNI или Container Network Interface — это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.
CNI применяется для настройки оверлейных и андерлейных сетей:
👉 Оверлейными сетями, называют сетевой трафик, который инкапсулируется с помощью виртуального интерфейса, такого как виртуальная расширяемая локальная сеть VXLAN.
👉 Андерлейные сети работают на физическом уровне, состоят из коммутаторов и маршрутизаторов.
Продолжение тут
#туториал
CNI или Container Network Interface — это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.
CNI применяется для настройки оверлейных и андерлейных сетей:
👉 Оверлейными сетями, называют сетевой трафик, который инкапсулируется с помощью виртуального интерфейса, такого как виртуальная расширяемая локальная сеть VXLAN.
👉 Андерлейные сети работают на физическом уровне, состоят из коммутаторов и маршрутизаторов.
Продолжение тут
#туториал
❤2
Forwarded from Библиотека Go-разработчика | Golang
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета testing, научимся запускать и визуализировать тесты. В качестве практического задания напишем и протестируем алгоритм «Решето Эратосфена».
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
В статье познакомимся с концепцией тестирования кода и её основными видами, изучим инструменты стандартного пакета testing, научимся запускать и визуализировать тесты. В качестве практического задания напишем и протестируем алгоритм «Решето Эратосфена».
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
❤5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:
☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:
☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова
infer
.☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью
as
: при работе с объектами типа ключ-значения можно использовать as
для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием
unique symbol
: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные. ☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.
👍2❤1