<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>kvaps | личный блог</title><link>https://kvaps.github.io/ru/</link><description>Recent content on kvaps | личный блог</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Sat, 13 Jun 2026 07:05:32 +0000</lastBuildDate><atom:link href="https://kvaps.github.io/ru/index.xml" rel="self" type="application/rss+xml"/><item><title>США запретили иностранцам доступ к самым мощным моделям Anthropic</title><link>https://kvaps.github.io/ru/2026/06/%D1%81%D1%88%D0%B0-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D0%BB%D0%B8-%D0%B8%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%86%D0%B0%D0%BC-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D1%81%D0%B0%D0%BC%D1%8B%D0%BC-%D0%BC%D0%BE%D1%89%D0%BD%D1%8B%D0%BC-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8F%D0%BC-anthropic/</link><pubDate>Sat, 13 Jun 2026 07:05:32 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/06/%D1%81%D1%88%D0%B0-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D0%BB%D0%B8-%D0%B8%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%86%D0%B0%D0%BC-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BA-%D1%81%D0%B0%D0%BC%D1%8B%D0%BC-%D0%BC%D0%BE%D1%89%D0%BD%D1%8B%D0%BC-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8F%D0%BC-anthropic/</guid><description>&lt;p&gt;Судя по всему, произошло довольно громкое событие: правительство США фактически &lt;a href="https://www.anthropic.com/news/fable-mythos-access"&gt;запретило доступ&lt;/a&gt; к самым мощным моделям Anthropic — &lt;strong&gt;Claude Fable 5&lt;/strong&gt; и &lt;strong&gt;Claude Mythos 5&lt;/strong&gt; — для иностранных граждан. В ответ Anthropic временно отключила доступ к этим моделям вообще для всех пользователей, чтобы не нарушить экспортные ограничения.&lt;/p&gt;
&lt;p&gt;Если коротко по хронологии:&lt;/p&gt;</description></item><item><title>[Перевод] Ralph Wiggum простыми словами: цикл в Claude Code, который не останавливается</title><link>https://kvaps.github.io/ru/2026/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-ralph-wiggum-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%BC%D0%B8-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D0%BC%D0%B8-%D1%86%D0%B8%D0%BA%D0%BB-%D0%B2-claude-code-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D0%BD%D0%B5-%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%B0%D0%B2%D0%BB%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F/</link><pubDate>Sat, 30 May 2026 07:55:06 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-ralph-wiggum-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%BC%D0%B8-%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D0%BC%D0%B8-%D1%86%D0%B8%D0%BA%D0%BB-%D0%B2-claude-code-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9-%D0%BD%D0%B5-%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%B0%D0%B2%D0%BB%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/db1/a34/bba/db1a34bbac3505229053facc339c5180.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Если вы в последнее время заглядывали в техно-Twitter, то наверняка видели, как люди обсуждают «Ralph Wiggum» так, будто это чит-код. Мемный нейминг делу не помогает, но идея вполне реальна: это &lt;a href="https://github.com/anthropics/claude-code/blob/main/plugins/ralph-wiggum/README.md"&gt;официальный плагин для Claude Code&lt;/a&gt;, который превращает одиночный промпт в устойчивый цикл. Агент продолжает работать, исправляя собственные ошибки, пока действительно не дойдёт до финишной черты, которую вы задали.&lt;/p&gt;
&lt;p&gt;В этом материале объясняется, что это за плагин, как он работает на пальцах, почему он привлекает столько внимания и как безопасно применять его в реальной работе — от рефакторинга легаси до покрытия тестами и greenfield-приложений.&lt;/p&gt;</description></item><item><title>Последний мейнтейнер</title><link>https://kvaps.github.io/ru/2026/05/%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9-%D0%BC%D0%B5%D0%B9%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80/</link><pubDate>Fri, 29 May 2026 16:22:42 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/05/%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9-%D0%BC%D0%B5%D0%B9%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/e88/133/6ce/e881336ceda8c1dbdbe516b2631b3b87.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Говорят, всё началось довольно скучно.&lt;/p&gt;
&lt;p&gt;Сначала искусственный интеллект научился писать код. Потом научился писать его лучше большинства людей. А потом выяснилась вещь, которую отрасль почему-то проглядела на десятилетия вперёд: самый дорогой ресурс в open source — вовсе не разработка. Не ревью. И даже не CI, пожирающий бюджеты дата-центров. Самым дорогим оказалось то, на что никогда не хватало людей.&lt;/p&gt;
&lt;p&gt;Поддержка.&lt;/p&gt;
&lt;p&gt;Ответить на issue. Разобраться с чужим, наспех собранным pull request’ом. Обновить зависимость, из-за которой по ночам не спят сразу три континента. Переписать документацию, которую никто не любит писать и все ненавидят читать. Проверить, что новый релиз библиотеки не сломал совместимость у тех, кто поставил её ещё шесть лет назад и с тех пор ни разу не открывал.&lt;/p&gt;</description></item><item><title>Жизненный цикл объекта в Kubernetes: путь от kubectl apply до полного удаления</title><link>https://kvaps.github.io/ru/2026/05/%D0%B6%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%86%D0%B8%D0%BA%D0%BB-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0-%D0%B2-kubernetes-%D0%BF%D1%83%D1%82%D1%8C-%D0%BE%D1%82-kubectl-apply-%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/</link><pubDate>Fri, 29 May 2026 05:48:51 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/05/%D0%B6%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%86%D0%B8%D0%BA%D0%BB-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0-%D0%B2-kubernetes-%D0%BF%D1%83%D1%82%D1%8C-%D0%BE%D1%82-kubectl-apply-%D0%B4%D0%BE-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B3%D0%BE-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/14a/4c9/fd2/14a4c9fd27a3d2561621184757911065.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет. В предыдущих статьях этого цикла мы разбирали, как Kubernetes-объекты &lt;strong&gt;читаются&lt;/strong&gt; (&lt;a href="https://habr.com/ru/companies/aenix/articles/1031818/"&gt;первая&lt;/a&gt; — informer и кэш в &lt;code&gt;controller-runtime&lt;/code&gt;) и &lt;strong&gt;записываются&lt;/strong&gt; (&lt;a href="https://habr.com/ru/companies/aenix/articles/1039282/"&gt;вторая&lt;/a&gt; — Server-Side Apply, patch’и, &lt;code&gt;managedFields&lt;/code&gt;). Сегодня — про их жизненный цикл.&lt;/p&gt;
&lt;p&gt;Между &lt;code&gt;kubectl apply&lt;/code&gt; и появлением объекта в etcd проходит целая цепочка: admission chain, мутирующие и валидирующие вебхуки, schema-валидация, встроенные плагины. Между &lt;code&gt;kubectl delete&lt;/code&gt; и реальным исчезновением объекта может пройти от миллисекунд до часов — в зависимости от того, какие на нём финализаторы и какая стратегия каскадного удаления выбрана. Механизм при этом универсален для любого ресурса: Pod, Deployment, ваш CRD — жизненный цикл у всех один.&lt;/p&gt;</description></item><item><title>Запись в Kubernetes: как контроллеры учились не перезаписывать друг друга</title><link>https://kvaps.github.io/ru/2026/05/%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B2-kubernetes-%D0%BA%D0%B0%D0%BA-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B-%D1%83%D1%87%D0%B8%D0%BB%D0%B8%D1%81%D1%8C-%D0%BD%D0%B5-%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D1%80%D1%83%D0%B3-%D0%B4%D1%80%D1%83%D0%B3%D0%B0/</link><pubDate>Tue, 26 May 2026 05:46:53 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/05/%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B2-kubernetes-%D0%BA%D0%B0%D0%BA-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B-%D1%83%D1%87%D0%B8%D0%BB%D0%B8%D1%81%D1%8C-%D0%BD%D0%B5-%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8B%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D1%80%D1%83%D0%B3-%D0%B4%D1%80%D1%83%D0%B3%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/f6e/e36/b4a/f6ee36b4acbcd49bec647228a82048ac.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет. В &lt;a href="https://habr.com/ru/companies/aenix/articles/1031818/"&gt;прошлой статье&lt;/a&gt; мы в основном говорили про &lt;strong&gt;чтение&lt;/strong&gt; — кэш в &lt;code&gt;controller-runtime&lt;/code&gt;, informer’ы, &lt;code&gt;Reflector&lt;/code&gt;, &lt;code&gt;DeltaFIFO&lt;/code&gt;, почему &lt;code&gt;r.Get&lt;/code&gt; в реконсайле не ходит в apiserver. Сегодня поговорим больше про &lt;strong&gt;запись&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Kubernetes по своей природе спроектирован так, что &lt;strong&gt;одним и тем же объектом могут управлять разные контроллеры — и это нормально&lt;/strong&gt;. На один Deployment смотрят и &lt;code&gt;deployment-controller&lt;/code&gt; (правит status), и HPA (правит &lt;code&gt;spec.replicas&lt;/code&gt;), и admission-мутаторы (расставляют labels), и &lt;code&gt;cert-manager&lt;/code&gt; (дописывает свои аннотации), и пользователь с &lt;code&gt;kubectl apply&lt;/code&gt;. Каждый из них отвечает за свои поля и не лезет в чужие. И всё это работает.&lt;/p&gt;</description></item><item><title>Как на самом деле устроен кэш в controller-runtime, и почему ваш оператор не кладёт apiserver</title><link>https://kvaps.github.io/ru/2026/05/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD-%D0%BA%D1%8D%D1%88-%D0%B2-controller-runtime-%D0%B8-%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%B2%D0%B0%D1%88-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%BD%D0%B5-%D0%BA%D0%BB%D0%B0%D0%B4%D1%91%D1%82-apiserver/</link><pubDate>Wed, 06 May 2026 14:31:09 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/05/%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD-%D0%BA%D1%8D%D1%88-%D0%B2-controller-runtime-%D0%B8-%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%B2%D0%B0%D1%88-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%BD%D0%B5-%D0%BA%D0%BB%D0%B0%D0%B4%D1%91%D1%82-apiserver/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/24f/bbf/7b5/24fbbf7b5ca2e226d5126b0cbc57264a.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Kubernetes давно стал повсеместной платформой, а написать к нему собственный оператор сегодня — задача нескольких часов. Стандартный путь — &lt;code&gt;kubebuilder&lt;/code&gt; на основе &lt;code&gt;controller-runtime&lt;/code&gt;: scaffold проекта, типы, реконсайлер. В типовых сценариях этого вполне достаточно. Но как только нагрузка растёт или поведение оператора начинает расходиться с ожиданиями, всплывает целый класс edge-кейсов, причина которых — непонимание того, как &lt;code&gt;controller-runtime&lt;/code&gt; устроен внутри. Если вы пишете контроллеры для Kubernetes, этот материал поможет собрать целостную mental model и заранее избежать дорогих сюрпризов в проде.&lt;/p&gt;</description></item><item><title>Игровые серверы на Cozystack: первоапрельская нешутка</title><link>https://kvaps.github.io/ru/2026/04/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0-cozystack-%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F-%D0%BD%D0%B5%D1%88%D1%83%D1%82%D0%BA%D0%B0/</link><pubDate>Wed, 01 Apr 2026 12:38:51 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/04/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%8B-%D0%BD%D0%B0-cozystack-%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F-%D0%BD%D0%B5%D1%88%D1%83%D1%82%D0%BA%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/04f/2d6/241/04f2d62416dac5f41b7422f22dc9cdc1.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет, Хабр! Мы — команда&lt;a href="https://cozystack.io"&gt; Cozystack&lt;/a&gt;, open-source платформы для построения облаков на своём железе. Хотим рассказать, почему мы решили целиться в направление игровых серверов и что из этого вышло.&lt;/p&gt;</description></item><item><title>Platformize It! Часть 2: Расширяем Kubernetes с помощью API Aggregation Layer</title><link>https://kvaps.github.io/ru/2026/02/platformize-it-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D1%8F%D0%B5%D0%BC-kubernetes-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-api-aggregation-layer/</link><pubDate>Thu, 26 Feb 2026 12:04:58 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/02/platformize-it-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D1%8F%D0%B5%D0%BC-kubernetes-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-api-aggregation-layer/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/011/f25/b58/011f25b58ad180f472700718c07da0aa.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;В &lt;a href="https://habr.com/ru/users/kvaps/articles/"&gt;предыдущей части&lt;/a&gt; статьи мы разобрались, как построить платформу для развертывания управляемых приложений с единым API и UI. Сегодня мы сделаем следующий шаг — дополним стандартный API Kubernetes своим API-сервером для синхронизации состояния. Рассказываем по порядку, это сделать.&lt;/p&gt;</description></item><item><title>Platformize it! Часть 1: Платформенный подход, ядро современной платформы и API</title><link>https://kvaps.github.io/ru/2026/02/platformize-it-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4-%D1%8F%D0%B4%D1%80%D0%BE-%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-%D0%B8-api/</link><pubDate>Mon, 09 Feb 2026 06:53:36 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/02/platformize-it-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4-%D1%8F%D0%B4%D1%80%D0%BE-%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-%D0%B8-api/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/239/6e9/125/2396e91256afe1ca468e94de1fc53054.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Я много лет мечтал построить свою облачную платформу — и если раньше я пытался реализовать эту мечту в рамках нескольких компаний и проектов, то в последние годы я запустил собственный проект, Cozystack. В своей статье я расскажу о нашем опыте и о том, как, на мой взгляд, стоит подходить к созданию современной инфраструктурной платформы, в основе которой — Kubernetes и Kubernetes API.&lt;/p&gt;
&lt;p&gt;Я разберу платформенный подход: что такое платформы, как они работают, кому нужны и как построить свою. А также сравню разные архитектуры для платформ, расскажу, почему мы остановились именно на K8s как на ключевой технологии, и покажу, как мы собрали на его основе production-решение.&lt;/p&gt;</description></item><item><title>KubeVirt: мифы и реальность об оверхедах виртуализации в Kubernetes</title><link>https://kvaps.github.io/ru/2026/01/kubevirt-%D0%BC%D0%B8%D1%84%D1%8B-%D0%B8-%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BE%D0%B1-%D0%BE%D0%B2%D0%B5%D1%80%D1%85%D0%B5%D0%B4%D0%B0%D1%85-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B2-kubernetes/</link><pubDate>Wed, 21 Jan 2026 09:33:25 +0000</pubDate><guid>https://kvaps.github.io/ru/2026/01/kubevirt-%D0%BC%D0%B8%D1%84%D1%8B-%D0%B8-%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BE%D0%B1-%D0%BE%D0%B2%D0%B5%D1%80%D1%85%D0%B5%D0%B4%D0%B0%D1%85-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B2-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/428/2b8/427/4282b8427e179c019964eb904883df3f.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Когда заходит речь о запуске виртуальных машин в Kubernetes через KubeVirt, первый вопрос, который возникает у инженеров: «А какой там оверхед?» Давайте разберём этот вопрос детально, рассмотрев каждую подсистему отдельно: вычисления, хранилище и сеть.&lt;/p&gt;
&lt;p&gt;Статья основана на обсуждении в профессиональном сообществе.&lt;/p&gt;</description></item><item><title>Flux-aio, Kubernetes mTLS и проблема курицы и яйца</title><link>https://kvaps.github.io/ru/2025/12/flux-aio-kubernetes-mtls-%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D0%BA%D1%83%D1%80%D0%B8%D1%86%D1%8B-%D0%B8-%D1%8F%D0%B9%D1%86%D0%B0/</link><pubDate>Wed, 10 Dec 2025 11:24:57 +0000</pubDate><guid>https://kvaps.github.io/ru/2025/12/flux-aio-kubernetes-mtls-%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D0%BA%D1%83%D1%80%D0%B8%D1%86%D1%8B-%D0%B8-%D1%8F%D0%B9%D1%86%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/40d/d67/b1a/40dd67b1aed6b3241312503f31be2a0c.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Мы тут в Cozystack в очередной раз решаем проблему курицы и яйца: как задеплоить CNI и kube-proxy через Flux, но при этом обеспечить работу самого flux без CNI и kube-proxy.&lt;/p&gt;
&lt;p&gt;Сам Flux запустить без CNI и kube-proxy можно используя проект flux-aio (от создателя Flux), который запускает единый deployment со всеми контроллерами настроенными на коммуникацию друг с другом через localhost.&lt;/p&gt;
&lt;p&gt;Специфика Cozystack заключается в том, что на каждый кластер мы деплоим внутри небольшой HTTP-сервер с Helm-чартами и другими ассетами используемыми в платформе. Flux эти чарты читает и устанавливает в систему.&lt;/p&gt;</description></item><item><title>Cozypkg: как мы упростили локальную разработку с Helm + Flux</title><link>https://kvaps.github.io/ru/2025/06/cozypkg-%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D1%83%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83-%D1%81-helm--flux/</link><pubDate>Wed, 18 Jun 2025 17:41:10 +0000</pubDate><guid>https://kvaps.github.io/ru/2025/06/cozypkg-%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D1%83%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83-%D1%81-helm--flux/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/1b2/6bd/2a8/1b26bd2a8ec9befd63bcf4f8eccaa42b.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет! Я Андрей Квапил (или kvaps) и в этой статье я опишу наш путь организации доставки приложений в Kubernetes, объясню недостатки классического GitOps в локальной разработке и покажу, как новая утилита &lt;a href="https://github.com/cozystack/cozypkg"&gt;cozypkg&lt;/a&gt; решает эти проблемы. Материал рассчитан на разработчиков, знакомых с Helm и Flux.&lt;/p&gt;
&lt;p&gt;У нас есть общий репозиторий — в нем мы описываем общую конфигурацию всех компонентов, а также темплейты для их деплоя. Для того чтобы максимально упростить процесс поддержки каждого из компонентов, мы следуем определенному процессу.В основе этого процесса лежит идея о том, что каждый компонент — это Helm-чарт**. **&lt;/p&gt;</description></item><item><title>Эволюция платформ виртуализации: как мы пришли к миру managed-сервисов и как сервис-провайдерам конкурировать с AWS</title><link>https://kvaps.github.io/ru/2025/06/%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D0%BF%D1%80%D0%B8%D1%88%D0%BB%D0%B8-%D0%BA-%D0%BC%D0%B8%D1%80%D1%83-managed-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2-%D0%B8-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0%D0%BC-%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81-aws/</link><pubDate>Wed, 04 Jun 2025 08:03:58 +0000</pubDate><guid>https://kvaps.github.io/ru/2025/06/%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D0%BF%D1%80%D0%B8%D1%88%D0%BB%D0%B8-%D0%BA-%D0%BC%D0%B8%D1%80%D1%83-managed-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2-%D0%B8-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0%D0%BC-%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81-aws/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/0bd/6ff/e47/0bd6ffe4762fa853d6467e8b7a7847f4.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет! Меня зовут Андрей Квапил (или kvaps). Я CEO в Ænix, и мы делаем Open Source-платформу и фреймворк Cozystack, с которым очень удобно строить облака.&lt;/p&gt;
&lt;p&gt;В этой статье я проанализировал, как современные облачные подходы повлияли на инфраструктуру, какую роль стала играть виртуализация, кто такие «питомцы» и что происходит с локальными сервис-провайдерами.&lt;/p&gt;</description></item><item><title>Простой способ установки Talos Linux на любую машину и у любого провайдера</title><link>https://kvaps.github.io/ru/2025/04/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-talos-linux-%D0%BD%D0%B0-%D0%BB%D1%8E%D0%B1%D1%83%D1%8E-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%83-%D0%B8-%D1%83-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0/</link><pubDate>Wed, 16 Apr 2025 06:28:04 +0000</pubDate><guid>https://kvaps.github.io/ru/2025/04/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-talos-linux-%D0%BD%D0%B0-%D0%BB%D1%8E%D0%B1%D1%83%D1%8E-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%83-%D0%B8-%D1%83-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/312/4f2/2ac/3124f22acff4fef4c7779d180d73a9df.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Обычно Talos Linux предоставляется в виде набора готовых образов под различные системы. &lt;/p&gt;
&lt;p&gt;Стандартный метод установки предполагает, что вы возьмёте подготовленный образ под конкретное облако или гипервизор и просто создадите из него виртуальную машину. Если же говорить о физических серверах, то предполагается, что для загрузки образа Talos Linux и последующей установки вы будете использовать ISO или PXE.&lt;/p&gt;
&lt;p&gt;К сожалению, это не работает, когда речь заходит о провайдерах, которые предоставляют преднастроенный сервер или виртуальную машину без возможности использовать кастомный образ или даже ISO для установки через KVM. В этом случае ваш выбор будет ограничен лишь теми дистрибутивами, которые предлагает облачный провайдер.&lt;/p&gt;</description></item><item><title>Как мы создавали динамический Kubernetes API server для API Aggregation Layer в Cozystack</title><link>https://kvaps.github.io/ru/2024/11/%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D0%BB%D0%B8-%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-kubernetes-api-server-%D0%B4%D0%BB%D1%8F-api-aggregation-layer-%D0%B2-cozystack/</link><pubDate>Tue, 26 Nov 2024 11:28:40 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/11/%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D0%BB%D0%B8-%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-kubernetes-api-server-%D0%B4%D0%BB%D1%8F-api-aggregation-layer-%D0%B2-cozystack/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/ef4/892/4ae/ef48924aeece5591835a65f911cfb7ef.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Kubernetes действительно поражает своими могучими возможностями к расширению. Вы наверняка уже знаете про &lt;a href="https://kubernetes.io/docs/concepts/extend-kubernetes/operator/"&gt;operator-паттерн&lt;/a&gt;, а также фреймворки &lt;a href="https://book.kubebuilder.io/"&gt;kubebuilder&lt;/a&gt; и &lt;a href="https://sdk.operatorframework.io/"&gt;operator-sdk&lt;/a&gt; с помощью которых можно его реализовать. Если вкратце, то они позволяют расширять ваш Kubernetes через определение кастом-ресурсов (CRDs) и написание дополнительного контроллера, который будет выполнять вашу бизнес-логику для реконсиляции и управления этими ресурсами. Этот подход широко изучен, а в интернете можно найти огромное количество информации о том, как написать такой оператор.&lt;/p&gt;
&lt;p&gt;Однако это &lt;a href="https://kubernetes.io/docs/concepts/extend-kubernetes/#api-extensions"&gt;не единственный метод&lt;/a&gt; расширения Kubernetes API. Так, для более сложных кейсов, например реализации императивной логики, сабресурсов и формирования ответов на лету, можно рассмотреть механизм API aggregation layer, который поддерживается в Kubernetes. В рамках aggregation layer можно разработать свой собственный extension API server и бесшовно интегрировать его в общий Kubernetes API.&lt;/p&gt;</description></item><item><title>FreeIPA tips &amp;amp; tricks: перенос FreeIPA из LXC-контейнера CentOS 7 в Rocky Linux, дебаг и истекшие сертификаты</title><link>https://kvaps.github.io/ru/2024/07/freeipa-tips-amp-tricks-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-freeipa-%D0%B8%D0%B7-lxc-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-centos-7-%D0%B2-rocky-linux-%D0%B4%D0%B5%D0%B1%D0%B0%D0%B3-%D0%B8-%D0%B8%D1%81%D1%82%D0%B5%D0%BA%D1%88%D0%B8%D0%B5-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B/</link><pubDate>Wed, 31 Jul 2024 12:13:04 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/07/freeipa-tips-amp-tricks-%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-freeipa-%D0%B8%D0%B7-lxc-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-centos-7-%D0%B2-rocky-linux-%D0%B4%D0%B5%D0%B1%D0%B0%D0%B3-%D0%B8-%D0%B8%D1%81%D1%82%D0%B5%D0%BA%D1%88%D0%B8%D0%B5-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/99d/438/534/99d438534aa338f51a3a846701cf8a14.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Недавно мне довелось обновлять старую FreeIPA в большой компании. Эта FreeIPA была установлена в LXC-контейнере на CentOS 7 и находилась в нерабочем состоянии уже несколько месяцев. Мне передали бэкап LXC-контейнера для Proxmox, и я взялся за дело.&lt;/p&gt;</description></item><item><title>Первый альфа-выпуск etcd-оператора для Kubernetes</title><link>https://kvaps.github.io/ru/2024/03/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-%D0%B0%D0%BB%D1%8C%D1%84%D0%B0-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-etcd-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%B4%D0%BB%D1%8F-kubernetes/</link><pubDate>Sat, 23 Mar 2024 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/03/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-%D0%B0%D0%BB%D1%8C%D1%84%D0%B0-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-etcd-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%B4%D0%BB%D1%8F-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://github.com/etcd-io/etcd/raw/main/logos/etcd-horizontal-color.svg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/aenix-io/etcd-operator/releases/tag/v0.0.1"&gt;Опубликована&lt;/a&gt; первая альфа-версия проекта &lt;a href="https://etcd.aenix.io/"&gt;etcd-operator&lt;/a&gt;, развивающего инструментарий для упрощения развёртывания распределённого хранилища &lt;a href="https://github.com/etcd-io/etcd"&gt;etcd&lt;/a&gt; в окружении Kubernetes и управления кластерами etcd. Инструментарий может решать такие задачи, как развёртывание, настройка, управление, масштабирование и восстановление в случае сбоев. Конфигурация задаётся в формате YAML. Код проекта написан на языке Go и &lt;a href="https://github.com/aenix-io/etcd-operator"&gt;распространяется&lt;/a&gt; под лицензией Apache 2.0.&lt;/p&gt;</description></item><item><title>DIY: Ваше собственное облако на базе Kubernetes (часть 3)</title><link>https://kvaps.github.io/ru/2024/03/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-3/</link><pubDate>Mon, 11 Mar 2024 04:02:28 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/03/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-3/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/fb7/364/f79/fb7364f79d054dee643232f5cec7f26f.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Вот мы и подобрались к самому интересному: запуску Kubernetes в Kubernetes. В этой статье мы поговорим о таких технологиях, как Kamaji и Cluster API, а также о том, как интегрировать их с KubeVirt.&lt;/p&gt;
&lt;p&gt;В прошлых статьях мы уже рассказывали, &lt;a href="https://habr.com/ru/companies/aenix/articles/795791/"&gt;как мы готовим Kubernetes на bare metal&lt;/a&gt;, и о том, &lt;a href="https://habr.com/ru/companies/aenix/articles/797323/"&gt;как превратить Kubernetes в средство запуска виртуальных машин&lt;/a&gt;. Эта статья завершает серию, объясняя, как, используя всё вышеперечисленное, можно построить полноценный managed Kubernetes service и запускать виртуальные Kubernetes-кластеры по клику.&lt;/p&gt;</description></item><item><title>DIY: Ваше собственное облако на базе Kubernetes (часть 2)</title><link>https://kvaps.github.io/ru/2024/03/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2/</link><pubDate>Fri, 01 Mar 2024 12:50:54 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/03/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-2/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/6a4/125/b3a/6a4125b3a900bf66216ab0ed86feba00.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Продолжаем серию постов про то как построить своё собственное облако в экосистеме Kubernetes. В прошлой статье мы разобрали как можно подготовить базовый дистрибутив Kubernetes на базе Talos Linux и Flux CD. Теперь нам предстоит обсудить возможность запуска виртуальных машин и всего что для этого необходимо, а это в первую очередь хранилище и сеть.&lt;/p&gt;
&lt;p&gt;Мы поговорим про такие технологии как KubeVirt, LINSTOR и Kube-OVN&lt;/p&gt;
&lt;p&gt;Для начала мне стоит рассказать зачем вообще нужны виртуальные машины, почему бы нам не ограничиться только-лишь контейнерами?&lt;/p&gt;</description></item><item><title>Argo CD vs Flux CD</title><link>https://kvaps.github.io/ru/2024/02/argo-cd-vs-flux-cd/</link><pubDate>Wed, 28 Feb 2024 11:53:33 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/02/argo-cd-vs-flux-cd/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/2f/20/1d/2f201dtcplnmaf7_fqziicb7m2w.jpeg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;За последнее время я вижу всё больше споров на тему двух популярных GitOps инструментов: Argo CD и Flux CD.&lt;/p&gt;
&lt;p&gt;На самом деле я считаю такие споры необоснованными, потому что глубоко убеждён что внимания заслуживают оба инструмента и каждый из них хорош для решения своего круга задач.&lt;/p&gt;
&lt;p&gt;В своей профессиональной деятельности я активно использую и тот и другой. Я хочу поделиться с вами своим мнением и кейсами использования. Надеюсь эта статья поможет вам выбрать наиболее подходящий инструмент под ваши нужды.&lt;/p&gt;</description></item><item><title>DIY: Ваше собственное облако на базе Kubernetes (часть 1)</title><link>https://kvaps.github.io/ru/2024/02/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1/</link><pubDate>Fri, 23 Feb 2024 12:32:26 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/02/diy-%D0%B2%D0%B0%D1%88%D0%B5-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/64f/fb4/044/64ffb4044c0fddbfde311422899698cc.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;А вы когда-нибудь задумывались о том чтобы построить своё собственное облако? Могу поспорить что да. Но можно ли это сделать используя лишь современные технологии и подходы, не покидая уютной экосистемы Kubernetes? Нам по опыту разработки Cozystack пришлось с ним как следует разобраться.&lt;/p&gt;
&lt;p&gt;Да, вы могли бы возразить что Kubernetes для этого не предназначен и почему бы не использовать OpenStack для Bare Metal-серверов а внутри него запускать Kubernetes как положено. Но поступив так, вы просто переложите ответственность с ваших рук на руки OpenStack администраторов. Что добавит как-минимум ещё одну сложную и неповоротливую систему в вашу экосистему.&lt;/p&gt;</description></item><item><title>Первый выпуск свободной PaaS-платформы Cozystack на базе Kubernetes</title><link>https://kvaps.github.io/ru/2024/02/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-paas-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-cozystack-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/02/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-paas-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-cozystack-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1708509228.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/aenix-io/cozystack/releases/tag/v0.1.0"&gt;Опубликован&lt;/a&gt; первый выпуск свободной PaaS-платформы &lt;a href="https://github.com/aenix-io/cozystack"&gt;Cozystack&lt;/a&gt; на базе Kubernetes. Проект позиционирует себя как готовую платформу для хостинг провайдеров и фреймворк для построения частных и публичных облаков. Платформа устанавливается напрямую на сервера и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять по требованию Kubernetes-кластеры, базы данных и виртуальные машины. Код платформы доступен на GitHub и &lt;a href="https://github.com/aenix-io/cozystack"&gt;распространяется&lt;/a&gt; под лицензией Apache-2.0.&lt;/p&gt;</description></item><item><title>Как построить платформу для managed Kubernetes и DB-as-a-Service</title><link>https://kvaps.github.io/ru/2024/02/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%83-%D0%B4%D0%BB%D1%8F-managed-kubernetes-%D0%B8-db-as-a-service/</link><pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/02/%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%83-%D0%B4%D0%BB%D1%8F-managed-kubernetes-%D0%B8-db-as-a-service/</guid><description>&lt;p&gt;&lt;img src="https://pbs.twimg.com/media/FHW6IDJVcAAUOII?format=jpg&amp;amp;name=small" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Опыт построения платформы Cozystack.&lt;/p&gt;
&lt;p&gt;Почему Talos Linux - это лучший выбор для вендора.&lt;/p&gt;
&lt;p&gt;Возможна ли мультитенантность в Kubernetes?&lt;/p&gt;
&lt;p&gt;Запуск кластеров по кнопке, без OpenStack и какой-то матери.&lt;/p&gt;
&lt;p&gt;Паттерн Kubernetes-in-Kubernetes и его практическая реализация с KubeVirt и Cluster API.&lt;/p&gt;
&lt;p&gt;Технологии о которых пойдёт речь:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Talos Linux&lt;/li&gt;
&lt;li&gt;Flux CD&lt;/li&gt;
&lt;li&gt;KubeVirt&lt;/li&gt;
&lt;li&gt;Cluster API&lt;/li&gt;
&lt;li&gt;Kube-OVN&lt;/li&gt;
&lt;li&gt;Kamaji&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Глупые вопросы про Git и системы контроля версий</title><link>https://kvaps.github.io/ru/2024/01/%D0%B3%D0%BB%D1%83%D0%BF%D1%8B%D0%B5-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D1%80%D0%BE-git-%D0%B8-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2024/01/%D0%B3%D0%BB%D1%83%D0%BF%D1%8B%D0%B5-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D1%80%D0%BE-git-%D0%B8-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9/</guid><description>&lt;p&gt;&lt;img src="https://img.youtube.com/vi/HeA_baDiEYQ/maxresdefault.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Содержание выпуска&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Что такое системы контроля версий и для чего они нужны. Какие VCS существуют и чем они различаются.&lt;/li&gt;
&lt;li&gt;История VCS: когда появились первые системы, какие они были и как развивались.&lt;/li&gt;
&lt;li&gt;Как появление систем контроля версий, и в частности Git, повлияло на IT-индустрию.&lt;/li&gt;
&lt;li&gt;Что такое Git и почему он стал самой популярной VCS.&lt;/li&gt;
&lt;li&gt;Как связаны Git и GitHub.&lt;/li&gt;
&lt;li&gt;Краткий ликбез по основным компонентам и концепциям Git: репозитории, ветки, коммиты и так далее.&lt;/li&gt;
&lt;li&gt;Как устроен Git изнутри: что представляет собой версия документа, где и в каком виде хранятся данные о версиях.&lt;/li&gt;
&lt;li&gt;В чём разница между git merge, squash и rebase? И когда что использовать.&lt;/li&gt;
&lt;li&gt;Мастхэв-набор команд и действий в Git для любого разработчика.&lt;/li&gt;
&lt;li&gt;Что такое GitOps.&lt;/li&gt;
&lt;li&gt;Как выглядит Git workflow в разных компаниях.&lt;/li&gt;
&lt;li&gt;Какие ошибки совершают новички при работе с Git.&lt;/li&gt;
&lt;li&gt;Про графические инструменты для работы с Git.&lt;/li&gt;
&lt;li&gt;Существуют ли альтернативные способы разработки, без использования систем контроля версий.&lt;/li&gt;
&lt;li&gt;VCS — это только про разработку или их используют ещё где-то?&lt;/li&gt;
&lt;li&gt;Что почитать, посмотреть и послушать про Git.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Гость. Андрей Квапил. Архитектор решений Kubernetes. Эксперт по SDS, SDN, облачным платформам и автоматизации дата-центров. Developer Advocate и активный член комьюнити. Опыт в IT — 10 лет.&lt;/p&gt;</description></item><item><title>Restic: эффективное резервное копирование из Stdin</title><link>https://kvaps.github.io/ru/2023/10/restic-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5-%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7-stdin/</link><pubDate>Tue, 24 Oct 2023 13:20:19 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/10/restic-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5-%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5-%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7-stdin/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/089/e74/c08/089e74c08dad86a266fa154d5fe169a5.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Про restic я уже рассказывал в статье &lt;a href="https://habr.com/ru/articles/504152/"&gt;Бэкап-хранилище для тысяч виртуальных машин свободными инструментами&lt;/a&gt;, с тех пор он остаётся моим любимым инструментом для бэкапа.&lt;/p&gt;
&lt;p&gt;Сегодня я опишу вам готовый рецепт того как настроить эффективное бэкапирование чего угодно прямо из stdin, с дедупликацией и автоматической очисткой репозитория от старых копий.&lt;/p&gt;
&lt;p&gt;Несмотря на то, что restic отлично подходит для сохранения целых каталогов с данными в этой статье мне хотелось бы сделать упор на сохранении резервных копий на лету прямо из Stdin.&lt;/p&gt;</description></item><item><title>LVM+QCOW2, или Попытка создать идеальный CSI-драйвер для shared SAN в Kubernetes</title><link>https://kvaps.github.io/ru/2023/09/lvm-qcow2-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B0-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-csi-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B4%D0%BB%D1%8F-shared-san-%D0%B2-kubernetes/</link><pubDate>Fri, 01 Sep 2023 06:49:24 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/09/lvm-qcow2-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B0-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-csi-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80-%D0%B4%D0%BB%D1%8F-shared-san-%D0%B2-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/a3c/872/0fb/a3c8720fb97299f358bc05778f98941f.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Несколько месяцев назад у нас появилась необходимость разработать CSI-драйвер для Kubernetes, который в первую очередь использовался бы для хранения дисков виртуальных машин в &lt;a href="https://deckhouse.ru/documentation/v1/modules/490-virtualization/"&gt;Deckhouse Virtualization&lt;/a&gt;, но также мог бы использоваться и со стандартными контейнерами в Kubernetes. У оборудования наших заказчиков, как правило, есть определенная специфика — чаще всего это классическая SAN (Storage Area Network) с внешним хранилищем и общим shared LUN, который выделяется на несколько узлов. На одном LUN одновременно работает несколько виртуальных машин или контейнеров.&lt;/p&gt;</description></item><item><title>[Перевод] Эволюция технологий виртуализации сети в Linux</title><link>https://kvaps.github.io/ru/2023/08/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B9-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D1%81%D0%B5%D1%82%D0%B8-%D0%B2-linux/</link><pubDate>Fri, 25 Aug 2023 07:14:08 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/08/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B9-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D1%81%D0%B5%D1%82%D0%B8-%D0%B2-linux/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/178/3aa/f8c/1783aaf8c3f86c2c54078321ae99fe87.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Виртуализация оборудования — одна из важнейших и фундаментальных технологий в области облачных вычислений. Без нее не смогло бы работать ни одно «устройство» внутри виртуальных машин: ни сетевая карта, ни диск, ни клавиатура, ни мышь и т. п. В статье мы проследим развитие технологий виртуализации оборудования в Linux.&lt;/p&gt;</description></item><item><title>KubeVirt: внутреннее устройство и сеть. Как достигнуть совершенства? (обзор и видео доклада)</title><link>https://kvaps.github.io/ru/2023/07/kubevirt-%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%82%D1%8C.-%D0%BA%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D0%B3%D0%BD%D1%83%D1%82%D1%8C-%D1%81%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%B0-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0/</link><pubDate>Tue, 04 Jul 2023 06:45:39 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/07/kubevirt-%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE-%D0%B8-%D1%81%D0%B5%D1%82%D1%8C.-%D0%BA%D0%B0%D0%BA-%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D0%B3%D0%BD%D1%83%D1%82%D1%8C-%D1%81%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%B0-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/81e/5d1/da7/81e5d1da7ecbc467b6fa474e8c203716.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Всем, привет! Я Андрей Квапил, работаю во «Фланте» над Kubernetes-платформой &lt;a href="https://deckhouse.ru/"&gt;Deckhouse&lt;/a&gt;. Это статья по мотивам моего доклада о разработке нашей системы виртуализации на основе KubeVirt. Я расскажу, какие альтернативы KubeVirt мы рассматривали, чем они нас не устроили, как устроен KubeVirt, как он работает с файловыми хранилищами, сетью и о том, как происходит запуск виртуальных машин внутри Kubernetes. А еще — какие изменения мы внесли в KubeVirt, чтобы он полностью соответствовал нашим задачам. Будет сложно, но интересно. &lt;/p&gt;</description></item><item><title>[Перевод] Внутреннее устройство DRBD: алгоритмы работы отказоустойчивого хранилища</title><link>https://kvaps.github.io/ru/2023/06/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE-drbd-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D0%B3%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0/</link><pubDate>Fri, 02 Jun 2023 10:07:47 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/06/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D0%B5%D0%B5-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE-drbd-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D0%B3%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/gd/bo/1j/gdbo1jhxybtgvjoulpwef2fhk_k.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Глубокое понимание внутреннего устройства DRBD позволяет более тонко настраивать работу системы и правильно планировать ресурсы. К счастью, у команды DRBD уже есть отличная документация, которая довольно подробно разбирает эту тему. Мы опирались на нее в своей работе, и решили перевести и выложить в открытом доступе 17-ю главу — как удобную шпаргалку по внутреннему устройству DRBD. Так что это не обычная статья, а перевод части официальной документации (исходная нумерация разделов сохранена).&lt;/em&gt;&lt;/p&gt;</description></item><item><title>LINSTOR — это как Kubernetes, но для блочных устройств / Андрей Квапил (Флант)</title><link>https://kvaps.github.io/ru/2023/03/linstor-%D1%8D%D1%82%D0%BE-%D0%BA%D0%B0%D0%BA-kubernetes-%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D1%87%D0%BD%D1%8B%D1%85-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-%D1%84%D0%BB%D0%B0%D0%BD%D1%82/</link><pubDate>Fri, 31 Mar 2023 12:09:17 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/03/linstor-%D1%8D%D1%82%D0%BE-%D0%BA%D0%B0%D0%BA-kubernetes-%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D1%87%D0%BD%D1%8B%D1%85-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-%D1%84%D0%BB%D0%B0%D0%BD%D1%82/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/lP81w7yr8dI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;h2 id="программа-подробности-и-билеты-по-ссылке"&gt;Приглашаем на DevOpsConf 2025, которая пройдет 7 и 8 апреля 2025 в Сколково в Москве.
Программа, подробности и билеты по ссылке: &lt;a href="https://devopsconf.io/moscow/2025"&gt;https://devopsconf.io/moscow/2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Объединенная конференция DevOpsConf и TechLead Conf
13 и 14 июня 2022&lt;/p&gt;
&lt;p&gt;Тезисы и презентация:
&lt;a href="https://devopsconf.io/moscow/2022/abstracts/7948"&gt;https://devopsconf.io/moscow/2022/abstracts/7948&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="heading"&gt;В этом докладе поговорим про LINSTOR — open source-хранилище от компании LINBIT (разработчика DRBD).
&amp;hellip;&lt;/h2&gt;
&lt;p&gt;Нашли ошибку в видео? Пишите нам на &lt;a href="mailto:support@ontico.ru"&gt;support@ontico.ru&lt;/a&gt;&lt;/p&gt;</description></item><item><title>В Kubernetes-платформе Deckhouse появилась система виртуализации нового поколения</title><link>https://kvaps.github.io/ru/2023/02/%D0%B2-kubernetes-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5-deckhouse-%D0%BF%D0%BE%D1%8F%D0%B2%D0%B8%D0%BB%D0%B0%D1%81%D1%8C-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BA%D0%BE%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/</link><pubDate>Tue, 28 Feb 2023 09:39:44 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/02/%D0%B2-kubernetes-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5-deckhouse-%D0%BF%D0%BE%D1%8F%D0%B2%D0%B8%D0%BB%D0%B0%D1%81%D1%8C-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BA%D0%BE%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/627/99f/3c3/62799f3c38613d1aa03a53f022af847d.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет, Хабр! Сегодня у меня для вас отличные новости. В последние несколько лет мы во «Фланте» внимательно следили за технологиями‑лидерами в cloud‑native. Но это вовсе не праздное любопытство: из них мы собрали кое‑что интересное и теперь готовы представить его вам. Речь о новой системе виртуализации, которая появилась в сегодняшнем релизе Deckhouse v1.43.&lt;/p&gt;</description></item><item><title>Шпаргалка по отладке LINSTOR в Kubernetes</title><link>https://kvaps.github.io/ru/2023/01/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-linstor-%D0%B2-kubernetes/</link><pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2023/01/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-linstor-%D0%B2-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://deckhouse.ru/documentation/latest/images/041-linstor/linstor-debug-cheatsheet.svg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;(специально для платформы &lt;a href="https://deckhouse.ru"&gt;Deckhouse&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>GitOps — что это такое и с чем его едят?</title><link>https://kvaps.github.io/ru/2022/09/gitops-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82/</link><pubDate>Thu, 29 Sep 2022 07:40:05 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/09/gitops-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/d73/899/d9f/d73899d9f33419b4005cc1cc4a978d25.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;На самом деле почти никто не знает, что такое GitOps. Я тоже заблуждался, пока не начал готовить доклад, а потом статью по этой теме. Самое распространенное определение GitOps — это «хранение состояния в Git», но оно не единственное и не самое главное. Это звучное словечко  придумали в Weaveworks, но его название несколько разнится с его реальным пониманием. Созвучие с DevOps — скорее, маркетинговый ход, чем реальное отражение сущности. Основная идея GitOps в том, что помимо хранения состояния в Git, у нас есть непрерывный процесс его синхронизации с реальным миром, то есть, что у вас Kubernetes-кластере или где либо ещё в вашем окружении.&lt;/p&gt;</description></item><item><title>LINSTOR — это как Kubernetes, но для блочных устройств (обзор и видео доклада)</title><link>https://kvaps.github.io/ru/2022/08/linstor-%D1%8D%D1%82%D0%BE-%D0%BA%D0%B0%D0%BA-kubernetes-%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D1%87%D0%BD%D1%8B%D1%85-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0/</link><pubDate>Fri, 12 Aug 2022 07:28:37 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/08/linstor-%D1%8D%D1%82%D0%BE-%D0%BA%D0%B0%D0%BA-kubernetes-%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B1%D0%BB%D0%BE%D1%87%D0%BD%D1%8B%D1%85-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/97a/3ab/82a/97a3ab82a41b50da48ad90a3a39e9893.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;В июне я выступил на объединенной конференции &lt;a href="https://devopsconf.io/moscow/2022/abstracts/7948"&gt;DevOpsConf &amp;amp; TechLead Conf 2022&lt;/a&gt;. Доклад был посвящен LINSTOR — Open Source-хранилищу от компании LINBIT (разработчики DRBD). Основной идеей выступления было показать [на примере Kubernetes], как работает и устроен LINSTOR, какие проблемы решает, как его правильно настроить и использовать. Эта статья — основная выжимка из доклада (его полное видео см. в конце).&lt;/p&gt;</description></item><item><title>Снапшоты в Kubernetes: что это и как ими пользоваться</title><link>https://kvaps.github.io/ru/2022/08/%D1%81%D0%BD%D0%B0%D0%BF%D1%88%D0%BE%D1%82%D1%8B-%D0%B2-kubernetes-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%BC%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F/</link><pubDate>Fri, 05 Aug 2022 07:11:13 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/08/%D1%81%D0%BD%D0%B0%D0%BF%D1%88%D0%BE%D1%82%D1%8B-%D0%B2-kubernetes-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B8-%D0%BA%D0%B0%D0%BA-%D0%B8%D0%BC%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/xq/2k/dx/xq2kdxlztck5dg38pemdttdywje.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;С появлением snapshot-controller в Kubernetes появилась возможность создавать снапшоты для совместимых с ними CSI-драйверов и облачных провайдеров.&lt;/p&gt;
&lt;p&gt;Как и всё в Kubernetes, имплементация API является универсальной и не зависит от какого-либо вендора, что позволяет нам рассмотреть данный функционал в общем порядке. Как же устроены снапшоты и какую пользу они могут принести пользователям Kubernetes?&lt;/p&gt;</description></item><item><title>How cloud computing changed the way of our mind</title><link>https://kvaps.github.io/ru/2022/07/how-cloud-computing-changed-the-way-of-our-mind/</link><pubDate>Wed, 06 Jul 2022 10:08:14 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/07/how-cloud-computing-changed-the-way-of-our-mind/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZUeGxBoij7c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Nowadays the market offers a huge number of virtualization solutions.
In this presentation we&amp;rsquo;ll take a look at application design approaches and explore the difference between virtualization and cloud computing. And take a look at IaC, Kubernetes and Terraform.&lt;/p&gt;
&lt;p&gt;Talk by Andrei Kvapil, #Flant solutions architect, for #OpenNebulaCon2022.&lt;/p&gt;</description></item><item><title>Kubernetes-in-Kubernetes и ферма серверов с загрузкой по PXE / Андрей Квапил (WEDOS Internet, a.s)</title><link>https://kvaps.github.io/ru/2022/07/kubernetes-in-kubernetes-%D0%B8-%D1%84%D0%B5%D1%80%D0%BC%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2-%D1%81-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%BE%D0%B9-%D0%BF%D0%BE-pxe-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-internet-a.s/</link><pubDate>Fri, 01 Jul 2022 14:10:40 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/07/kubernetes-in-kubernetes-%D0%B8-%D1%84%D0%B5%D1%80%D0%BC%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2-%D1%81-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%BE%D0%B9-%D0%BF%D0%BE-pxe-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-internet-a.s/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/FDdPProqE8g?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;h2 id="программа-подробности-и-билеты-по-ссылке"&gt;Приглашаем на DevOpsConf 2025, которая пройдет 7 и 8 апреля 2025 в Сколково в Москве.
Программа, подробности и билеты по ссылке: &lt;a href="https://devopsconf.io/moscow/2025"&gt;https://devopsconf.io/moscow/2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Профессиональная конференция по интеграции процессов разработки, тестирования и эксплуатации DevOps Live 2020&lt;/p&gt;
&lt;p&gt;Тезисы и презентация:
&lt;a href="https://devopsconf.io/moscow/2020/abstracts/7110"&gt;https://devopsconf.io/moscow/2020/abstracts/7110&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В докладе я расскажу о двух свободных проектах: Kubernetes-in-Kubernetes и Kubefarm, которые мы используем для быстрого развёртывания Kubernetes-кластеров на собственном оборудовании.&lt;/p&gt;</description></item><item><title>Panel discussion: Current state of Open Source - DevConf.cz Mini | June 2022</title><link>https://kvaps.github.io/ru/2022/06/panel-discussion-current-state-of-open-source-devconf.cz-mini-june-2022/</link><pubDate>Tue, 28 Jun 2022 12:52:54 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/06/panel-discussion-current-state-of-open-source-devconf.cz-mini-june-2022/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/SjGj9weIigo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Panellists: Anežka Müller, Aliaksandr Valialkin, Andrey Kvapil
Moderator: Vadim Rutkovsky&lt;/p&gt;
&lt;p&gt;What has changed in the open-source communities after 2 years of lockdown? What are the threats and opportunities for open-source communities right now? We&amp;rsquo;ll discuss this and much more with the local open-source contributors and leaders.&lt;/p&gt;</description></item><item><title>GitOps — что это такое и с чем его едят? / Андрей Квапил (kvaps) (WEDOS Internet, a.s.)</title><link>https://kvaps.github.io/ru/2022/06/gitops-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-kvaps-wedos-internet-a.s./</link><pubDate>Thu, 09 Jun 2022 09:28:46 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/06/gitops-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%B8-%D1%81-%D1%87%D0%B5%D0%BC-%D0%B5%D0%B3%D0%BE-%D0%B5%D0%B4%D1%8F%D1%82-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-kvaps-wedos-internet-a.s./</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/FpjCuslco74?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;h2 id="программа-подробности-и-билеты-по-ссылке"&gt;Приглашаем на DevOpsConf 2025, которая пройдет 7 и 8 апреля 2025 в Сколково в Москве.
Программа, подробности и билеты по ссылке: &lt;a href="https://devopsconf.io/moscow/2025"&gt;https://devopsconf.io/moscow/2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DevOpsConf 2021
Профессиональная конференция по интеграции процессов разработки, тестирования и эксплуатации
31 мая 2021 и 1 июня 2021 Москва, Radisson Slavyanskaya&lt;/p&gt;
&lt;p&gt;Тезисы и презентация:
&lt;a href="https://devopsconf.io/moscow/2021/abstracts/7482"&gt;https://devopsconf.io/moscow/2021/abstracts/7482&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Исследование производительности свободных хранилищ LINSTOR, Ceph, Mayastor и Vitastor в Kubernetes</title><link>https://kvaps.github.io/ru/2022/05/%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D1%85-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89-linstor-ceph-mayastor-%D0%B8-vitastor-%D0%B2-kubernetes/</link><pubDate>Thu, 05 May 2022 06:27:32 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/05/%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D1%85-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89-linstor-ceph-mayastor-%D0%B8-vitastor-%D0%B2-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/fba/934/43b/fba93443bb66510caf570f29e421fc88.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Кажется это уже стало традицией: каждый раз, когда я выхожу на новое рабочее место, моя деятельность начинается с бенчмарков различных SDS-решений. Мой приход во «Флант» не стал исключением. Я попал в команду разработки Kubernetes-платформы &lt;a href="https://deckhouse.io/"&gt;Deckhouse&lt;/a&gt;, где решили развивать возможность запуска виртуальных машин в Kubernetes. Но для этого сначала потребовалось найти простое и надежное хранилище блочного типа, которое можно предложить клиентам платформы.&lt;/p&gt;
&lt;p&gt;Я взял несколько свободных решений и протестировал, как они поведут себя в тех или иных условиях. В первую очередь интересовала производительность DRBD в различных конфигурациях и сравнение с Ceph.&lt;/p&gt;</description></item><item><title>DevOps Backstage: K8S CSI с Андреем Квапилом</title><link>https://kvaps.github.io/ru/2022/04/devops-backstage-k8s-csi-%D1%81-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%BC-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB%D0%BE%D0%BC/</link><pubDate>Fri, 22 Apr 2022 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/04/devops-backstage-k8s-csi-%D1%81-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%BC-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB%D0%BE%D0%BC/</guid><description>&lt;p&gt;&lt;img src="https://pbs.twimg.com/media/FHW6IDJVcAAUOII?format=jpg&amp;amp;name=small" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Сохраняем традицию пятничного подкаста
Почувствуйте легкое намякивание на event про тёплые беседы о сторадже в kubernetes&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://t.me/kvaps"&gt;@kvaps&lt;/a&gt; Андрей Квапил&lt;/em&gt; Андрей Квапил в режиме ReadOne ListenMany сохранит для вас следующую информацию:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Зачем вообще нужен сторадж в Kubernetes&lt;/li&gt;
&lt;li&gt;Три типа хранилищ&lt;/li&gt;
&lt;li&gt;Вам не нужен ReadWriteMany&lt;/li&gt;
&lt;li&gt;Local volumes или hostPath, local path provisioner в чем разница?&lt;/li&gt;
&lt;li&gt;Как появился и что представляет собой CSI&lt;/li&gt;
&lt;li&gt;Как работают снапшоты в Kubernetes&lt;/li&gt;
&lt;li&gt;Data locality и кастомный шедулинг подов в кластере&lt;/li&gt;
&lt;li&gt;Впечатления от Ceph, LINSTOR и Mayastor&lt;/li&gt;
&lt;li&gt;Блочные тома в Kubernetes и их необычные свойства&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В прямом эфире в пятницу 22/04 в 20:00&lt;/p&gt;</description></item><item><title>«Меняем коней на переправе»: опыт замены компонентов Kubernetes на работающем кластере</title><link>https://kvaps.github.io/ru/2022/04/%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC-%D0%BA%D0%BE%D0%BD%D0%B5%D0%B9-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B5-%D0%BE%D0%BF%D1%8B%D1%82-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%8B-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-kubernetes-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%89%D0%B5%D0%BC-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B5/</link><pubDate>Fri, 01 Apr 2022 08:37:30 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/04/%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC-%D0%BA%D0%BE%D0%BD%D0%B5%D0%B9-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B5-%D0%BE%D0%BF%D1%8B%D1%82-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%8B-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-kubernetes-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%89%D0%B5%D0%BC-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B5/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/ch/gl/xn/chglxn53qb8qqo-hou3qxtcx5xc.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fix by &lt;a href="https://www.deviantart.com/macrebisz"&gt;MacRebisz&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Привет, я Андрей Квапил, Solution Architect в компании «Флант». Моя специализация — архитектурные решения на базе Kubernetes, в том числе на bare metal, а также разработка и эксплуатация облачных платформ и software-defined storage. &lt;/p&gt;
&lt;p&gt;В Kubernetes часто можно столкнуться с ограничениями, immutable-полями и прочими особенностями. Я хочу показать, что при необходимости такие ограничения можно обходить, а также познакомить вас с паттерном controller и наглядно продемонстрировать работу CNI-, CSI- и CRI-плагинов.&lt;/p&gt;</description></item><item><title>В поисках идеальной кластерной ФС: опыт использования LINSTOR / Андрей Квапил (kvaps)</title><link>https://kvaps.github.io/ru/2022/03/%D0%B2-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%D1%85-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B9-%D1%84%D1%81-%D0%BE%D0%BF%D1%8B%D1%82-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-linstor-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-kvaps/</link><pubDate>Mon, 21 Mar 2022 21:06:28 +0000</pubDate><guid>https://kvaps.github.io/ru/2022/03/%D0%B2-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%D1%85-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B9-%D1%84%D1%81-%D0%BE%D0%BF%D1%8B%D1%82-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-linstor-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-kvaps/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/otr55vmKf30?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем Saint HighLoad++ 2026&lt;/p&gt;
&lt;p&gt;Подробнее: https://clck.ru/3QZHTb&lt;/p&gt;
&lt;h2 id="санкт-петербург-design-district-daa-in-spb"&gt;Июнь, 2026.
Санкт-Петербург, DESIGN DISTRICT DAA in SPB &lt;/h2&gt;
&lt;p&gt;Профессиональная конференция разработчиков высоконагруженных систем
20 и 21 сентября 2021. Санкт-Петербург, DESIGN DISTRICT DAA in SPB&lt;/p&gt;
&lt;p&gt;Тезисы и презентация:
&lt;a href="https://www.highload.ru/spb/2021/abstracts/6633"&gt;https://www.highload.ru/spb/2021/abstracts/6633&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Душещипательная история о том, как мы выбирали кластерную файловую систему для виртуальных машин и контейнеров, с какими трудностями столкнулись и почему остановили свой выбор на LINSTOR.
&amp;hellip;&lt;/p&gt;</description></item><item><title>Kubernetes: меняем коней на переправе</title><link>https://kvaps.github.io/ru/2021/12/kubernetes-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC-%D0%BA%D0%BE%D0%BD%D0%B5%D0%B9-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B5/</link><pubDate>Fri, 17 Dec 2021 12:09:37 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/12/kubernetes-%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC-%D0%BA%D0%BE%D0%BD%D0%B5%D0%B9-%D0%BD%D0%B0-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B5/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/dIKKBj5EQrA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Андрей Квапил, Solutions Architect, Флант&lt;/p&gt;
&lt;p&gt;Эксперт делится опытом миграции между разными CNI, CSI и CRI на живой инфраструктуре, рассказывает, какие проблемы при этом возможны и как их избежать.&lt;/p&gt;
&lt;p&gt;— CSI-, CNI- и CRI-интерфейсы и логика их работы;
— устройство сети в Kubernetes и способы ее диагностики;
— как изменять иммутабельные объекты без прямого вмешательства в etcd;
— как во Фланте распилили огромный Kubernetes-кластер на несколько маленьких без даунтайма.&lt;/p&gt;</description></item><item><title>[Yabai] First steps after Awesome WM</title><link>https://kvaps.github.io/ru/2021/10/yabai-first-steps-after-awesome-wm/</link><pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/10/yabai-first-steps-after-awesome-wm/</guid><description>&lt;p&gt;&lt;img src="https://i.redd.it/p3zkihioqev71.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;После 5 лет использования Linux я решил попробовать новый MacBook с чипом M1. Из-за невозможности установить на него полноценный Linux, я решил поразвлекаться с OSX. И, должен признать, мне она начала нравиться.&lt;/p&gt;
&lt;p&gt;Теги настроены так, чтобы они были как можно более статичными и имели одинаковую нумерацию для каждого дисплея, как в Awesome WM. По этой же причине вы можете увидеть много магии jq в моём skhd конфиге 😃&lt;/p&gt;
&lt;p&gt;Некоторые из аппаратных кнопок на клавиатуре перебиндены с помощью &lt;a href="https://karabiner-elements.pqrs.org/"&gt;Karabiner&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В качестве основного браузера я использую Firefox с расширениями &lt;a href="https://addons.mozilla.org/ru/firefox/addon/tree-style-tab/"&gt;TreeStyleTab&lt;/a&gt; и &lt;a href="https://addons.mozilla.org/ru/firefox/addon/dustman/"&gt;Dustman&lt;/a&gt; Последнее автоматически закрывает вкладки, если я не вернулся на них в течение 20 минут. Я верю, что вкладки - это временная сущность, и если я ленюсь их закрывать, то почему бы не завести для них отдельный сборщик мусора?&lt;/p&gt;
&lt;p&gt;Конфигурация терминала и цвета перенесены с моего предыдущего ноутбука.&lt;/p&gt;</description></item><item><title>Траблшутинг DRBD9 в LINSTOR</title><link>https://kvaps.github.io/ru/2021/07/%D1%82%D1%80%D0%B0%D0%B1%D0%BB%D1%88%D1%83%D1%82%D0%B8%D0%BD%D0%B3-drbd9-%D0%B2-linstor/</link><pubDate>Fri, 09 Jul 2021 23:59:46 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/07/%D1%82%D1%80%D0%B0%D0%B1%D0%BB%D1%88%D1%83%D1%82%D0%B8%D0%BD%D0%B3-drbd9-%D0%B2-linstor/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/ft/tb/2v/fttb2vkaex5-wur6zygsbkkwj2k.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;За последние несколько лет плотной работы с LINSTOR и DRBD9 у меня накопилось достаточное количество проблем и рецептов решения для них, что мне захотелось оформить их в небольшую статью. Не уверен что они полностью совпадут с вашими случаями, но теперь вы хотя бы сможете понять механику работы с DRBD9, а именно, самую неприятную его часть — траблшутинг.&lt;/p&gt;
&lt;p&gt;Информации по данному поводу в интернете немного, так что если вы используете или планируете использовать LINSTOR, уверен рано-или поздно вам эта информация может пригодиться.&lt;/p&gt;</description></item><item><title>#2 DevOps Курилка. День второй. ”Инструменты деплоя и GitOps”. Андрей Квапил.</title><link>https://kvaps.github.io/ru/2021/07/%232-devops-%D0%BA%D1%83%D1%80%D0%B8%D0%BB%D0%BA%D0%B0.-%D0%B4%D0%B5%D0%BD%D1%8C-%D0%B2%D1%82%D0%BE%D1%80%D0%BE%D0%B9.-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%B5%D0%BF%D0%BB%D0%BE%D1%8F-%D0%B8-gitops.-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB./</link><pubDate>Fri, 09 Jul 2021 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/07/%232-devops-%D0%BA%D1%83%D1%80%D0%B8%D0%BB%D0%BA%D0%B0.-%D0%B4%D0%B5%D0%BD%D1%8C-%D0%B2%D1%82%D0%BE%D1%80%D0%BE%D0%B9.-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%B5%D0%BF%D0%BB%D0%BE%D1%8F-%D0%B8-gitops.-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB./</guid><description>&lt;p&gt;&lt;img src="https://pbs.twimg.com/media/FHW6IDJVcAAUOII?format=jpg&amp;amp;name=small" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Мальчишки и девчонки, а так же их родители!&lt;br&gt;
В эту пятницу в 20.00 новая серия подкаста &amp;ldquo;DevOps курилка&amp;rdquo;.&lt;br&gt;
У нас есть задачка для DevOps с опытом. Представьте, что у вас на проекте Gitlab, Kubernetes и микросервисы.&lt;br&gt;
CI часть готова, нужно быстро, просто, без боли и соплей доставляться в k8s.&lt;br&gt;
По дороге не потерять convergence/observability/idempotence/determinism/automation&amp;hellip;&lt;br&gt;
Что выберем?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitOps/CIOps?&lt;/li&gt;
&lt;li&gt;Helm/jsonnet/kustomize и т д&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Едришки-кочерыжки какой выбор,&lt;br&gt;
так как же лучше реализовать?&lt;/p&gt;
&lt;p&gt;Главный героин подкаста &lt;em&gt;&lt;a href="https://t.me/kvaps"&gt;@kvaps&lt;/a&gt; Андрей Квапил&lt;/em&gt; Cloud Architect фром Чехия&lt;br&gt;
И всегда с вами:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;активный душнитель чата &lt;a href="https://t.me/Asgoret"&gt;@Asgoret&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;товарищ майор &lt;a href="https://t.me/afidelina"&gt;@afidelina&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Kubernetes-in-Kubernetes и ферма серверов с загрузкой по PXE</title><link>https://kvaps.github.io/ru/2021/05/kubernetes-in-kubernetes-%D0%B8-%D1%84%D0%B5%D1%80%D0%BC%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2-%D1%81-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%BE%D0%B9-%D0%BF%D0%BE-pxe/</link><pubDate>Tue, 25 May 2021 06:53:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/05/kubernetes-in-kubernetes-%D0%B8-%D1%84%D0%B5%D1%80%D0%BC%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2-%D1%81-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%BE%D0%B9-%D0%BF%D0%BE-pxe/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/1c5/449/a3d/1c5449a3d5864b48ca0d6791742cc4be.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Когда у вас 2 собственных дата-центра, тысячи железных серверов, виртуалки и хостинг для сотен тысяч сайтов, Kubernetes может существенно упростить управление всем этим добром. Как показала практика, с помощью Kubernetes можно декларативно описывать и управлять не только приложениями, но и самой инфраструктурой. Я работаю в крупнейшем чешском хостинг-провайдере WEDOS Internet a.s и сегодня расскажу о двух своих проектах — &lt;a href="https://github.com/kvaps/kubernetes-in-kubernetes"&gt;Kubernetes-in-Kubernetes&lt;/a&gt; и &lt;a href="https://github.com/kvaps/kubefarm"&gt;Kubefarm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;С их помощью можно буквально за пару команд, используя Helm, развернуть полностью рабочий Kubernetes внутри другого Kubernetes-кластера. Как и зачем? Добро пожаловать под кат!&lt;/p&gt;</description></item><item><title>Kubernetes-in-Kubernetes on Bare Metal with Andrei Kvapil</title><link>https://kvaps.github.io/ru/2021/05/kubernetes-in-kubernetes-on-bare-metal-with-andrei-kvapil/</link><pubDate>Thu, 20 May 2021 12:00:00 +0100</pubDate><guid>https://kvaps.github.io/ru/2021/05/kubernetes-in-kubernetes-on-bare-metal-with-andrei-kvapil/</guid><description>&lt;p&gt;&lt;img src="https://devchat.tv/wp-content/uploads/2020/06/Adventures-in-DevOps-1-2048x2048.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Поучаствовал в записи подкaста Adventures in DevOps. Поговорили про Kubernetes-in-Kubernetes, Kubefarm и про то как мы готовим куб на Bare Metal.&lt;/p&gt;</description></item><item><title>Ломаем и чиним etcd-кластер</title><link>https://kvaps.github.io/ru/2021/03/%D0%BB%D0%BE%D0%BC%D0%B0%D0%B5%D0%BC-%D0%B8-%D1%87%D0%B8%D0%BD%D0%B8%D0%BC-etcd-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80/</link><pubDate>Mon, 01 Mar 2021 17:05:49 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/03/%D0%BB%D0%BE%D0%BC%D0%B0%D0%B5%D0%BC-%D0%B8-%D1%87%D0%B8%D0%BD%D0%B8%D0%BC-etcd-%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/d45/e1a/ef8/d45e1aef8efcc248023c53caaaba9a34.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;etcd&lt;/strong&gt; — это быстрая, надёжная и устойчивая к сбоям key-value база данных. Она лежит в основе Kubernetes и является неотъемлемой частью control-plane, именно поэтому критически важно уметь бэкапить и восстанавливать работоспособность как отдельных нод, так и всего etcd-кластера.&lt;/p&gt;
&lt;p&gt;В &lt;a href="https://habr.com/ru/post/541118/"&gt;предыдущей статье&lt;/a&gt; мы подробно рассмотрели перегенерацию SSL-сертификатов и static-манифестов для Kubernetes, а также вопросы связанные c восстановлением работоспособности Kubernetes-кластера. Эта статья будет посвящена целиком и полностью восстановлению etcd.&lt;/p&gt;</description></item><item><title>Ломаем и чиним Kubernetes</title><link>https://kvaps.github.io/ru/2021/02/%D0%BB%D0%BE%D0%BC%D0%B0%D0%B5%D0%BC-%D0%B8-%D1%87%D0%B8%D0%BD%D0%B8%D0%BC-kubernetes/</link><pubDate>Fri, 05 Feb 2021 15:44:29 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/02/%D0%BB%D0%BE%D0%BC%D0%B0%D0%B5%D0%BC-%D0%B8-%D1%87%D0%B8%D0%BD%D0%B8%D0%BC-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/upload_files/692/bf4/952/692bf495252a8f8d154f12c6a1efa88c.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt; отличная платформа как для оркестрации контейнеров так и для всего остального. За последнее время Kubernetes ушёл далеко вперёд как по части функциональности так и по вопросам безопасности и отказоустойчивости. Архитектура Kubernetes позволяет с лёгкостью переживать сбои различного характера и всегда оставаться на плаву.&lt;/p&gt;
&lt;p&gt;Сегодня мы будем ломать кластер, удалять сертификаты, вживую реджойнить ноды и всё это, по возможности, без даунтайма для уже запущенных сервисов.&lt;/p&gt;</description></item><item><title>OpenNebula Webinar - Running a fully hyper-converged cloud with OpenNebula + LINBIT SDS</title><link>https://kvaps.github.io/ru/2021/01/opennebula-webinar-running-a-fully-hyper-converged-cloud-with-opennebula--linbit-sds/</link><pubDate>Fri, 29 Jan 2021 10:48:04 +0000</pubDate><guid>https://kvaps.github.io/ru/2021/01/opennebula-webinar-running-a-fully-hyper-converged-cloud-with-opennebula--linbit-sds/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/c_TTpj5jEfI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Learn more about LINBIT&amp;rsquo;s SDS solution, its native integration with OpenNebula, and the many benefits it provides to companies using both technologies together. Our guest speakers for this event will be Yusuf Yildiz (Solutions Architect at LINBIT) and Andrei Kvapil (Cloud Architect / DevOps Engineer at WEDOS Internet). For more details, visit: &lt;a href="https://opennebula.io/webinars/"&gt;https://opennebula.io/webinars/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Case-Study: 600 Nodes on DRBD + LINSTOR for Kubernetes, OpenNebula and Proxmox</title><link>https://kvaps.github.io/ru/2020/11/case-study-600-nodes-on-drbd--linstor-for-kubernetes-opennebula-and-proxmox/</link><pubDate>Sun, 01 Nov 2020 18:56:43 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/11/case-study-600-nodes-on-drbd--linstor-for-kubernetes-opennebula-and-proxmox/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/kMU3JAsFXQk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Find out how Andrei at WEDOS built a 600 nodes strong high availability storage environment using #DRBD &amp;amp; #LINSTOR for #Kubernetes, #OpenNebula and #Proxmox. #LinstorDays&lt;/p&gt;</description></item><item><title>[Перевод] Регистратор доменов Subreg/Gransy подвергся атаке, большинство его сервисов не работают</title><link>https://kvaps.github.io/ru/2020/09/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2-subreg/gransy-%D0%BF%D0%BE%D0%B4%D0%B2%D0%B5%D1%80%D0%B3%D1%81%D1%8F-%D0%B0%D1%82%D0%B0%D0%BA%D0%B5-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%B5%D0%B3%D0%BE-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%82/</link><pubDate>Tue, 15 Sep 2020 08:06:09 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/09/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2-subreg/gransy-%D0%BF%D0%BE%D0%B4%D0%B2%D0%B5%D1%80%D0%B3%D1%81%D1%8F-%D0%B0%D1%82%D0%B0%D0%BA%D0%B5-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%B5%D0%B3%D0%BE-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%82/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/post_images/d70/6be/11c/d706be11c5df8234e102753a2d7f4627.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Регистратор доменов &lt;a href="https://subreg.cz/"&gt;Subreg&lt;/a&gt; (компания Gransy) подвергается атаке на свою инфраструктуру. В настоящее время веб-сайты &lt;a href="https://subreg.cz/"&gt;subreg.cz&lt;/a&gt; и &lt;a href="https://gransy.com/"&gt;gransy.com&lt;/a&gt; недоступны, как и другие сервисы компании — например клиенты не имеют доступа к доменам. Компания подтвердила наличие проблемы &lt;a href="https://www.facebook.com/Subreg.CZ/posts/3496721943683231"&gt;на своей странице в Facebook&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Уважаемые клиенты, мы имеем дело со сложной крупномасштабной атакой на нашу инфраструктуру, которая затрагивает большую часть предоставляемых услуг. Наберитесь терпения, мы все усиленно работаем над этой проблемой. Нет необходимости связываться с нами, мы будем держать вас в курсе здесь, мы не будем предоставлять вам дополнительную информацию по телефону в настоящее время&lt;/p&gt;</description></item><item><title>Разбираемся с Custom Tooling в Argo CD</title><link>https://kvaps.github.io/ru/2020/09/%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC%D1%81%D1%8F-%D1%81-custom-tooling-%D0%B2-argo-cd/</link><pubDate>Sat, 05 Sep 2020 22:04:36 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/09/%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC%D1%81%D1%8F-%D1%81-custom-tooling-%D0%B2-argo-cd/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/bl/1t/hr/bl1thr-ilao8gyl97jiqgnnln7u.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Спустя некоторое время после написания &lt;a href="https://habr.com/post/481662/"&gt;первой статьи&lt;/a&gt;, где я ловко управлялся с jsonnet и гитлабом, я понял что пайплайны это конечно хорошо, но излишне сложно и неудобно.&lt;/p&gt;
&lt;p&gt;В большинстве случаев требуется типовая задача: &amp;ldquo;сгенерировать YAML и положить его в Kubernetes&amp;rdquo;. Собственно, с чем Argo CD замечательно и справляется.&lt;/p&gt;
&lt;p&gt;Argo CD позволяет подключить Git-репозиторий и синкать его состояние в Kubernetes. По умолчанию есть поддержка нескольких видов приложений: Kustomize, Helm чарты, Ksonnet, голый Jsonnet или просто директории с YAML/JSON манифестами.&lt;/p&gt;</description></item><item><title>Андрей Квапил | В поисках идеального хранилища...</title><link>https://kvaps.github.io/ru/2020/06/%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-%D0%B2-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%D1%85-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0.../</link><pubDate>Sun, 28 Jun 2020 01:43:17 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/06/%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-%D0%B2-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0%D1%85-%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0.../</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/liNU40LECoc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Плейлист Mobile: &lt;a href="https://www.youtube.com/playlist?list=PLGlZ_ld11os_JyZ6xVAWEZ-rnxrLjrGH5"&gt;https://www.youtube.com/playlist?list=PLGlZ_ld11os_JyZ6xVAWEZ-rnxrLjrGH5&lt;/a&gt;
Плейлист Web: &lt;a href="https://www.youtube.com/playlist?list=PLGlZ_ld11os-nnB5CG_p6brIUWMGXU5Tr"&gt;https://www.youtube.com/playlist?list=PLGlZ_ld11os-nnB5CG_p6brIUWMGXU5Tr&lt;/a&gt;
Плейлист Cloud: &lt;a href="https://www.youtube.com/playlist?list=PLGlZ_ld11os8QYBOSM8KU3INh244iFXKK"&gt;https://www.youtube.com/playlist?list=PLGlZ_ld11os8QYBOSM8KU3INh244iFXKK&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Андрей Квапил — Cloud Architect / DevOps Engineer, WEDOS Internet a.s., Глубока-над-Влтавой, Чехия&lt;/p&gt;
&lt;p&gt;В поисках идеального хранилища&amp;hellip;&lt;/p&gt;
&lt;p&gt;Душещипательная история о том как мы выбирали кластерную файловую систему под виртуальные машины и контейнеры, с какими трудностями столкнулись и почему остановили свой выбор на LINSTOR.&lt;/p&gt;</description></item><item><title>Бэкап-хранилище для тысяч виртуальных машин свободными инструментами</title><link>https://kvaps.github.io/ru/2020/05/%D0%B1%D1%8D%D0%BA%D0%B0%D0%BF-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%82%D1%8B%D1%81%D1%8F%D1%87-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D0%BC%D0%B8-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8/</link><pubDate>Wed, 27 May 2020 21:39:30 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/05/%D0%B1%D1%8D%D0%BA%D0%B0%D0%BF-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%82%D1%8B%D1%81%D1%8F%D1%87-%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD-%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D0%BC%D0%B8-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/br/qy/_z/brqy_zs-d0ewx13ouawskifpqio.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет, недавно мне попалась интересная задачка настроить хранилище для бэкапа большого количества блочных устройств.&lt;/p&gt;
&lt;p&gt;Каждую неделю мы выполняем резервное копирование всех виртуальных машин в нашем облаке, таким образом нужно уметь обслуживать тысячи резервных копий и делать это максимально быстро и эфективно.&lt;/p&gt;
&lt;p&gt;К сожалению стандартные конфигурации &lt;strong&gt;RAID5&lt;/strong&gt;, &lt;strong&gt;RAID6&lt;/strong&gt; в данном случае нам не подхотят в виду того что процесс восстановления на таких больших дисках как наши будет мучительно долгим и скорее всего не закончится никогда.&lt;/p&gt;</description></item><item><title>Тонкая настройка маршрутизации для MetalLB в режиме L2</title><link>https://kvaps.github.io/ru/2020/05/%D1%82%D0%BE%D0%BD%D0%BA%D0%B0%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-metallb-%D0%B2-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B5-l2/</link><pubDate>Wed, 13 May 2020 23:29:17 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/05/%D1%82%D0%BE%D0%BD%D0%BA%D0%B0%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-metallb-%D0%B2-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B5-l2/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/og/nl/oo/ognloookahnkbs3mwjjdogbuhq4.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Не так давно я столкнулся с весьма нестандартной задачей настройки маршрутищации для MetalLB. Всё бы ничего, т.к. обычно для MetalLB не требуется никаких дополнительных действий, но в нашем случае имеется достаточно большой кластер с весьма нехитрой конфигурацией сети.&lt;/p&gt;
&lt;p&gt;В данной статье я расскажу как настроить source-based и policy-based routing для внешней сети вашего кластера.&lt;/p&gt;
&lt;p&gt;Я не буду подробно останавливаться на установке и настройке MetalLB, так как предполагаю вы уже имеете некоторый опыт. Предлагаю сразу перейти к делу, а именно к настройке маршрутизации. Итак мы имеем четыре кейса:&lt;/p&gt;</description></item><item><title>Применение техник CI/CD для развёртывания и управления BareMetal-инфраструктурой / Андрей Квапил</title><link>https://kvaps.github.io/ru/2020/04/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA-ci/cd-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D0%B2%D1%91%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-baremetal-%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BE%D0%B9-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB/</link><pubDate>Tue, 14 Apr 2020 16:15:33 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/04/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA-ci/cd-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D0%B2%D1%91%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-baremetal-%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BE%D0%B9-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Rmnqa5dKgDA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;h2 id="программа-подробности-и-билеты-по-ссылке"&gt;Приглашаем на DevOpsConf 2025, которая пройдет 7 и 8 апреля 2025 в Сколково в Москве.
Программа, подробности и билеты по ссылке: &lt;a href="https://devopsconf.io/moscow/2025"&gt;https://devopsconf.io/moscow/2025&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id="при-поддержке-avitotech-мы-впервые-публикуем-все-видео-с-devopsconf-2019-в-открытый-доступ-учитесь-вдохновляйтесь-и-перенимайте-лучшие-практики-у-спикеров-не-выходя-из-дома"&gt;При поддержке AvitoTech мы впервые публикуем все видео с DevOpsConf 2019 в открытый доступ. Учитесь, вдохновляйтесь и перенимайте лучшие практики у спикеров, не выходя из дома.&lt;/h2&gt;
&lt;p&gt;DevOpsConf 2019&lt;/p&gt;</description></item><item><title>Как работает дисковая подсистема в OpenNebula</title><link>https://kvaps.github.io/ru/2020/03/%D0%BA%D0%B0%D0%BA-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F-%D0%BF%D0%BE%D0%B4%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2-opennebula/</link><pubDate>Sat, 21 Mar 2020 15:07:16 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/03/%D0%BA%D0%B0%D0%BA-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F-%D0%BF%D0%BE%D0%B4%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2-opennebula/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/nr/4p/bb/nr4pbbjdpjjvghyiapezxwhgna0.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;В последнее время я получаю достаточно много вопросов по поводу организации стораджа в OpenNebula. В виду своей специфики она имеет аж три разных типа хранилища: &lt;strong&gt;images&lt;/strong&gt;, &lt;strong&gt;system&lt;/strong&gt; и &lt;strong&gt;files&lt;/strong&gt;. Давайте разберёмся зачем нужен каждый из них и как их использовать чтобы планировать размещение данных наиболее эфективно.&lt;/p&gt;
&lt;p&gt;Этот пост — частичная расшифровка моего &lt;a href="https://www.youtube.com/watch?v=47Mht_uoX3A&amp;amp;feature=youtu.be"&gt;доклада про OpenNebula&lt;/a&gt; на &lt;a href="https://www.highload.ru/moscow/2019/abstracts/5506"&gt;HighLoad++ 2019&lt;/a&gt; с упором на дисковую составляющую.&lt;/p&gt;</description></item><item><title>Облачная платформа OpenNebula / Андрей Квапил (WEDOS Internet, a.s)</title><link>https://kvaps.github.io/ru/2020/02/%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D0%B0%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0-opennebula-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-internet-a.s/</link><pubDate>Wed, 26 Feb 2020 20:01:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/02/%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D0%B0%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0-opennebula-/-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-internet-a.s/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/47Mht_uoX3A?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем Saint HighLoad++ 2026&lt;/p&gt;
&lt;p&gt;Подробнее: https://clck.ru/3QZHTb&lt;/p&gt;
&lt;h2 id="санкт-петербург-design-district-daa-in-spb"&gt;Июнь, 2026.
Санкт-Петербург, DESIGN DISTRICT DAA in SPB &lt;/h2&gt;
&lt;p&gt;При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ. Учитесь, вдохновляйтесь и перенимайте лучшие практики у спикеров, не выходя из дома.&lt;/p&gt;</description></item><item><title>Как описать 100 Gitlab джоб в 100 строк на Jsonnet</title><link>https://kvaps.github.io/ru/2020/01/%D0%BA%D0%B0%D0%BA-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-100-gitlab-%D0%B4%D0%B6%D0%BE%D0%B1-%D0%B2-100-%D1%81%D1%82%D1%80%D0%BE%D0%BA-%D0%BD%D0%B0-jsonnet/</link><pubDate>Sun, 12 Jan 2020 17:15:03 +0000</pubDate><guid>https://kvaps.github.io/ru/2020/01/%D0%BA%D0%B0%D0%BA-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-100-gitlab-%D0%B4%D0%B6%D0%BE%D0%B1-%D0%B2-100-%D1%81%D1%82%D1%80%D0%BE%D0%BA-%D0%BD%D0%B0-jsonnet/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/getpro/habr/post_images/845/43b/ad8/84543bad823db8734ff27e0131902e5b.svg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;В продолжение &lt;a href="https://habr.com/ru/post/481662/"&gt;предыдущей статьи&lt;/a&gt; про инструменты деплоя в Kubernetes, хочу рассказать вам про то как можно использовать Jsonnet для упрощения описания джоб в вашем &lt;strong&gt;.gitlab-ci.yml&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="дано"&gt;Дано&lt;/h4&gt;
&lt;p&gt;Есть монорепа, в которой:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;10 Dockerfiles&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;30 описанных деплоев&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;3 окружения: &lt;strong&gt;devel&lt;/strong&gt;, &lt;strong&gt;staging&lt;/strong&gt; и &lt;strong&gt;production&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Настроить пайплайн:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Сборка Docker-образов должна производиться по добавлении git-тэга с версией.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Каждая операция деплоя должна выполняться при пуше в ветку окружения и только по изменении файлов в конкретной директории&lt;/p&gt;</description></item><item><title>Пробуем новые инструменты для сборки и автоматизации деплоя в Kubernetes</title><link>https://kvaps.github.io/ru/2019/12/%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B5%D0%BC-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8-%D0%B8-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%B5%D0%BF%D0%BB%D0%BE%D1%8F-%D0%B2-kubernetes/</link><pubDate>Thu, 26 Dec 2019 06:11:28 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/12/%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B5%D0%BC-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8-%D0%B8-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%B5%D0%BF%D0%BB%D0%BE%D1%8F-%D0%B2-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/fu/wy/ia/fuwyia7huxrflvry8lzz2dbl2tw.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Привет! За последнее время вышло много классных инструментов автоматизации как для сборки Docker-образов так и для деплоя в Kubernetes. В связи с этим решил поиграться с гитлабом, как следует изучить его возможности и, конечно же, настроить пайплайн.&lt;/p&gt;
&lt;p&gt;Вдохновлением для этой работы стал сайт &lt;a href="https://kubernetes.io/"&gt;kubernetes.io&lt;/a&gt;, который генерируется из &lt;a href="http://github.com/kubernetes/website"&gt;исходных кодов&lt;/a&gt; автоматически, а на каждый присланный пул реквест робот автоматически генерирует preview-версию сайта с вашими изменениеми и предоставляет ссылку для просмотра.&lt;/p&gt;
&lt;p&gt;Я постарался выстроить подобный процесс с нуля, но целиком построенный на Gitlab CI и свободных инструментах, которые я привык использовать для деплоя приложений в Kubernetes. Сегодня я, наконец, расскажу вам о них подробнее.&lt;/p&gt;</description></item><item><title>Моя рабочая машинка</title><link>https://kvaps.github.io/ru/2019/12/%D0%BC%D0%BE%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B0%D1%8F-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BA%D0%B0/</link><pubDate>Sat, 14 Dec 2019 05:45:07 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/12/%D0%BC%D0%BE%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B0%D1%8F-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BA%D0%B0/</guid><description>&lt;p&gt;&lt;img src="https://www.linux.org.ru/images/18847/original.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Вот наконец-то купил себе новый ноут. Долго выбирал из всевозможных вариантов, остановился на Lenovo ideapad 720S-13ARR с процессором AMD Ryzen 7 2700U, NVMe, Type-C и прочими прелястями жизни.&lt;/p&gt;
&lt;p&gt;На скриншоте - powerlevel10k, улучшенная и ускоренная версия powerlevel9k, лучшего powerline-шелла для zfs, ну и несколько интересных плагинов которые позволяют разукрасить консоль подобно fish.&lt;/p&gt;
&lt;p&gt;Справа выводятся модули:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;текущий контекст и неймспейс Kubernetes&lt;/li&gt;
&lt;li&gt;текущая ветка git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В качестве рутовой файловой системы - btrfs. Каждый вызов pacman содаёт снапшот и в любой момент можно в него загрузиться прямо из меню grub.&lt;/p&gt;
&lt;p&gt;Ноут использую как дома, так и на работе. На работе подключаю его через Type-C док-станцию с двумя мониторами через displaylink, очень удобно. Очень порадовало наличие аппаратного шифрования NVMe-диска и возможность зарядки от пауэрбанка, а процессор AMD достаточно производителен и не подвержен уязвимостям Meltdown и Spectre.&lt;/p&gt;</description></item><item><title>Про DevOps</title><link>https://kvaps.github.io/ru/2019/05/%D0%BF%D1%80%D0%BE-devops/</link><pubDate>Sat, 18 May 2019 00:00:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/05/%D0%BF%D1%80%D0%BE-devops/</guid><description>&lt;p&gt;Вот ядро&lt;br&gt;
Которое построил Линус.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;А это системный процесс,&lt;br&gt;
Который работает без умолку,&lt;br&gt;
В ядре,&lt;br&gt;
Которое построил Линус.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;А это суровый cgroup,&lt;br&gt;
Который изолирует системный процесс,&lt;br&gt;
Который работает без умолку,&lt;br&gt;
В ядре,&lt;br&gt;
Которое построил Линус.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Вот контейнер,&lt;br&gt;
Который генерит суровый cgroup,&lt;br&gt;
Который изолирует системный процесс,&lt;br&gt;
Который работает без умолку,&lt;br&gt;
В ядре,&lt;br&gt;
Которое построил Линус.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Вот под,&lt;br&gt;
Что часто пинает контейнер,&lt;br&gt;
Который генерит суровый cgroup,&lt;br&gt;
Который изолирует системный процесс,&lt;br&gt;
Который работает без умолку,&lt;br&gt;
В ядре,&lt;br&gt;
Которое построил Линус.&lt;br&gt;&lt;/p&gt;</description></item><item><title>[Перевод] Храним SSH-ключи безопасно</title><link>https://kvaps.github.io/ru/2019/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BC-ssh-%D0%BA%D0%BB%D1%8E%D1%87%D0%B8-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE/</link><pubDate>Wed, 15 May 2019 06:05:32 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BC-ssh-%D0%BA%D0%BB%D1%8E%D1%87%D0%B8-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/up/j1/kl/upj1kliwm70ton2ocnhvuf_kywm.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Хочу рассказать как безопасно хранить SSH-ключи на локальной машине, не боясь того, что какое-то приложение может украсть или расшифровать их.&lt;/p&gt;
&lt;p&gt;Статья будет полезна тем, кто так и не нашел элегантного решения после &lt;a href="https://www.opennet.ru/opennews/art.shtml?num=49082"&gt;паранои&lt;/a&gt; в 2018 и продолжает хранить ключи в &lt;code&gt;$HOME/.ssh&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Для решения данной проблемы предлагаю использовать &lt;a href="https://keepassxc.org/"&gt;KeePassXC&lt;/a&gt;, который является одним из лучших менеджеров паролей, он использует сильные алгоритмы шифрования, а также имеет встроенный SSH-агент.&lt;/p&gt;
&lt;p&gt;Это дает возможность безопасно хранить все ключи прямо в базе паролей и автоматически добавлять их в систему при её открытии. Как только база будет закрыта, использование SSH-ключей также станет невозможным.&lt;/p&gt;</description></item><item><title>[Перевод] Хранилище LINSTOR и его интеграция с OpenNebula</title><link>https://kvaps.github.io/ru/2019/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5-linstor-%D0%B8-%D0%B5%D0%B3%D0%BE-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-opennebula/</link><pubDate>Mon, 13 May 2019 10:16:26 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/05/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5-linstor-%D0%B8-%D0%B5%D0%B3%D0%BE-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-opennebula/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/e-/3z/h-/e-3zh-bbwjnljyazm68edln7muw.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Не так давно ребята из LINBIT представили свое новое SDS-решение — Linstor. Это полностью свободное хранилище в основе которого используются проверенные технологии: DRBD, LVM, ZFS. Linstor сочетает в себе простоту и хорошо проработанную архитектуру, что позволяет добиться стабильности и достаточно внушительных результатов.&lt;/p&gt;
&lt;p&gt;Сегодня я хотел бы рассказать про него чуть подробнее и показать насколько просто его можно интегрировать с OpenNebula используя linstor_un — новый драйвер, который я разработал специально для этой цели.&lt;/p&gt;</description></item><item><title>[Перевод] Стримим экран на несколько устройств по сети</title><link>https://kvaps.github.io/ru/2019/04/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%81%D1%82%D1%80%D0%B8%D0%BC%D0%B8%D0%BC-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D0%BD%D0%B0-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%BF%D0%BE-%D1%81%D0%B5%D1%82%D0%B8/</link><pubDate>Tue, 30 Apr 2019 12:09:53 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/04/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4-%D1%81%D1%82%D1%80%D0%B8%D0%BC%D0%B8%D0%BC-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD-%D0%BD%D0%B0-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%BF%D0%BE-%D1%81%D0%B5%D1%82%D0%B8/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/ef/qk/de/efqkdemwmhhniofkklcjvayvmm0.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Возникла у меня необходимость выводить дашборд с мониторингом на несколько экранов в офисе. В распоряжении имеется несколько стареньких Raspberry Pi Model B+ и гипервизор с практически неограниченным количеством ресурсов.&lt;/p&gt;
&lt;p&gt;По видимому Raspberry Pi Model B+ не обладает достаточной произвольностью чтобы держать постоянно запущенным браузер и отрисовывать большое количество графики в нем, из-за чего бывает, что страница частично глючит и часто вылетает.&lt;/p&gt;
&lt;p&gt;Нашлось достаточно простое и элегантное решение, которым я и хочу с вами поделиться.&lt;/p&gt;</description></item><item><title>Всё о Kubernetes на Bare Metal (Андрей Квапил, WEDOS) / ♥ Kubernetes 14 февраля в Mail.ru Group</title><link>https://kvaps.github.io/ru/2019/02/%D0%B2%D1%81%D1%91-%D0%BE-kubernetes-%D0%BD%D0%B0-bare-metal-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-/-kubernetes-14-%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F-%D0%B2-mail.ru-group/</link><pubDate>Wed, 27 Feb 2019 19:43:29 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/02/%D0%B2%D1%81%D1%91-%D0%BE-kubernetes-%D0%BD%D0%B0-bare-metal-%D0%B0%D0%BD%D0%B4%D1%80%D0%B5%D0%B9-%D0%BA%D0%B2%D0%B0%D0%BF%D0%B8%D0%BB-wedos-/-kubernetes-14-%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F-%D0%B2-mail.ru-group/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/yGKI5JoKMUY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Организаторы серии @Kubernetes Meetup: Mail.Ru Cloud Solutions &lt;a href="https://mcs.mail.ru/"&gt;https://mcs.mail.ru/&lt;/a&gt; Анонсы мероприятий в Telegram: &lt;a href="https://t.me/k8s_mail"&gt;https://t.me/k8s_mail&lt;/a&gt; Все видео встречи: &lt;a href="https://bit.ly/2EfPzma"&gt;https://bit.ly/2EfPzma&lt;/a&gt; Ищем спикеров: &lt;a href="https://mcs.mail.ru/speak"&gt;https://mcs.mail.ru/speak&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Видеозапись выступления «Всё, что нужно знать о Kubernetes на Bare Metal» (Андрей Квапил, WEDOS Internet a.s., Cloud Architect / DevOps)&lt;/p&gt;
&lt;p&gt;Андрей Квапил делится своим опытом архитектуры облачных решений и девопса в крупнейшем чешском хостинге WEDOS, где Kubernetes активно используется для деплоя сервисов и серверов – уже сейчас для более чем 500 нод и с планируемым расширением до нескольких тысяч.&lt;/p&gt;</description></item><item><title>Прикручиваем LDAP-авторизацию к Kubernetes</title><link>https://kvaps.github.io/ru/2019/02/%D0%BF%D1%80%D0%B8%D0%BA%D1%80%D1%83%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC-ldap-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8E-%D0%BA-kubernetes/</link><pubDate>Thu, 21 Feb 2019 00:17:24 +0000</pubDate><guid>https://kvaps.github.io/ru/2019/02/%D0%BF%D1%80%D0%B8%D0%BA%D1%80%D1%83%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC-ldap-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8E-%D0%BA-kubernetes/</guid><description>&lt;p&gt;&lt;img src="https://habrastorage.org/webt/kj/60/vi/kj60vi6ugv7bunlqdts2nlr2vja.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Небольшая инструкция о том, как используя Keycloak можно связать Kubernetes с вашим LDAP-сервером и настроить импорт пользователей и групп. Это позволит настраивать RBAC для ваших пользователей и использовать auth-proxy чтобы защитить Kubernetes Dashboard и другие приложения, которые не умеют производить авторизацию самостоятельно.&lt;/p&gt;</description></item><item><title>Архив проектов</title><link>https://kvaps.github.io/ru/projects-archive/</link><pubDate>Tue, 27 Dec 2016 03:10:52 +0000</pubDate><guid>https://kvaps.github.io/ru/projects-archive/</guid><description>&lt;h2 id="artradiofm"&gt;ArtRadio.fm&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kvaps.github.io/images/projects-archive/artradio.png"&gt;&lt;img src="https://kvaps.github.io/images/projects-archive/artradio.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Онлайн радиостанция электронной музыки (заброшен)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="artpredelru"&gt;ArtPredel.ru&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://kvaps.github.io/images/projects-archive/artpredel.png"&gt;&lt;img src="https://kvaps.github.io/images/projects-archive/artpredel.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Самое необычное искусство с просторов интернета (заброшен)&lt;/p&gt;</description></item><item><title>Скрипты для сжатия видео с GoPro и ковертирования RAW в JPG</title><link>https://kvaps.github.io/ru/2016/11/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D1%8F-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D1%81-gopro-%D0%B8-%D0%BA%D0%BE%D0%B2%D0%B5%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-raw-%D0%B2-jpg/</link><pubDate>Fri, 18 Nov 2016 04:00:14 +0000</pubDate><guid>https://kvaps.github.io/ru/2016/11/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D1%8F-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D1%81-gopro-%D0%B8-%D0%BA%D0%BE%D0%B2%D0%B5%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-raw-%D0%B2-jpg/</guid><description>&lt;p&gt;Расскажу как круто можно ужимать видео с гопрошки без потери качества.
Видео как правило жмется очень хорошо, мне удавалось сжимать ролики до 70% безо всяких на то проблем.
Для windows-пользователей приложу инструкцию, linux-пользователи и так разберутся, все скрипты приведены ниже.&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Шпаргалки</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B8/</link><pubDate>Mon, 18 Aug 2014 17:03:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B8/</guid><description>&lt;p&gt;Выложу тут свои шпаргалки, которые я делал для своего комплекта маджонга.&lt;/p&gt;
&lt;p&gt;Наверняка они пригодятся и вам :)&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Игровые комбинации для троих игроков</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</link><pubDate>Fri, 15 Aug 2014 14:49:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</guid><description>&lt;h2 id="один-яку"&gt;ОДИН ЯКУ&lt;/h2&gt;
&lt;h4 id="риичи--riichi"&gt;Риичи / Riichi&lt;/h4&gt;
&lt;p&gt;Ожидание выигрышного тайла при депозите 1000 очков. После объявления риичи руку модифицировать нельзя. Рука должна быть закрытой.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;+1 Выигрыш в течение одного раунда.&lt;/strong&gt; Иппацу/Ippatsu.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;+1 Объявление Риичи на первом дискарде.&lt;/strong&gt; Дабл риичи/Daburu Riichi.&lt;/p&gt;
&lt;p&gt;Пример:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T3.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T4.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T5.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T14.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T15.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T18.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T19.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T20.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T23.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T23.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T23.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T29.gif" alt=""&gt;&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T29.gif" alt=""&gt; + &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T13.gif" alt=""&gt;&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Подсчет очков в маджонге для троих игроков</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2-%D0%B2-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</link><pubDate>Fri, 15 Aug 2014 14:49:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2-%D0%B2-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</guid><description>&lt;p&gt;&lt;strong&gt;Основная таблица расчетов&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;В риичи-маджонге для троих игроков не используются минипоинты, т.е. очки за состав руки. Весь подсчет очков ведется на основе комбинаций в руке игрока (и количества Дор).&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Особенности игры для троих игроков</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B8%D0%B3%D1%80%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</link><pubDate>Fri, 15 Aug 2014 14:46:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B8%D0%B3%D1%80%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/</guid><description>&lt;p&gt;&lt;strong&gt;Общая информация&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Риичи-маджонг для троих игроков&lt;/strong&gt; является вариацией &amp;ldquo;классического&amp;rdquo; риичи-маджонга для четверых игроков.&lt;br&gt;
Процесс игры в маджонге для троих почти не отличается от классического, отличаются игровые комбинации и изначальный состав тайлов.&lt;br&gt;
В этом гайде будут описываться только моменты, которые отличаются от &amp;ldquo;классического&amp;rdquo; риичи. Если какая-то информация упускается, значит этот момент в игре не отличается от основных правил и можно воспользоваться руководством по &amp;ldquo;классическому&amp;rdquo; риичи.&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Словарик</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D0%BA/</link><pubDate>Fri, 15 Aug 2014 14:35:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D0%BA/</guid><description>Еще один раздел, при взгляде на который дыбом встают волосы - "Это ж сколько всяких нерусских слов!!!" :)&lt;/br&gt;
Но всё гораздо проще - бОльшую часть этих слов необязательно использовать и необязательно знать, есть лишь несколько слов, без некоторых поиграть не получится.&lt;/br&gt;
Японское написание представлено исключительно просто так :)&lt;/br&gt;
Для правильного отображения иероглифов возможно потребуется установить японский языковой пакет.
&lt;/br&gt;</description></item><item><title>Риичи-маджонг: Ограничения и штрафы</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D1%88%D1%82%D1%80%D0%B0%D1%84%D1%8B/</link><pubDate>Fri, 15 Aug 2014 14:16:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D1%88%D1%82%D1%80%D0%B0%D1%84%D1%8B/</guid><description>&lt;p&gt;Нарушения в игре (чомбо) наказываются штрафами в пользу остальных игроков.&lt;br&gt;
Если нарушил правила дилер, то он платит по 4000 каждому игроку.&lt;br&gt;
Если нарушил обычный игрок, он платит по 2000 обычным игрокам и 4000 дилеру.&lt;/p&gt;</description></item><item><title>О маджонге в целом и риичи в частности</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B2-%D1%86%D0%B5%D0%BB%D0%BE%D0%BC-%D0%B8-%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%B2-%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8/</link><pubDate>Fri, 15 Aug 2014 14:14:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B2-%D1%86%D0%B5%D0%BB%D0%BE%D0%BC-%D0%B8-%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%B2-%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8/</guid><description>&lt;p&gt;&lt;strong&gt;О маджонге&amp;hellip;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Маджонг&lt;/strong&gt; - старинная китайская настольная игра, рассчитанная на 4-х игроков.&lt;br&gt;
Для игры используется примерно такой игровой набор:&lt;br&gt;
&lt;img src="https://kvaps.github.io/images/mahjong/tile/mahjong.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;По аналогии с картами, &lt;strong&gt;тайлы&lt;/strong&gt; (игровые кости) делятся по мастям и достоинству, плюс в зависимости от разновидности игры используются дополнительные тайлы, такие как цветы и сезоны в китайском маджонге.&lt;/p&gt;
&lt;p&gt;Независимо от разновидности маджонга (китайский, японский, гонконгский&amp;hellip;) суть игры следующая:&lt;br&gt;
У каждого игрока на руках 13 тайлов, плюс никому не принадлежащая &lt;strong&gt;&amp;ldquo;стена&amp;rdquo;&lt;/strong&gt; из тайлов, которая разбирается в процессе игры. Игроки ходят по очереди, и ход заключается во взятии из стены нового тайла и сброса (&lt;strong&gt;дискарда&lt;/strong&gt;) ненужного тайла из своей руки. Цель каждого игрока - привести свои тайлы к определенному виду и объявить победу. После объявления победы подсчитывается количество выигранных очков, которое зависит от комбинаций в выигрышной руке.&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Подсчет очков</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2/</link><pubDate>Fri, 15 Aug 2014 14:14:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2/</guid><description>&lt;p&gt;Методика расчета стоимости выигрыша следующая: вначале подсчитывается стоимость руки (количество хан). Если хан 5 и больше, тогда по таблице (1) определяем выигрыш, если 4 и меньше, тогда считаем количество минипоинтов, и определяем выигрыш по таблицам (3).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Считаем количество хан.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1.1 Суммируем стоимость всех комбинаций в руке (стоимость показана на странице Игровые комбинации).&lt;br&gt;
1.2 Прибавляем количество Дор в руке.&lt;/p&gt;
&lt;p&gt;Если получившееся значение – 4 и меньше, тогда переходим к п.2, если 5 и больше – тогда определяем стоимость выигрыша по таблице:&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Процесс игры</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D0%B8%D0%B3%D1%80%D1%8B/</link><pubDate>Fri, 15 Aug 2014 14:12:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D0%B8%D0%B3%D1%80%D1%8B/</guid><description>&lt;p&gt;&lt;strong&gt;Цель игры&lt;/strong&gt; - создать раньше других игроков &lt;strong&gt;выигрышную руку&lt;/strong&gt; (руку определенной конфигурации) и объявить выигрыш в момент, когда выигрышный тайл взят из стены или сброшен другим игроком.&lt;br&gt;
Выигрышная рука - это рука, содержащая 4 сета и пару, и содержащая минимум одну &lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8/"&gt;яку-комбинацию&lt;/a&gt;.&lt;br&gt;
Например:&lt;br&gt;
&lt;img src="https://kvaps.github.io/images/mahjong/tile/hand.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Сеты&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;В игре существуют три вида сетов:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пон&lt;/strong&gt; - набор из трех одинаковых тайлов.&lt;br&gt;
Например:&lt;br&gt;
&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T33.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T33.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T33.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Кан&lt;/strong&gt; - набор из четырех одинаковых тайлов.&lt;br&gt;
Например:&lt;br&gt;
&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T30x.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T30.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T30.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T30.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Чи&lt;/strong&gt; - набор из трех тайлов мастей, идущих последовательно.&lt;br&gt;
Например:&lt;br&gt;
&lt;img src="https://kvaps.github.io/images/mahjong/tileset/T15.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T16.gif" alt=""&gt; &lt;img src="https://kvaps.github.io/images/mahjong/tileset/T17.gif" alt=""&gt;&lt;br&gt;
Внимание! 9 не переходит в 1! То есть Чи типа 9-1-2 или 8-9-1 не существует!&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Игровые комбинации</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8/</link><pubDate>Fri, 15 Aug 2014 13:45:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8/</guid><description>&lt;p&gt;На этой странице представлен полный перечень игровых комбинаций. Для того, чтобы рука была выигрышная, необходимо чтобы в ней присутствовала минимум одна комбинация из этого списка (иначе игрок обязан заплатить штраф за неправильное объявление победы).&lt;br&gt;
Яку – это стоимость руки, измеряется в ханах (см. словарик).&lt;br&gt;
Условно, 1 яку=1 хан.&lt;/p&gt;
&lt;p&gt;Например, имея в руке комбинацию &amp;ldquo;Терминалы и Достоинства&amp;rdquo;, стоимость руки будет составлять 1 хан (поскольку эта комбинация на 1 яку), а если рука при этом закрытая (см. словарик), то стоимость руки будет составлять 2 хан (поскольку +1 за закрытую руку).&lt;/p&gt;</description></item><item><title>Риичи-маджонг: Подготовка к игре</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA-%D0%B8%D0%B3%D1%80%D0%B5/</link><pubDate>Fri, 15 Aug 2014 13:42:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA-%D0%B8%D0%B3%D1%80%D0%B5/</guid><description>&lt;p&gt;Игровая сессия (ханчан) состоит из двух раундов: Восточного и Южного.&lt;br&gt;
Каждый раунд состоит из 4-х раздач (в определенных случаях больше, но об этом позже).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Перед каждой игрой определяется:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Положение игроков&lt;/strong&gt; относительно друг друга (то есть кто начинает игру на какой позиции – Восток, Юг, Запад, Север)&lt;/li&gt;
&lt;li&gt;Кто является &lt;strong&gt;дилером&lt;/strong&gt; вначале игры.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Риичи-маджонг: Что нужно для игры</title><link>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%87%D1%82%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B8%D0%B3%D1%80%D1%8B/</link><pubDate>Fri, 15 Aug 2014 12:27:00 +0000</pubDate><guid>https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%87%D1%82%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B8%D0%B3%D1%80%D1%8B/</guid><description>&lt;p&gt;&lt;strong&gt;Для игры необходимо:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Набор тайлов&lt;/strong&gt;. Адаптированный или нет – разницы никакой (адаптированный – где значение тайла в добавок подписано арабской цифрой, или буквой в случае Драконов и Ветров). Из набора нужно убрать Цветы и Сезоны (если они там были).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Пара шестигранных игральных кубиков&lt;/strong&gt;. Они используются для определения дилера, места разлома стены и т.д. – об этом будет дальше.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Указатели Ветров&lt;/strong&gt;. Выглядят от набора к набору совершенно по-разному. В любом случае, смысл указателя такой:&lt;br&gt;
1. Он кладется перед тем игроком, который в данной раздаче является дилером (восточным ветром).2. Иероглиф, видимый на указателе, означает текущий раунд – Восточный или Южный (соответственно&lt;img src="https://kvaps.github.io/images/mahjong/tile/w.jpg" alt=""&gt;или &lt;img src="https://kvaps.github.io/images/mahjong/tile/s.jpg" alt=""&gt;)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Риичи-маджонг</title><link>https://kvaps.github.io/ru/riichi-mahjong/</link><pubDate>Fri, 15 Aug 2014 12:25:00 +0000</pubDate><guid>https://kvaps.github.io/ru/riichi-mahjong/</guid><description>&lt;p&gt;Здесь будут собраны материалы с сайта riichi.ru который, к сожалению, уже давно перестал работать.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B2-%D1%86%D0%B5%D0%BB%D0%BE%D0%BC-%D0%B8-%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%B2-%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8/"&gt;О маджонге в целом и риичи в частности&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="риичи-для-четверых-игроков"&gt;Риичи для четверых игроков:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%87%D1%82%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE-%D0%B4%D0%BB%D1%8F-%D0%B8%D0%B3%D1%80%D1%8B/"&gt;Что нужно для игры&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA-%D0%B8%D0%B3%D1%80%D0%B5/"&gt;Подготовка к игре&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8/"&gt;Комбинации&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D0%B8%D0%B3%D1%80%D1%8B/"&gt;Процесс игры&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2/"&gt;Подсчет очков&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D1%88%D1%82%D1%80%D0%B0%D1%84%D1%8B/"&gt;Ограничения и штрафы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B8%D0%BA/"&gt;Словарик&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="риичи-для-троих-игроков"&gt;Риичи для троих игроков:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B8%D0%B3%D1%80%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/"&gt;Особенности игры&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%B1%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/"&gt;Комбинации&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B5%D1%82-%D0%BE%D1%87%D0%BA%D0%BE%D0%B2-%D0%B2-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%82%D1%80%D0%BE%D0%B8%D1%85-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2/"&gt;Подсчет очков&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="шпаргалки"&gt;Шпаргалки:&lt;/h2&gt;
&lt;p&gt;Так же я подготовил удобные для печати шпаргалки, найти их можно по этой ссылке:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kvaps.github.io/ru/%D1%80%D0%B8%D0%B8%D1%87%D0%B8-%D0%BC%D0%B0%D0%B4%D0%B6%D0%BE%D0%BD%D0%B3/%D1%88%D0%BF%D0%B0%D1%80%D0%B3%D0%B0%D0%BB%D0%BA%D0%B8/"&gt;Шпаргалки&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Прошивка Rebug 4.21</title><link>https://kvaps.github.io/ru/2012/11/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-rebug-4.21/</link><pubDate>Sat, 03 Nov 2012 14:39:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2012/11/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-rebug-4.21/</guid><description>&lt;p&gt;&lt;img src="http://www.psjailbreak.ru/uploads/posts/2012-11/thumbs/1351956551_red_scorpion_3_sml.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Сегодня команда Rebug выпустили свою 4.21 прошивку. Прошивки от команды Rebug всегда славились своей стабильностью и большим набором фунций. Почитать об изменениях и нововведениях, можно на официальном сайте Rebug в этой &lt;a href="http://rebug.me/rebug-3-55-3-and-4-21-1-rex-editions-and-999-downgrader/"&gt;теме&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Звуки Pidgin в qutIM</title><link>https://kvaps.github.io/ru/2012/09/%D0%B7%D0%B2%D1%83%D0%BA%D0%B8-pidgin-%D0%B2-qutim/</link><pubDate>Sun, 30 Sep 2012 16:28:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2012/09/%D0%B7%D0%B2%D1%83%D0%BA%D0%B8-pidgin-%D0%B2-qutim/</guid><description>&lt;p&gt;Понравились тут звуки в Pidgin, решил их прикрутить в qutIM 0.3&lt;/p&gt;</description></item><item><title>Установка Photoshop на Debian или Ubuntu и последующая интеграция его в систему</title><link>https://kvaps.github.io/ru/2012/09/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-photoshop-%D0%BD%D0%B0-debian-%D0%B8%D0%BB%D0%B8-ubuntu-%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D1%8E%D1%89%D0%B0%D1%8F-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B5%D0%B3%D0%BE-%D0%B2-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83/</link><pubDate>Wed, 19 Sep 2012 16:31:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2012/09/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-photoshop-%D0%BD%D0%B0-debian-%D0%B8%D0%BB%D0%B8-ubuntu-%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D1%83%D1%8E%D1%89%D0%B0%D1%8F-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B5%D0%B3%D0%BE-%D0%B2-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83/</guid><description>&lt;p&gt;Сейчас я расскажу вам как установить Photoshop на debian или ubuntu, который будет вполне очень даже стабильно работать.&lt;br&gt;
О том как создать кнопку запуска, и как правильно установить последнюю версию wine под debian squeeze, debian wheezy или ubuntu.&lt;br&gt;
И о том как интегрировать Photoshop в систему, что бы открывались .PSD и другие файлы, непосредственно из самой системы.&lt;br&gt;
Всего за десять простых шагов:&lt;/p&gt;</description></item><item><title>Прошивка Art Of Honeycomb для TS1004T</title><link>https://kvaps.github.io/ru/2012/04/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-art-of-honeycomb-%D0%B4%D0%BB%D1%8F-ts1004t/</link><pubDate>Thu, 12 Apr 2012 05:57:00 +0000</pubDate><guid>https://kvaps.github.io/ru/2012/04/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-art-of-honeycomb-%D0%B4%D0%BB%D1%8F-ts1004t/</guid><description>&lt;p&gt;&lt;img src="http://cs5-1.4pda.to/1649543.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Так, добрались до релиз-кандидата, тестим, радуемся.&lt;/p&gt;</description></item></channel></rss>