А что внутри

25 августа 2022
А что внутри

Виртуальные машины, оркестрация контейнеров, функциональное тестирование и организация сетей. Всё это часть работы DevOps-инженеров и темы нашего сегодняшнего дайджеста.

VM для ARM-based Mac

Apple совершила революцию своими чипами на ARM-архитектуре. Но в первое время пользоваться компьютерами на базе этих процессоров было проблематично. Привычные инструменты могли не работать и даже транслятор Rosetta 2 не спасал. Тот же VirtualBox до сих пор не умеет работать на ARM-архитектуре.

Тем, кому позарез нужно «крутить» виртуальные машины на Apple Silicon, остаётся всего несколько реальных вариантов. Первый, и наиболее популярный, — Parallels Desktop. Увы, он платный и обойдётся минимум в сотню вечнозелёных за годовую подписку. Второй вариант — VMware Fusion. Но он пока на стадии tech preview. Третий вариант — UTM, представляющий собой удобную обёртку над QEMU.

Недавно появился новый вариант — virt. Это легковесная виртуальная машина, разработанная для компьютеров на базе Apple Silicon. Она основана на дистрибутиве Alpine Linux и предназначена для запуска контейнеров. Это отличный вариант, когда необходимо очень быстро запустить какое-либо приложение в контейнере на локальном компьютере с ARM-архитектурой от Apple. Советуем попробовать.

Чего ждать от K8s 1.25

Обновление Kubernetes в большинстве случаев представляет собой головную боль даже для очень высококвалифицированных администраторов. Интернет забит статьями и заметками про факапы, которые возникали в процессе апдейта. Как бы не откладывалось обновление — в какой-то момент его будет нужно выполнить. Давайте посмотрим, что именно поменяется в только что вышедшей версии 1.25 и к чему стоит быть готовым.

Начнём с API PodSecurityPolicy. В версии 1.21 он был помечен как deprecated и уже не будет включён в 1.25. Заменой ему станет Pod Security Admission. Так что если вы до сих пор использовали PodSecurityPolicy, то нужно быть готовым к миграции.

Модули томов продолжают мигрировать на CSI-драйверы, так что в этом релизе будут удалены плагины Portworx, Flocker, Quobyte и StorageOS. Вот такой очередной шаг к полному отказу от плагинов томов. Это же обстоятельство повлияет и на поддержку vSphere. Kubernetes 1.25 будет поддерживать драйверы томов только vSphere 7.0u2 и выше.

Также в этой версии прекратится поддержка GlusterFS, даже несмотря на наличие соответствующего CSI-драйвера. А ещё Kubelet почти перестанет создавать соответствующие цепочки правил iptables в NAT-таблице. Так что в будущем нас ждёт изменение в сетевой реализации. Ну а чтобы узнать больше деталей советуем посетить блог проекта.

Охранная грамота флибустьера

Устойчивость к сбоям — ключевое качество любого приложения, особенно если речь о микросервисной архитектуре. Давайте посмотрим, как тестировать такие приложения. Если понаблюдать за разработкой микросервисных приложений, мы увидим три ключевых момента:

  • микросервисы разрабатываются изолированно;
  • mock-тестирование помогает предотвращать сбои;
  • функциональные тесты — «золотой стандарт».

Это привело к созданию методики тестирования Service-level Fault Injection Testing (SFIT). Суть в том, чтобы провести один сквозной функциональный тест, а далее в процессе вызова удалённой службы определить все возможные варианты, когда такой вызов может привести к сбою.

Знакомьтесь, Filibuster — утилита для проведения SFIT-тестирования. Поставить из pip её пока нельзя, но есть исходники на Github и детальный туториал по установке и использованию. Кто знает, возможно как раз за этим будущее.

Эра умных сетей

Существует много инструментов для построения сети внутри Kubernetes. Любопытно, что сам Kubernetes не имеет встроенных средств создания сетевой связности, а полагается на Container Networking Interface (CNI) плагины.

Большая часть таких плагинов использует возможности межсетевого экрана netfilter, управляемого при помощи правил iptables. Это рабочий и десятилетиями проверенный вариант, но есть способ интереснее и значительно быстрее — Cilium. Сердцем железного дровосека системы служит такая крутая штука, как eBPF. Но сначала небольшая ретроспектива.

1975 год. Представлен 8-битный процессор Motorola 6502. Именно на нём работал компьютер Apple II, игровая консоль NES и мозг робота Бендера из «Футурамы». Архитектура этого процессора легла в основу виртуальной машины BPF (Berkeley Packet Filters). Это была реальная инновация, ускорившая производительность сетевого пакетного фильтра в десятки раз.

2013 год. Алексей Старовойтов и Даниэль Боркман модифицируют оригинальный BPF, добавив JIT-компиляцию, увеличив количество регистров и добавив механизм обеспечения безопасности. Результат назвали eBPF (Extended BPF) и он стал очень популярен. Фактически они создали способ запуска любого изолированного приложения непосредственно в ядре Linux. Причём триггером могло служить любое из многочисленных событий, генерируемых ядром.

2017 год. eBPF стал идеальной основой для Cilium. Он полностью соответствует концепции observability, работая на уровне ядра. Сетевые политики позволяют построить высокопроизводительную инфраструктуру любой сложности. И работает это быстрее, чем правила iptables.

В настоящее время проект Cilium продолжает активно развиваться. Пожелаем ему удачи!

Митапы

Онлайн

DevOps Meetup

19:00 - Online

Рады сообщить, что осенью у нас запланирован отличный DevOps Meetup. Программа мероприятия пока что формируется, но регистрация уже открыта. Детальная информация будет опубликована позже, так что следите за наши новостями.

Если у вас есть идея доклада и вы хотите стать спикером, то пишите на почту andy@evrone.com.

Регистрация

Вакансии

Удаленка / Офис

Evrone 

Мы открыты для новых DevOps-инженеров. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.

Подробнее

Подписаться
на Digest →
Важные новости и мероприятия без спама
Технологии которыми вы владеете и которые вам интересны
Ваш адрес электронной почты в безопасности - вот наша политика конфиденциальности.