Понедельник, вторник, среда? Среда передачи данных!

Задача стояла простая – развернуть кубер в закрытом периметре. Для этого в этот самый периметр надо передать используемые контейнеры. Загрузить их в локальное хранилище оных. Банальная операция:

docker save -> ctr image import

Дальше теги, пуши и установка кубера.

И вот… Ставлю это я кубер. Запускается контейнер coredns и отваливается. Запускается и отваливается. Мягко говоря – необычная ситуация. Ясное дело, без внутреннего DNS ничего работать не будет.

Дескрайб пода показывает, что не срабатывают пробы. Судя по сообщению, очень похоже на то, когда кто-то режет подключение по сети к порту. Логов контейнер не дает, только сообщения о рестарте контейнера кубелетом из-за проваленных проб. Это очень странно.

Линукс, используемый на ноде, импортозамещенный с наворотами по безопасности. Первая мысль – опять что-то ИБ закрутило. Но нет. Там все оказалось в пределах нормы. Но время на проверку потратили много.

Дольше смотрим CNI куба. Первый раз в жизни я по логам containerd и calico отследил процесс от загрузки контейнера до выдачи поду IP адреса. Серьезно прокачал эту тему. Не то что бы что-то новое узнал, но погрузился значительно глубже чем нырял раньше.

В итоге картина: контейнер загружен, под запущен, сетевой интерфейс для пода создан, IPAM IP выделил, маршруты в таблице маршрутизации есть. В кубе это все видно. В Linux это все видно. Но не работает. Curl говорит, что отказано в подключении.

В голову полезли нехорошие мысли: потерял квалификацию, пора на пенсию, придется возвращать гонорар.

Ладно, проведем еще один эксперимент: вместо стандартного coredns, который ставит по умолчанию kubeadm, поставлю его последнюю версию. Закачали образ, намутил манифесты. Установил кубер без coredns по умолчанию. Запустил свой coredns – заработало! Эээ!

И тут я вспомнил – Telegram! В качестве среды передачи контейнера от меня к ним на первом хопе был Telegram. Где-то года полтора назад, мы через телегу перекидывали большой конфиг одного приложения. После подкидывания конфига, приложение тупо не заводилось. Обнаружили, что телега внесла изменения в файл, пока передавала его на ту сторону. Вот так вот.

Проверил контрольную сумму файла контейнера предыдущего coredns на своей машине и на сервере. Оба на! Контрольная сумма не совпадает.

Получается, что containerd запустил контейнер из битого образа! Скорее всего какой-то слой контейнера не того. (Это что получается, в файле контейнера не передаются контрольные суммы слоев?) Все остальные приложения обращаются к containerd, тот уверенно говорит: все Ок! Запущен, работает. Вот вам контейнер ID, работаем! Да уж.

Долго и витеевато матерился. Мораль:

  • — Telegramm не торт.
  • — CRC придумали не просто так.

OpenLDAP, анонс цикла видео

Всем добра. Решил снять не характерный для меня цикл видео. Видео об одном приложении, от основ, конфигурации до контейнеризации и кубернитизации.

На данный момент сняты первые 4-ре видео. В свободном доступе видосики начнут появляться в Сентябре 2024 года. Смотрите анонсы премьер на моём канале в Youtube.

По традиции, все новые видео сразу выкладываются на мой канал на Boosty.

Управление кластером при помощи kubeadm

Цикл видео по управлению кластером kubernetes при помощи kubeadm.

Немного необязательной информации

HA или не HA?

Если вы планируете использовать только одну control node в кластере, этот раздел можно пропустить.

Если у вас в кластере будет несколько control nodes, рекомендую всегда включать High availability для доступа к kubernetes API из-за пределов кластера.

Установка кластера

Обслуживание кластера

Видео, плейлисты:

На маке не хватает витаминов

Решил пересесть на ноутбук с долгоиграющей батарейкой. Взял мак на М2 процессоре. День без проводов — это мощно!

Но, как всегда есть подводные камни. Например, не нашел бесплатный эмулятор терминала с возможностью запоминания сессий. Учитывая, что мне надо хранить сотни сессий…

Вобщем, пришлось написать для себя костыль на питоне. А что? Это нормальное поведение здорового Linux админа.

Termister. Оболочка над ssh. Позволяет в конфигурационных файлах сохранить списки и параметры серверов, разбитые на группы. https://github.com/BigKAA/termister

З.Ы. Хочу кнопку DEL!

Kubernetes offline installation by kubespray

00:00 — План работы.
02:14 — Установка вспомогательных приложений.
12:56 — Подготовка файлов контейнеров и приложений.
25:15 — Перенос файлов за «забор».
30:50 — Установка кластера.

Файлы, используемые в видео: https://github.com/BigKAA/youtube/tree/master/k8s-step-by-step/07-starter

Telegramm: https://t.me/arturkryukov/26
VK: https://vk.com/video7111833_456239187

Вакансия Системный администратор Linux

Вакансия закрыта.

В нашей компании открылась вакансия «Системный администратор Linux«. Цена вопроса «от» указанной в вакансии.

Работа удалённая, ехать в Москву не надо 🙂

Граждан других государств (кроме Белоруссии) просьба не беспокоить, СБ Ваши кандидатуры не пропустит.

Almalinux и kubernetes

Almalinux — ответ на телодвижения с CentOS компаний RedHat и IBM. Решил проверить, как на этом дистре живет kubernetes.

Kubespray декларирует поддержку Almalinux:

Решил перевести домашний кластер кубера на этот дистрибутив. Скажу сразу, master ветка не завелась. Откатил kubespray на branch release-2.16. устанавливал k8s версии 1.21.1.

Если использовать минимальную установку, придется доставить пару пакетов, которые отсутствую по умолчанию.

Система завелась с полпинка.

Будем тестировать.