Size: a a a

Админим с Буквой

2019 May 09
Админим с Буквой
List of Continuous Integration services
#ci #devops
https://github.com/ligurio/awesome-ci
источник
Админим с Буквой
источник
2019 May 13
Админим с Буквой
mysql, сменяем количество коннектов

изучаем сколько сейчас открыто
mysql> show status;


изучаем сколько кто занимает соединения (грепаем, смотрим вдумчиво, трогаем палочкой)
mysql> show processlist;


изучаем сколько сейчас
mysql> select @@global.max_connections;


увеличиваем
mysql> set @@global.max_connections = 4096;


меняем конфиг /etc/mysql/my.cnf
max_connections         = 4096


#mysql
источник
Админим с Буквой
Небольшое развлечение для разминки после праздников =)
источник
Админим с Буквой
Поисковый челлендж от DC7495 #1


Приз за первое место - проходка на phdays, ответы принимаются до 19:00 14 мая в личку @k3k6e
Учтите, что нам нужно будет знать ваши ФИО и почту, чтобы вписать на phdays

Задание №1: что написано на здании
Задание №2: что написано на указателе
Задание №3: как называется эта церковь
источник
Админим с Буквой
источник
Админим с Буквой
источник
2019 May 15
Админим с Буквой
Security updates

Package : intel-microcode
CVE ID : CVE-2018-12126 CVE-2018-12127 CVE-2018-12130
                CVE-2019-11091

This update ships updated CPU microcode for most types of Intel CPUs. It
provides mitigations for the MSBDS, MFBDS, MLPDS and MDSUM hardware
vulnerabilities.

To fully resolve these vulnerabilities it is also necessary to update
the Linux kernel packages as released in DSA 4444.

details
источник
2019 May 16
Админим с Буквой
Хочу поделиться ссылкой, которая оказалась очень полезной https://github.com/papers-we-love/papers-we-love

Это академические работы из которых можно извлечь прикладную пользу любому разработчику. Например:
https://github.com/papers-we-love/papers-we-love/tree/master/api_design
https://github.com/papers-we-love/papers-we-love/tree/master/cryptography
https://github.com/papers-we-love/papers-we-love/tree/master/distributed_systems

Планирую искать зания по какой-то новой теме сначала в этом репе, а потом уже статьи в интернете. Статьи, как правило, плохо структурированы и не покрывают тему целиком. Кажется, что загуглить и прочитать краткую выжимку быстрее, но придется затратить усилия чтобы самому собрать в голове целостную картину по обрывочной информации.

Напоминаю, что знания != информация. Информация — фастфуд, от которой растет животик, портится настроение и вылазает прыщь. Знания — здоровая полезная еда, которая дает силы действовать и чуствовать себя хорошо.
источник
Админим с Буквой
Немножечко о факапах которые произошли со мной за последние пару дней. Хочу сразу извиниться, что в эти дни много рекламы и мало материала - к сожалению сейчас такая нагрузка и такие задачи что попадается мало интересного, а градус гемора наоборот возрос. Поэтому раз интересного нет - буду писать о гемморое.

История первая - как дрогнувшая рука может привести к падению прода на некоторый срок.

Как вы знаете, в k8s кластере существует такой параметр как реплики. Это замечательная особенность которая позволяет сказать кластеру "сделай мне N копий моего продукта". Со стороны пользователя это выглядит так просто - просто пропиши число в переменную. Со стороны кластера это естественно куда более сложный механизм. k8s посредством scheduler принимает решение о том где поднять ваши контейнеры (на какой ноде), учитывая все-все условия которые вы ему задали, например, регион, необходимое количество ресурсов, или даже свойство диска. Все это делается в k8s посредством меток, которые очень широко применяются внутри кластера буквально для всего, именно посредством них происходит связность между, например, описательной части deployment (Как запускать?) и сетевой части service (как подключаться к нашим контейнерам?). Ведь к каждой копии нужно как-то попадать, а значит ей надо настроить адрес, пробросить порт и сообщить куда надо чтобы трафик балансировался между репликами. Кстати в свое время эти две фразы произнесенные вслух коллегой помогли мне ясно осознать зачем нужны эти ресурсы - deploy, svc и надолго запомнились. Так вот, помимо решения этих вопросов, в это же время на мастере постоянно идет опрос состояния существующих контейнеров и состояния нод. Запросы идут через api - это еще один очень важный компонент в k8s, без которого вообще не будет функционировать ничего. Ну и еще etcd база данных где куб все это хранит. Все это крутится, вертится, постоянно идут опросы состояний, обработка кучи событий, итп итп. В общем бэкенд довольно мощный, писался кучей разных умных дядек в большом количестве. А для нас - удобная ручка, всего одна переменная. Теперь представьте что у вас дрогнула рука и вместо  30 реплик вы поднимаете 3330. Каждая реплика-под в моем случае состояла из 4 контейнеров. Итого почти 15000 докер-контейнеров. А дальше пошла веселуха. В первую минуту когда я понял что произошло я успел "сходить в апи" (выполнить команду) и откатил количество реплик до 30. Но, как говорится, было уже поздно. Шедулер уже принял ответственную задачу реализовать на физиках 15000 контейнеров. А это значит надо опросить каждую ноду на ее состояние, начать скачивание образа на выбранной ноде (читай на всех), начать поднимать контейнер... что? нет, контейнеры... нет, сотни контейнеров на всех нодах. И что делать? вновь и вновь опрашивать их состояния и записывать в базу. На второй минуте прилег шедулер. Он просто не заметил моей команды не делать то что он решил сделать. За ним от количества запросов прилегла апишка. LA подскочило примерно в 20 раз превышая количество ядрер, а диск был загружен под чистую. На последующих минутах ничего внятного от мастера добиться не удалось. И через 5 минут после происшествия на нодах стали в большом количестве стартовать контейнеры. Это серьезно заафектило ресурсы нод и в проде пошли падения и пятисотки.

