Начиная с основ. Заканчивая деплоем в kubernetes.
OpenLDAP как обычное приложение на Linux сервере.
Master — Slave, Master — Master, Master — Master — Slave.
OpenLDAP containers.
OpenLDAP helm chart.
OpenLDAP и SSL, Keycloak, Linux users.
Задача стояла простая – развернуть кубер в закрытом периметре. Для этого в этот самый периметр надо передать используемые контейнеры. Загрузить их в локальное хранилище оных. Банальная операция:
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, работаем! Да уж.
Долго и витеевато матерился. Мораль:
Всем добра. Решил снять не характерный для меня цикл видео. Видео об одном приложении, от основ, конфигурации до контейнеризации и кубернитизации.
На данный момент сняты первые 4-ре видео. В свободном доступе видосики начнут появляться в Сентябре 2024 года. Смотрите анонсы премьер на моём канале в Youtube.
По традиции, все новые видео сразу выкладываются на мой канал на Boosty.
Цикл видео по управлению кластером kubernetes при помощи kubeadm.
Если вы планируете использовать только одну control node в кластере, этот раздел можно пропустить.
Если у вас в кластере будет несколько control nodes, рекомендую всегда включать High availability для доступа к kubernetes API из-за пределов кластера.
Решил пересесть на ноутбук с долгоиграющей батарейкой. Взял мак на М2 процессоре. День без проводов — это мощно!
Но, как всегда есть подводные камни. Например, не нашел бесплатный эмулятор терминала с возможностью запоминания сессий. Учитывая, что мне надо хранить сотни сессий…
Вобщем, пришлось написать для себя костыль на питоне. А что? Это нормальное поведение здорового Linux админа.
Termister. Оболочка над ssh. Позволяет в конфигурационных файлах сохранить списки и параметры серверов, разбитые на группы. https://github.com/BigKAA/termister
З.Ы. Хочу кнопку DEL!
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
Общие слова, введение в тему, установка.
Текстовая основа для видео: Видео раз. Основы helm.
Вакансия закрыта.
В нашей компании открылась вакансия «Системный администратор Linux«. Цена вопроса «от» указанной в вакансии.
Работа удалённая, ехать в Москву не надо 🙂
Граждан других государств (кроме Белоруссии) просьба не беспокоить, СБ Ваши кандидатуры не пропустит.
Небольшое видео, как подключить аутентификацию в ArgoCD с использованием Keycloak
Файлы, используемые в видео: https://github.com/BigKAA/youtube/tree/master/keycloak
Немного странный вариант установки, но позволяет заглянуть во внутренности.
Файлы используемые в видео: https://github.com/BigKAA/youtube/tree/master/keycloak