🤔😱 Что происходит после команды kubectl run?
Представьте, что вы хотите развернуть nginx в кластере Kubernetes, набрав что-то вроде этого в своем терминале:
kubectl create deployment nginx --image=nginx --replicas=3
Через несколько секунд увидите три модуля nginx, распределенных по всем рабочим нодам. Что на самом деле происходит под капотом?
Одна из замечательных особенностей Kubernetes заключается в том, что он управляет развертыванием рабочих нагрузок в инфраструктуре с помощью удобных для пользователя API. Сложность скрыта за простыми абстракциями. Но для того, чтобы полностью понять ценность, которую он нам предлагает, полезно разобраться в его внутреннем устройстве.
Это руководство полностью разбирает жизненный цикл запроса от клиента к kubelet, при необходимости ссылаясь на исходный код, чтобы проиллюстрировать, что происходит. Написано понятным языком.
#туториал
Представьте, что вы хотите развернуть nginx в кластере Kubernetes, набрав что-то вроде этого в своем терминале:
kubectl create deployment nginx --image=nginx --replicas=3
Через несколько секунд увидите три модуля nginx, распределенных по всем рабочим нодам. Что на самом деле происходит под капотом?
Одна из замечательных особенностей Kubernetes заключается в том, что он управляет развертыванием рабочих нагрузок в инфраструктуре с помощью удобных для пользователя API. Сложность скрыта за простыми абстракциями. Но для того, чтобы полностью понять ценность, которую он нам предлагает, полезно разобраться в его внутреннем устройстве.
Это руководство полностью разбирает жизненный цикл запроса от клиента к kubelet, при необходимости ссылаясь на исходный код, чтобы проиллюстрировать, что происходит. Написано понятным языком.
#туториал
👍11🔥5❤2
🤜🤛 🤙 Сoop-Days 2023 — День информационных технологий и безопасности
Конференция Coop-Days 2023 посвящена двум ключевым темам: кооперация и самоуправление, и информационные технологии и безопасность.
Конференция будет интересна как отраслевым специалистам, так и людям, интересующимся и практикующим в своей деятельности практики самоуправления и кооперации.
Видео
#мероприятие
Конференция Coop-Days 2023 посвящена двум ключевым темам: кооперация и самоуправление, и информационные технологии и безопасность.
Конференция будет интересна как отраслевым специалистам, так и людям, интересующимся и практикующим в своей деятельности практики самоуправления и кооперации.
Видео
#мероприятие
👍5👏1
Очередной #дайджест инструментов и материалов по DevOps
🟢 Релиз Docker Desktop 4.25 — улучшения в Docker Desktop для Windows, Rosetta для Linux GA и новый Docker Scout Image Analysis
🟢 Terraform AWS Drift Checks — как бороться с «дрейфом» настроек в IaC
🟢 tEKS — набор модулей Terraform / Terragrunt, предназначенных для предоставления вам всего необходимого для запуска производственного кластера EKS на AWS
🟢 BPF и безопасность: друзья и враги — как BPF используется для обеспечения безопасности, как BPF обеспечивает свою собственную безопасность, свои привилегированные и непривилегированные варианты использования
🟢 Эволюция разработки ПО — подробный рассказ об эволюции Software Engineering и попытка понять, как индустрия должна измениться сегодня
🟢 Релиз Docker Desktop 4.25 — улучшения в Docker Desktop для Windows, Rosetta для Linux GA и новый Docker Scout Image Analysis
🟢 Terraform AWS Drift Checks — как бороться с «дрейфом» настроек в IaC
🟢 tEKS — набор модулей Terraform / Terragrunt, предназначенных для предоставления вам всего необходимого для запуска производственного кластера EKS на AWS
🟢 BPF и безопасность: друзья и враги — как BPF используется для обеспечения безопасности, как BPF обеспечивает свою собственную безопасность, свои привилегированные и непривилегированные варианты использования
🟢 Эволюция разработки ПО — подробный рассказ об эволюции Software Engineering и попытка понять, как индустрия должна измениться сегодня
🔥6👍5❤3😁3🤩3
#вопросы_с_собеседования
Какие основные типы RAID существуют, чем они отличаются?
RAID 0 — Чередование
В системе RAID 0 данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода.
RAID 1 — Зеркальное отображение
Данные хранятся дважды, записывая их как на основной диск (или набор дисков), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует основной диск или зеркальный диск для восстановления данных и продолжает работу.
RAID уровень 5
RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока
Уровень RAID 6 — Чередование с двойной четностью
RAID 6 похож на RAID 5, но данные о четности записываются на два диска. Это означает, что для него требуется как минимум 4 диска и он может выдержать 2 диска, умирающих одновременно.
RAID уровень 10 — объединение RAID 1 и RAID 0
Можно объединить преимущества (и недостатки) RAID 0 и RAID 1 в одной системе. Это вложенная или гибридная конфигурация RAID.
Какие основные типы RAID существуют, чем они отличаются?
❤13👍4🥰3
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📯Внимание всем отважным героям и искателям приключений!
«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!
Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.
💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!
«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!
Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.
💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!
👏2❤1🔥1🤔1
Разрабы продолжают добавлять поддержку типов данных в Go-Redis. Вот, подвезли поддержку JSON.
С JSON key в Redis вы можете:
Пример демонстрирует, как начать работу с JSON в Go-Redis:
var ctx = context.Background()
client := redis.NewClient(&redis.Options{
Addr: «localhost:6379»,
})
type Bicycle struct {
Brand string
Model string
Price int
}
bicycle := Bicycle{
Brand: «Velorim»,
Model: «Jigger»,
Price: 270,
}
_, err := client.JSONSet(ctx, «bicycle:1», «$», bicycle).Result()
if err != nil {
panic(err)
}
res, err := client.JSONGet(ctx, «bicycle:1», «.Model»).Result()
if err != nil {
panic(err)
}
fmt.Println(«bicycle:1 model is», res)
Изучить подробности релиза
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 9.3.0 · redis/go-redis
What's new?
JSON support
We are continuing to add support for more Redis data types in Go-Redis. Today, we are happy to announce support for JSON. JSON is a Redis data structure for storing, qu...
JSON support
We are continuing to add support for more Redis data types in Go-Redis. Today, we are happy to announce support for JSON. JSON is a Redis data structure for storing, qu...
❤🔥11👍5🔥1🤔1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу
С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.
🔗 Читать статью
🔗 Зеркало
С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.
🔗 Читать статью
🔗 Зеркало
👏3👍2💯1
💪😎 Подробная сборка сетевого хранилища на базе TrueNAS/ZFS
Очень крутой материал про настройку и обслуживание высокообъемной хранилки на FreeNAS-е с ZFS-ом.
FreeNAS, основана на FreeBSD, ориентированной на сетевое хранилище, которая использует файловую систему ZFS и веб-интерфейс для настройки общего доступа к сети и других параметров. Хотя большая часть настройки и управления системой осуществляется через этот веб-интерфейс, вы можете немного расширить возможности через терминал по SSH.
В этой статье автор расскажет о выборе оборудования, процессе сборки и настройки, некоторых других приложениях, немного теории о том, как ZFS распределяет пространство для хранения массива и как его можно настроить, чтобы уменьшить накладные расходы на распределение.
Читать
#гайд
Очень крутой материал про настройку и обслуживание высокообъемной хранилки на FreeNAS-е с ZFS-ом.
FreeNAS, основана на FreeBSD, ориентированной на сетевое хранилище, которая использует файловую систему ZFS и веб-интерфейс для настройки общего доступа к сети и других параметров. Хотя большая часть настройки и управления системой осуществляется через этот веб-интерфейс, вы можете немного расширить возможности через терминал по SSH.
В этой статье автор расскажет о выборе оборудования, процессе сборки и настройки, некоторых других приложениях, немного теории о том, как ZFS распределяет пространство для хранения массива и как его можно настроить, чтобы уменьшить накладные расходы на распределение.
Читать
#гайд
🔥5👏5🤩3❤2🥰2
#вопросы_с_собеседования
Что такое loop devices? Как их можно использовать?
В Unix-подобных операционных системах устройство цикла , vnd (диск vnode) или lofi (интерфейс файла цикла) является псевдоустройством, которое делает компьютерный файл доступным как блочное устройство.
Перед использованием петлевое устройство должно быть подключено к существующему файлу в файловой системе. Ассоциация предоставляет пользователю интерфейс прикладного программирования (API), который позволяет использовать файл вместо блочного специального файла (см. Файловую систему устройства). Таким образом, если файл содержит всю файловую систему, файл может быть смонтирован, как если бы это было дисковое устройство.
Файлы этого типа часто используются для CD образов ISO и дискет образов. Монтирование файла, содержащего файловую систему, с помощью такого монтирования цикла делает файлы в этой файловой системе доступными. Они появляются в каталоге точки монтирования.
Петлевое подключение имеет несколько применений. Это удобный метод автономного управления и редактирования образов файловой системы, которые в дальнейшем используются для нормальной работы системы. Сюда входят образы CD или DVD или системы установки. Его можно использовать для установки операционной системы в файловую систему без повторного разбиения диска. Он также обеспечивает постоянное разделение данных, например, при имитации съемных носителей на более быстром и удобном жестком диске или инкапсуляции зашифрованной файловой системы.
Что такое loop devices? Как их можно использовать?
🔥6🥰1🎉1
#memes
Защита от белок 🐿️ чтобы провод не грызли.
Раньше ели шнурок, а теперь антенну почти сточили 😂
Защита от белок 🐿️ чтобы провод не грызли.
Раньше ели шнурок, а теперь антенну почти сточили 😂
😁6🤩6
Очередной #дайджест инструментов и материалов по DevOps
🟡 Container Security Fundamentals — автор серии видосов, рассказывает теорию погружения в тему безопасности контейнеров с примерами кода в консоли
🟡 GitHub Actions могли бы быть намного лучше — описание раздражающих нюансов в работе Гита, которые влияют на автора
🟡 Размышления о 10 000 часах DevOps — некоторые размышления после 10 000 часов работы в сфере DevOps
🟡 Темная сторона SRE — хронический стресс, карьерный застой и профессиональный риск, такое тоже может быть
🟡 SRE Stories — SRE, DevOps-инженеры, системные администраторы рассказывают про свою работу и профессиональный путь
🟡 Container Security Fundamentals — автор серии видосов, рассказывает теорию погружения в тему безопасности контейнеров с примерами кода в консоли
🟡 GitHub Actions могли бы быть намного лучше — описание раздражающих нюансов в работе Гита, которые влияют на автора
🟡 Размышления о 10 000 часах DevOps — некоторые размышления после 10 000 часов работы в сфере DevOps
🟡 Темная сторона SRE — хронический стресс, карьерный застой и профессиональный риск, такое тоже может быть
🟡 SRE Stories — SRE, DevOps-инженеры, системные администраторы рассказывают про свою работу и профессиональный путь
🤩11❤🔥11👍4🥰1
Forwarded from Библиотека питониста | Python, Django, Flask
🔤 Азбука SQL в примерах. Часть 2. Ограничения, которые упрощают жизнь
В предыдущей части мы выяснили, что такое SQL, создали свою первую базу данных и добавили в неё первую таблицу. Пришло время узнать, как сделать добавление данных в неё более простым и надёжным.
🔗 Читать статью
🔗 Зеркало
В предыдущей части мы выяснили, что такое SQL, создали свою первую базу данных и добавили в неё первую таблицу. Пришло время узнать, как сделать добавление данных в неё более простым и надёжным.
🔗 Читать статью
🔗 Зеркало
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Rustypaste
Это минималистичный и простой сервис загрузки, написанный на Rust и реализованный с использованием веб-фреймворка Actix, как наиболее подходящий фреймворк с точки зрения безопасности, производительности и простоты.
Самый простой способ взаимодействия с сервером rustypaste — использовать curl, но вы можете использовать инструмент командной строки под названием rpaste, который написан на Rust.
Возможности:
〽️ Загрузка файла, сокращение URL и загрузка по ссылке
〽️ Один бинарник
〽️ Простая конфигурация
〽️ Простота развертывания
〽️ Нет базы данных
〽️ Self-hosted
Это минималистичный и простой сервис загрузки, написанный на Rust и реализованный с использованием веб-фреймворка Actix, как наиболее подходящий фреймворк с точки зрения безопасности, производительности и простоты.
Самый простой способ взаимодействия с сервером rustypaste — использовать curl, но вы можете использовать инструмент командной строки под названием rpaste, который написан на Rust.
Возможности:
〽️ Загрузка файла, сокращение URL и загрузка по ссылке
〽️ Один бинарник
〽️ Простая конфигурация
〽️ Простота развертывания
〽️ Нет базы данных
〽️ Self-hosted
🔥8👍5👏3🎉3🥰2
🧪🧪📥 Email Alchemy — автономные почтовые сервисы
О настройке собственного сервера электронной почты. Обстоятельно, с объяснениями и конфигами
Подготовьтесь к длиннопосту 😉
#гайд
О настройке собственного сервера электронной почты. Обстоятельно, с объяснениями и конфигами
Подготовьтесь к длиннопосту 😉
#гайд
🔥6👍4
😱🔥 Intel 4004, первому процессору исполнилось 40 лет
15 ноября 1971 года Intel представила первый однокристальный процессор — 4 бита, 16 контактов и 740 КГц
15 ноября 1971 года Intel представила первый однокристальный процессор — 4 бита, 16 контактов и 740 КГц
❤15👍3🤔2🔥1🥰1
🥷💪 Шпаргалка по ZFS
Информация о пулах / файловых системах (ФС) на пулах
Управление пулами / дисками
Создание и свойства ФС
zfs create zfspool/backups создать ФС backups, обе ФС будут бесконтрольно расти, пока не выставлены квоты
Монтирование
Снапшоты
modinfo zfs | head -n 9
— узнать версию ZFS и другие подробностиИнформация о пулах / файловых системах (ФС) на пулах
zpool list
— статус пуловzpool status -v
— статус пулов подробныйzfs list
— список ФС, так называются монтируемые разделы в пулахzfs get all
— вся информация по пуламУправление пулами / дисками
ls -lha /dev/disk/by-id/
— выяснить id дисков чтобы потом на них создать пул (не юзайте имя диска типа sda — они динамически меняются)zpool create zfspool disk-id-1 disk-id-2
— может быть сколько угодно дисковzpool create -m /mnt/backups zfspool disk-id-1
— создать пул с указанием папки zpool destroy zfspool
— уничтожить пулmkfile 100m disk1 disk2
— создать файлы дисковzpool create backups /disk1 /disk2
- создать пул backups на созданных файлахzpool create zfspool mirror /disk1 /disk2
— создать пул zfspool с зеркалированием на 2 дискаzpool add zfspool /disk3
— добавить диск в пулzpool attach zfspool /disk3
— добавить устройство в пул, если он в зеркале — добавится в зеркало, если простой — пул расширитсяzpool detach zfspool /disk3
— исключить устройство из пулаzpool remove zfspool /disk3
— удаление устройства из пулаzpool add zfspool spare /disk3
— добавление диска горячей замены в пулzpool remove zfspool spare /disk3
— удаление диска горячей замены из пулаzpool offline zfspool /disk1
— отключить устройство, на него не будет чтения/записи, если добавить ключ -t, то после ребута станет онлайнzpool online zfspool /disk1
— включить disk1zpool replace zfspool /disk1 /disk3
— заменить disk 1, на disk3zpool upgrade -v
— увидеть версию, и фичи текущего ZFS, -a обновит все пулы до новейшей версииСоздание и свойства ФС
zfs create zfspool/data
— создать ФС datazfs create zfspool/backups создать ФС backups, обе ФС будут бесконтрольно расти, пока не выставлены квоты
zfs destroy -fr zfspool/backups/old
— уничтожит ФС old, ключ -r — рекурсивно, если внутри ещё несколько ФС, -f — форситьzfs set reservation=1G zfspool/data
— зарезервировать 1 Гигабайт, который ФС гарантированно получит, а другие не займутzfs list -o quota zfspool/backups
— выяснить квоту в пуле на ФС backupszfs set quota=1G zfspool/backups
— установить квоту в 1 Гигабайт на ФС backupszfs list -o compression
— проверить включена компрессия или нетzfs set compression=on zfspool/backups
— включить компрессию на ФС backups в пуле zfspool
zfs set sharesmb=on zfspool/backups
— расшарить по SMB ФС backups средствами ZFSzfs set sharenfs=on zfspool/backups
— расшарить по NFS ФС backups средствами ZFSМонтирование
zfs mount
— показать все примонтированные ФСzfs mount zfspool/backups
— примонтировать backupszfs umount zfspool/backups
— размонтировать ФС backupszfs mount -a
— смонтировать все ФСzfs umount -a Umount
— размонтировать все ФССнапшоты
zfs list -t snapshot
— отобразить все снапшотыzfs list -o space
— сколько занимают места снапшотыzfs snapshot zfspool/backups@test
— создать снапшот ФС backups с названием testzfs rollback zfspool/backups@test
— вернуться к снапшоту backups с названием test, с ключом -r рекурсивно уничтожит промежуточные снапшоты, с ключом -f форсит анмаунт и ремаунтzfs destroy zfspool/backups@test
— уничтожить снапшот backups с названием testzfs send zfspool/backups@march2021 > /home/backups/march2021.bak
— сделать локальный бекап снапшота march2021zfs receive zfspool2/backups2 < /home/backups/march2021.bak
— восстановить из локального снапшота ФС на другом пулеzfs send zfspool/backups@march2021 | ssh COMP02 «zfs receive testpool/testfs»
— отправить снапшот по SSH на хост COMP02zfs clone zfspool/backups@march2021 /clones/backups
— клонировать существующий снапшотzfs destroy zfspool/backups@march2021
— уничтожить клон👍7🔥3🤔2❤1