В чем реально была проблема? Есть распространенное мнение что мастеру не нужно давать много ресурсов. И в 90% случаев это так. Но в данной ситуации мы просто не смогли вовремя прожевать команду отмены, и вместо этого начали выполнять самоубийственные действия. Во-вторых очень много времени было потрачено на то чтобы попытаться хоть как-то починить ситуацию не ребутая мастер.
источник
Админим с Буквой
Как починили? Был быстренько написан говноскрипт, который на всех нодах убивал создаваемые контейнеры. Поскольку шедулер и апишка валялись, то принимать статус и переподнимать их было некому, а значит так мы хотябы снимаем нагрузку с прода, который уже загибался. Когда апишка упала до такого состояния что по порту выдавался конекшн рефьюзд, а контейнер с ней на мастере просто мертветски лежал и даже уже не подергивался, приняли решение что хуже уже не будет и надо выключать мастер и накидывать ресурсы. Выполнив это действие получили результат моментально - очередь за пару минут разгреблась и все лишние реплики были удалены.

Мораль
Иногда простые и очевидные решения, которых по началу чураешься оказываются самыми верными. Проблему можно было купировать за несколько минут, даже не занимаясь говноскриптами с ручным убийством контейнеров на нодах. Ну и в общем да. Перепроверяйте что вы делаете.... Очень глупая ошибка, которая дорого стоила. И самое главное - настраивайте лимиты по ресурсам и реквестам
источник
2019 May 17
Админим с Буквой
Hey everyone! Helm 3.0.0-alpha.1 has been released. You can read all about what's changed by reading the release notes here.

В кратце:
- Tiller больше нет. Хелм будет использовать права конкретного пользователя и апишку куба напрямую для генерирования и деплоя.
- Имена релизов привязаны к неймспейсам. Теперь можно устанавливать релизы с одинаковыми именами одновременно (но в разные ns). Кроме того имя теперь является обязательным атрибутом при установке
- requirements.yaml перенесено в Chart.yaml
- валидация Chart Values с использованием JSONSchema
- упразднение helm serve
- переименовались некоторые команды
- helm --purge теперь выполняется по-умолчанию
источник
Админим с Буквой
регистрация: http://bit.ly/30jC9zS
источник
2019 May 20
Админим с Буквой
nginx ingress controller permanent redirect

annotation: nginx.ingress.kubernetes.io/permanent-redirect: https://company.com

В чем смысл писать это если есть дока? А смысл такой, что это не будет работать пока ты полностью не укажешь путь до бэкэнда. Промаялся с этим довольно долго((

spec:
 rules:
 - host: company.com
   http:
     paths:
     - backend:
         serviceName: company.ru
         servicePort: http

#ingress #kubernetes
источник
Админим с Буквой
Сортировка и выборка уникальных строк по колонке

Например если мы хотим сделать сортировку только по первой колонке:

sort -k1,1 -u file

З.Ы. -u = unique. делать sort | uniq не нужно.

#sort
источник
Админим с Буквой
Выравнивание текста

ANY_OUTPUT_FROM_ANYWHERE | column -t


позволяет убрать чрезмерные пробелы (или добавить) и выравнивает колонки
источник
2019 May 21
Админим с Буквой
Релизы

- memcached 1.5.15
- firefox 67
- nginx 1.17.0
- njs 0.3.2
- ansible 2.8.0
источник
Админим с Буквой
Так уж вышло, что еще одна интересная новость.

Cloudflare запустили Workers KV. Это такая крутая распределенное KV хранилище по 175+ серверам, причем edge серверам. Можно пихать туда до 2мб с минимальным латенси (медиана 12мс).

По сути можно забить на любой хостинг и держать все на еджах. Workers пишутся на js, но есть возможность WASM. И получается еще NoSQL в придачу.

https://blog.cloudflare.com/workers-kv-is-ga/

А тут аля туториал как сделать туду-лист:
https://blog.cloudflare.com/building-a-to-do-list-with-workers-and-kv/

PS я слышал инсайдик, что можно будет делать range-запросы в будущем. это считай порезанная реляционная будет.
источник
2019 May 22
Админим с Буквой
Что случится с dns 1 февраля 2020 года?

Интересная статья о том что сейчас происходит в мире DNS серверов.

https://habr.com/ru/post/452816/?utm_campaign=452816

#news
источник
Админим с Буквой
Релизы
- Kali Linux 2019.2
источник