Траблшутинг в k8s: инструменты и лайфхаки для разработчиков
Бывали у вас сложные кейсы дебага ваших сервисов, когда логи ничего полезного не показывают, метрики молчат, а проблема есть, но непонятно, где?
➡️ У меня — да.
Завтра в 19:00 мы с Кириллом Борисовым встретимся в прямом эфире, чтобы разобрать как основы дебага сервисов в кубе, так и продвинутые механизмы для более сложных случаев.
🔷 начнём с kubectl,
🔷 посмотрим сайдкар контейнеры и узнаем, зачем их использовать,
🔷 разберёмся с сетевыми проблемами,
🔷 научимся использовать strace для сложных случаев.
Полезно будет, даже если ваши сервисы крутятся на bare metal или VM без намека на оркестрацию.
➡️ Когда: 14 мая в 19:00 мск
Занять место на вебинаре — через бота.
Научиться правильно разрабатывать приложение под k8s и запускать его в кластере — на курсе «Kubernetes для разработчиков».
Бывали у вас сложные кейсы дебага ваших сервисов, когда логи ничего полезного не показывают, метрики молчат, а проблема есть, но непонятно, где?
Завтра в 19:00 мы с Кириллом Борисовым встретимся в прямом эфире, чтобы разобрать как основы дебага сервисов в кубе, так и продвинутые механизмы для более сложных случаев.
Полезно будет, даже если ваши сервисы крутятся на bare metal или VM без намека на оркестрацию.
Занять место на вебинаре — через бота.
Научиться правильно разрабатывать приложение под k8s и запускать его в кластере — на курсе «Kubernetes для разработчиков».
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓1
Привет, на связи Маркус 🐈
Решил вздремнуть, пока вебинар по траблшутингу не начался. Кстати, он уже через час. Подробно про программу — в этом посте.
Ссылки на трансляцию придут в бота за 10 минут до старта — советую запустить его сейчас, чтобы ничего не пропустить.
➡️ ЗАНЯТЬ МЕСТО НА ВЕБИНАРЕ ⬅️
Решил вздремнуть, пока вебинар по траблшутингу не начался. Кстати, он уже через час. Подробно про программу — в этом посте.
Ссылки на трансляцию придут в бота за 10 минут до старта — советую запустить его сейчас, чтобы ничего не пропустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
VK Видео
Траблшутинг в k8s: инструменты и лайфхаки для разработчиков
Что будем обсуждать: - начнём с kubectl, - посмотрим сайдкар контейнеры и узнаем, зачем их использовать, - разберёмся с сетевыми проблемами, - научимся использовать strace для сложных случаев. Будет полезно, даже если ваши сервисы крутятся на bare metal…
Траблшутинг в k8s: запись вебинара
Вчера встречались с Кириллом Борисовым, чтобы поговорить про траблшутинг, разобрать основы и продвинутые механизмы дебага. Посмотрели инструменты, начиная от банального kubectl logs, продолжив использованием exec, debug, port-forward и прочих встроенных штук, и закончили по хардкору: strace, tcpdump, eBPF и много чего ещё.
Запись можно посмотреть тут⬇️
YouTube
VK Видео
Rutube
А ещё на вебинаре был секретный промокод на скидку 15% на курс «Kubernetes для разработчиков». Делюсь им с вами:
KUBDEV5
На курсе учимся правильно разрабатывать приложение под k8s и запускать его в кластере.
➡️ Занять место со скидкой — по ссылке.
Вчера встречались с Кириллом Борисовым, чтобы поговорить про траблшутинг, разобрать основы и продвинутые механизмы дебага. Посмотрели инструменты, начиная от банального kubectl logs, продолжив использованием exec, debug, port-forward и прочих встроенных штук, и закончили по хардкору: strace, tcpdump, eBPF и много чего ещё.
Запись можно посмотреть тут
YouTube
VK Видео
Rutube
А ещё на вебинаре был секретный промокод на скидку 15% на курс «Kubernetes для разработчиков». Делюсь им с вами:
На курсе учимся правильно разрабатывать приложение под k8s и запускать его в кластере.
ВАЖНО! Воспользоваться промокодом можно только сегодня, ровно в полночь волшебство перестанет действовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
API, за которые не стыдно
Сколько раз вы, глядя на API своих сервисов, пытались по метрикам угадать, кто и, главное, зачем в него стучится? А сколько раз приходилось саппортить легаси, где авторы давно сменили проект, страну или даже профессию, оставив после себя свалку из API endpoints, которые трогать — себе дороже?
Сегодня мы разберемся, как проектировать API, которые выдержат испытание временем, переживут несколько поколений команд-разрабов и не станут причиной твоего профессионального выгорания.
И да, наш любимый Кубер поможет нам не только развернуть это добро, но и правильно его готовить и обслуживать.
🔷 Читать — по ссылке 🔷
Сколько раз вы, глядя на API своих сервисов, пытались по метрикам угадать, кто и, главное, зачем в него стучится? А сколько раз приходилось саппортить легаси, где авторы давно сменили проект, страну или даже профессию, оставив после себя свалку из API endpoints, которые трогать — себе дороже?
Сегодня мы разберемся, как проектировать API, которые выдержат испытание временем, переживут несколько поколений команд-разрабов и не станут причиной твоего профессионального выгорания.
И да, наш любимый Кубер поможет нам не только развернуть это добро, но и правильно его готовить и обслуживать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
API, за которые не стыдно
ПРОБЛЕМА: API на коленке или планирование уровня тяп-ляп и в продакшн API, спроектированные по принципу лишь бы работало и побыстрее, неизбежно создают техдолг. Хаотичные изменения, полное игнорирование версионирования, отсутствие внятной политики вывода…
🔥9🌚1
Привет, на связи Маркус
Я вернулся, чтобы сказать вам, что продвинутый курс по k8s для разработчиков стартует уже через неделю.
🐈 Фундаментальные знания с акцентом на разработку
🐈 79% программы — практика и работа со стендами
🐈 Траблшутинг
🐈 Итоговая сертификация, которая закрепляет весь пройденный материал и навыки
Практика на курсе обновлена в сентябре 2024 года(свежее всех на свете рыбов, даже нидерландской селёдки).
Подробности — на странице курса.
Я вернулся, чтобы сказать вам, что продвинутый курс по k8s для разработчиков стартует уже через неделю.
Практика на курсе обновлена в сентябре 2024 года
Подробности — на странице курса.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3👍2
Обновляем k8s без слез
Часть 1
Представьте, что вы решили обновить свой кластер Kubernetes. Все здорово, новые фичи, исправление уязвимостей, новые баги.
Но что, если что-то сломается? Что, если вы используете deprecated API, которые в новой версии Kubernetes решили выпилить?
➡️ Вот тут-то на помощь приходит
Что такое Kubent и зачем он нужен?
Как работает?
Он подключается к кластеру, используя ваш kubeconfig, получает информацию о ресурсах кластера и на основе списка заданных правил сообщает, какие из используемых API стали deprecated.
Вы, вероятно, слышали про язык rego для написания политик в open policy agent.
Не самый удобный язык, скажем так. Однако именно он работает внутри
Например, здесь мы видим, что функционал volume snapshots с бета версией, которые впервые стал general availability в k8s аж в версии 1.20, когда-то будет удален из k8s.
Другими словами
перестанет работать и останется только
Гайд по установке можно найти тут.
Как исправить найденные проблемы
После анализа результатов вам нужно исправить все проблемы, связанные с использованием deprecated API. Для этого вам нужно обновить манифесты ресурсов, чтобы использовать актуальные API версии.
Часть 1
Представьте, что вы решили обновить свой кластер Kubernetes. Все здорово, новые фичи, исправление уязвимостей, новые баги.
Но что, если что-то сломается? Что, если вы используете deprecated API, которые в новой версии Kubernetes решили выпилить?
kubent
.Что такое Kubent и зачем он нужен?
Kubent
(kube no trouble) — это инструмент, который сканирует ваш кластер и сообщает об использовании deprecated API. Другими словами, kubent
заранее предупреждает о возможных проблемах, позволяя вам подготовиться к обновлению кластера.Как работает?
Он подключается к кластеру, используя ваш kubeconfig, получает информацию о ресурсах кластера и на основе списка заданных правил сообщает, какие из используемых API стали deprecated.
Вы, вероятно, слышали про язык rego для написания политик в open policy agent.
Не самый удобный язык, скажем так. Однако именно он работает внутри
kubent
: правила можно посмотреть здесь.Например, здесь мы видим, что функционал volume snapshots с бета версией, которые впервые стал general availability в k8s аж в версии 1.20, когда-то будет удален из k8s.
Другими словами
apiVersion: snapshot.storage.k8s.io/v1beta1
перестанет работать и останется только
apiVersion: snapshot.storage.k8s.io/v1
Гайд по установке можно найти тут.
Как исправить найденные проблемы
После анализа результатов вам нужно исправить все проблемы, связанные с использованием deprecated API. Для этого вам нужно обновить манифесты ресурсов, чтобы использовать актуальные API версии.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Обновляем k8s без слез
Часть 2
Продолжаем говорить про обновление k8s, и сегодня разберём другую проблему, с которой можно столкнуться.
К сожалению в базе правил нет многих сторонних инструментов. Например, правил для istio, где большая часть CRD перешла в стабильную стадию.
Конкретно для istio есть это.
И есть в документации одна замечательная строка
Прекрасно, разбирайтесь сами, что поддерживается, копаясь в коде 😂
Например, для определения deprecated APIs и полей можно посмотреть это или запустить
По итогу со всей этой гонкой апдейтов получаем большой operational toil: добавляем сотни разных CRD в кластер и затем нужно отслеживать, а не сломаются ли они при релизе новой версии стороннего контроллера/оператора. А сбоку появляются и дополнительные приколы, связанные не просто с deprecation, а с полной миграцией настроек одного API на другой API.
Да, речь про gateway API.
Мы вам создали ресурсы ingress, но поняли, что сделали плохо, поэтому теперь точно сделаем хорошо, пострадайте всего лишь еще один раз, переписывая манифесты под новый формат (и попутно создавая новые баги, с которыми еще не встречались). При этом gateway API, на мой взгляд, очень сильно напоминает ресурсы istio.
На самом деле, конечно же, это не так, ingress обещают поддерживать условно бесконечно.
Про gateway API и почему его создали расскажу в другой раз.
И напоследок: альтернативный инструмент. Он уже, кажется, поддерживает побольше deprecated APIs из коробки. Посмотреть можно здесь.
Часть 2
Продолжаем говорить про обновление k8s, и сегодня разберём другую проблему, с которой можно столкнуться.
К сожалению в базе правил нет многих сторонних инструментов. Например, правил для istio, где большая часть CRD перешла в стабильную стадию.
Конкретно для istio есть это.
И есть в документации одна замечательная строка
What analyzers are supported today?
We’re still working to documenting the analyzers. In the meantime, you can see all the analyzers in the Istio source.
Прекрасно, разбирайтесь сами, что поддерживается, копаясь в коде 😂
Например, для определения deprecated APIs и полей можно посмотреть это или запустить
istioctl analyze
на вашем кластере.По итогу со всей этой гонкой апдейтов получаем большой operational toil: добавляем сотни разных CRD в кластер и затем нужно отслеживать, а не сломаются ли они при релизе новой версии стороннего контроллера/оператора. А сбоку появляются и дополнительные приколы, связанные не просто с deprecation, а с полной миграцией настроек одного API на другой API.
Да, речь про gateway API.
Мы вам создали ресурсы ingress, но поняли, что сделали плохо, поэтому теперь точно сделаем хорошо, пострадайте всего лишь еще один раз, переписывая манифесты под новый формат (и попутно создавая новые баги, с которыми еще не встречались). При этом gateway API, на мой взгляд, очень сильно напоминает ресурсы istio.
На самом деле, конечно же, это не так, ingress обещают поддерживать условно бесконечно.
Про gateway API и почему его создали расскажу в другой раз.
И напоследок: альтернативный инструмент. Он уже, кажется, поддерживает побольше deprecated APIs из коробки. Посмотреть можно здесь.
🔥4👍3
Ностальгии пост
Если вам далеко за 30 и вы давно в IT, то велика вероятность, что вы когда-то (может и сейчас) работали сисадмином (или программистом-админом-эникеем-заправлятелем принтеров).
Это были те времена, когда «войти в IT» никому не было нужно, и сильно больших перспектив в отрасли вряд ли можно было достичь. Обычная обслуживающая работа: починить, настроить, поставить, автоматизировать.
Ключевые слова для олдов: башорг, итхэппенс, лор, ирка, домовые сети.
Я сам начинал админствовать помаленьку с линуксовыми серверами, поднимал IP телефонию поверх openvpn между филиалами одной конторы (о, эти часы копания с tcpdump с поисками, где теряется голосовой трафик), переносил почтовый сервер с полумертвого железа с сохранением всех почтовых ящиков, автоматизировал раскатывание новых машин через PXE boot, внедрял zabbix там, где о мониторинге и не думали, и многое другое.
И, что самое главное, все это стало возможным благодаря развитию сетей. Без нормальной сетевой связности с низкой latency и с высоким throughput не было бы ни кубернетиса, ни прочих распределенных систем.
Скажем за все спасибо ETHERNET!
Итак, сегодня, 22 мая, день рождения ethernet. Считается, что технология была изобретена аж в 1973 году.
Все началось с коаксиальных кабелей. У них была куча проблем: малая гибкость, скорость, стоимость.
Все изменилось, когда витая пара пошла в массы. О, сколько кабелей было обжато кримпером.
А схема обжима заучена наизусть. Вот шпаргалка по порядку выбора проводов:
Развели тут кубернетисы и прочие прометеусы.
Вот в наше время сервера были настоящие, их можно было потрогать и еще они могли прикольно делать пшшш, если внутри что-то сгорало, а не эти ваши бездушные облака, в которых и железо не потрогаешь.
Эх, где мои патч-корды!
Если вам далеко за 30 и вы давно в IT, то велика вероятность, что вы когда-то (может и сейчас) работали сисадмином (или программистом-админом-эникеем-заправлятелем принтеров).
Это были те времена, когда «войти в IT» никому не было нужно, и сильно больших перспектив в отрасли вряд ли можно было достичь. Обычная обслуживающая работа: починить, настроить, поставить, автоматизировать.
Ключевые слова для олдов: башорг, итхэппенс, лор, ирка, домовые сети.
Я сам начинал админствовать помаленьку с линуксовыми серверами, поднимал IP телефонию поверх openvpn между филиалами одной конторы (о, эти часы копания с tcpdump с поисками, где теряется голосовой трафик), переносил почтовый сервер с полумертвого железа с сохранением всех почтовых ящиков, автоматизировал раскатывание новых машин через PXE boot, внедрял zabbix там, где о мониторинге и не думали, и многое другое.
И, что самое главное, все это стало возможным благодаря развитию сетей. Без нормальной сетевой связности с низкой latency и с высоким throughput не было бы ни кубернетиса, ни прочих распределенных систем.
Скажем за все спасибо ETHERNET!
Итак, сегодня, 22 мая, день рождения ethernet. Считается, что технология была изобретена аж в 1973 году.
Все началось с коаксиальных кабелей. У них была куча проблем: малая гибкость, скорость, стоимость.
Все изменилось, когда витая пара пошла в массы. О, сколько кабелей было обжато кримпером.
А схема обжима заучена наизусть. Вот шпаргалка по порядку выбора проводов:
😁12👍8❤1
Вопрос для тех, кто помнит разницу между хабами и свитчами. Популярный вопрос был в свое время на собеседовании на сисадмина.
Что произойдет, если взять один патч-корд и воткнуть оба его конца в один и тот же неуправляемый коммутатор?
Что произойдет, если взять один патч-корд и воткнуть оба его конца в один и тот же неуправляемый коммутатор?
Anonymous Quiz
18%
Ничего не произойдет. Коммутатор просто будет передавать данные сам себе.
3%
Коммутатор начнет работать в режиме повторителя, усиливая сигнал и передавая его на все порты.
78%
Коммутатор создаст петлю, и в сети возникнет широковещательный шторм, способный парализовать ее.
2%
Коммутатор перегорит.
👍3💔1
Правильный ответ: 3
Пояснение: Если на коммутаторе нет работающего протокола STP, то он не умеет обнаруживать и предотвращать петли. Он просто тупо передает все пакеты на все порты. В результате, когда ты создашь петлю, пакеты начнут бесконечно циркулировать по сети, создавая широковещательный шторм, который очень быстро забьет всю полосу пропускания и сделает сеть неработоспособной.
Наверняка такую ошибку допускали многие, перепутав порты на патч-панели. Для тех, кто никогда не работал с физическими сетями, патч-панели — на фото.
В реальности все часто было не так красиво, как на первой фотографии — скорее, как на второй. И не потому, что админ негодяй, а потому, что все это нарастает годами, а времени плотно заняться рефакторингом сети никогда нет. Да и есть риск сломать сеть так, что потом будешь долго искать, какой из сотен кабелей воткнул не в тот vlan, к примеру.
Пояснение: Если на коммутаторе нет работающего протокола STP, то он не умеет обнаруживать и предотвращать петли. Он просто тупо передает все пакеты на все порты. В результате, когда ты создашь петлю, пакеты начнут бесконечно циркулировать по сети, создавая широковещательный шторм, который очень быстро забьет всю полосу пропускания и сделает сеть неработоспособной.
Наверняка такую ошибку допускали многие, перепутав порты на патч-панели. Для тех, кто никогда не работал с физическими сетями, патч-панели — на фото.
В реальности все часто было не так красиво, как на первой фотографии — скорее, как на второй. И не потому, что админ негодяй, а потому, что все это нарастает годами, а времени плотно заняться рефакторингом сети никогда нет. Да и есть риск сломать сеть так, что потом будешь долго искать, какой из сотен кабелей воткнул не в тот vlan, к примеру.
👍7❤1
Как встроить безопасность в свои процессы?
➡️ 4 июня в 19:00 мск — бесплатный вебинар с экспертами Kaspersky и Positive Technologies.
🔹 Dev vs Sec: всё ещё не разговаривают — почему?
🔹 Что DevSecOps может, а что не может?
🔹 Где DevSecOps реально помогает бизнесу, а где мешает?
🔹 Time to market — вечная басня, которая не про DevSecOps
🔹 Где в DevSecOps сейчас Ops, если DevSecOps это AppSec?
Ссылка на трансляцию придёт в бота в день вебинара. Занимайте места в первом ряду!
А пока ждёте — пройдите короткий тест из 5 вопросов и узнайте, насколько ваша команда готова к DevSecOps.
➡️ Подробности — в боте.
Ссылка на трансляцию придёт в бота в день вебинара. Занимайте места в первом ряду!
А пока ждёте — пройдите короткий тест из 5 вопросов и узнайте, насколько ваша команда готова к DevSecOps.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
«Kubernetes для разработчиков» стартовал!🐈
Ближайшие 7 недель мы с коллегами будем учить студентов:
➡️ создавать и настраивать CronJob в Kubernetes, контролировать частоту выполнения задач;
➡️ устанавливать ограничения на перезапуск подов и задавать тайм-ауты на выполнение задач;
➡️ создавать и конфигурировать Service и Ingress для различных Deployment;
➡️ деплоить в Kubernetes, управлять переменными окружения контейнера и работать с логами подов, сохраняя их на указанные пути;
➡️ создавать и настраивать Helm-чарты для приложений, включая интеграцию с Redis через PersistentVolumeClaim;
➡️ настраивать CI/CD пайплайн в GitLab для автоматического билда, пуша образов и деплоя приложения в кластер Kubernetes.
В конце курса — итоговая сертификация, которая позволит закрепить весь пройденный материал и отработать полученные навыки. Вы будете на стенде приводить кластер к определённому состоянию — запускать приложения, создавать абстракции.
Присоединиться можно до конца недели. Подробности — по ссылке.
Ближайшие 7 недель мы с коллегами будем учить студентов:
В конце курса — итоговая сертификация, которая позволит закрепить весь пройденный материал и отработать полученные навыки. Вы будете на стенде приводить кластер к определённому состоянию — запускать приложения, создавать абстракции.
Присоединиться можно до конца недели. Подробности — по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
k8s и бородатая база: сеть и unix
Ситуация:
➡️ Вы развернули on-premise кластер. Никаких managed сервисов в облаке, где можно одной кнопкой нарастить ноды, если вдруг лень освоить Terraform или другие инструменты IaC.
➡️ Внезапно нода отказывается регистрироваться в кластере. В логах тишина (кстати, в каких логах? компонентов-то много, которые логи пишут), kubectl get nodes показывает, что нода «NotReady». Что делать?
Помните времена dial-up модемов и админов, рулящих правилами iptables через
Знание UNIX-like систем — это база! k8s построен поверх базовых вещей: демонов, процессов, файловой системы, сетевых взаимодействий, сертификатов и так далее. Например, kubelet, может запускаться как systemd unit, и если у вас on prem кластер, умение продебажить проблемы на уровне linux может в редких случаях пригодиться.
➡️ Возвращаясь к ситуации выше — вот, какие есть варианты решения:
Вариант 1 (без solid знаний UNIX и сети)
Панически перезапускаем все подряд, молимся, обновляем k8s до последней версии (а вдруг поможет!).
Вариант 2 (с solid знаниями UNIX и сети)
🟠 Проверяем системные логи на ноде.
🟠 Возможно, проблема с DNS, с сертификатами, с дисковым пространством, с сетью, с файрволом, с роутингом, с неожиданно сбоящей сетевой картой, в которой багованная прошивка (реальная история), да много чего еще.
🟠 Смотрим конфигурацию kubelet.
🟠 Анализируем сетевую конфигурацию ноды.
🟠 Проверяем SELinux/AppArmor. Эти системы безопасности могут блокировать доступ kubelet к необходимым ресурсам.
🟠 Не забываем про файрвол! Возможно, файрвол на ноде блокирует трафик от kubelet к kube-apiserver. Может быть вы разворачиваете ноды через ansible и где-то была внесена правка в переменных, из-за которых для всех новых настраиваемых нод файрвол неожиданно подкидывал начал подкидывать правила, которые вообще не для k8s нод предназначались.
И вот, спустя часы копания в логах вы докопались до причины.
Ситуация:
Помните времена dial-up модемов и админов, рулящих правилами iptables через
/etc/rc.local
(на или через другие init скрипты)? Но сегодня у нас есть k8s, виртуализация и прочие абстракции, призванные упростить нашу жизнь при работе at scale (или нет).Знание UNIX-like систем — это база! k8s построен поверх базовых вещей: демонов, процессов, файловой системы, сетевых взаимодействий, сертификатов и так далее. Например, kubelet, может запускаться как systemd unit, и если у вас on prem кластер, умение продебажить проблемы на уровне linux может в редких случаях пригодиться.
Вариант 1 (без solid знаний UNIX и сети)
Панически перезапускаем все подряд, молимся, обновляем k8s до последней версии (а вдруг поможет!).
Вариант 2 (с solid знаниями UNIX и сети)
journalctl -u kubelet -f
cat /var/lib/kubelet/config.yaml
. Мало что там понимаем 😂, но главное, посмотрели с умным видом.ip addr show, ip route show
, iptables -L
(или nft list ruleset
, если у вас современный дистрибутив). Убеждаемся, что сеть настроена правильно, что трафик между воркер нодой и мастер нодой не блокируется, что DNS резолвится корректно.ausearch -m AVC -ts recent
может помочь выявить проблемы.И вот, спустя часы копания в логах вы докопались до причины.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5🤓2
Всегда виноват DNS (или сертификаты).
➡️ В продолжение вчерашнего поста — реальный кейс из практики.
Представьте, что есть внутренний DNS сервер, который автоматически регистрирует новые (и старые, конечно) серверы. Как - непринципиально. Хоть статикой через ansible, хоть через consul dns, хоть через любые другие велосипеды🚴
На новый сервер для новой k8s ноды так же через ansible все раскатили, но kubelet не хочет регистрироваться — ошибка сертификата. При этом DNS адрес API сервера правильный. Чудеса. IP адрес все равно никто не смотрел.
Long story short: в сети, без какой-то сегментации и с общим dns сервером оказалось 2 k8s кластера. Просто второй по ошибке частично раскатили «поверх» первого, подменив dns запись до API сервера (перезаписав в DNS сервере). Ну а кешировать DNS записи можно и на сутки, так что другие ноды вполне продолжали работать до поры до времени.
Все работает. Пока не перестанет.
➡️ Что почитать, чтобы получить более основательные знания сетей?
1. Таненбаум, «Компьютерные сети»
Он известен еще и тем, что создал minix — учебную ОС для изучения студентами. А так же как человек, активно споривший с Линусом Торвальдсом по поводу дизайна ядра Linux в далеком 1992, когда Торвальдс только начинал писать linux.
2. «Сети для самых маленьких»
Более простой путь, без погружения в преобразование Фурье.
Вопрос на подумать: к каким проблемам приведет mismatch MTU на api server и kubelet для on prem инфраструктуры? Пишите в комментариях⬇️
Представьте, что есть внутренний DNS сервер, который автоматически регистрирует новые (и старые, конечно) серверы. Как - непринципиально. Хоть статикой через ansible, хоть через consul dns, хоть через любые другие велосипеды🚴
На новый сервер для новой k8s ноды так же через ansible все раскатили, но kubelet не хочет регистрироваться — ошибка сертификата. При этом DNS адрес API сервера правильный. Чудеса. IP адрес все равно никто не смотрел.
Long story short: в сети, без какой-то сегментации и с общим dns сервером оказалось 2 k8s кластера. Просто второй по ошибке частично раскатили «поверх» первого, подменив dns запись до API сервера (перезаписав в DNS сервере). Ну а кешировать DNS записи можно и на сутки, так что другие ноды вполне продолжали работать до поры до времени.
Все работает. Пока не перестанет.
1. Таненбаум, «Компьютерные сети»
Он известен еще и тем, что создал minix — учебную ОС для изучения студентами. А так же как человек, активно споривший с Линусом Торвальдсом по поводу дизайна ядра Linux в далеком 1992, когда Торвальдс только начинал писать linux.
2. «Сети для самых маленьких»
Более простой путь, без погружения в преобразование Фурье.
Вопрос на подумать: к каким проблемам приведет mismatch MTU на api server и kubelet для on prem инфраструктуры? Пишите в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3
Всем тем, кто прохавал YAML с самого низа, посвящается.
Если вы имеете дело с k8s и считаете, что YAML — это простой язык, обязательно прочитайте легендарный «YAML document from hell», откроете для себя много нового.
Тем, кто уже читал — мое почтение🎩
Ещё парочка полезных советов:
🟣 YAMLLint — чтобы автоматизировать проверки и не наступать на грабли.
🟣 Kubernetes для разработчиков — чтобы научиться правильно разрабатывать приложение под k8s и запускать его в кластере. До 2 июня при покупке тарифа «видеокурс» — 6 встреч с обратной связью в подарок.
➡️ Подробности — на странице курса ⬅️
Если вы имеете дело с k8s и считаете, что YAML — это простой язык, обязательно прочитайте легендарный «YAML document from hell», откроете для себя много нового.
Тем, кто уже читал — мое почтение🎩
Ещё парочка полезных советов:
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓9❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Мы с котом ведем этот канал уже почти полгода 🔥
И пока Маркус преисполняется RHСP(ставьте 😻, если нужно больше постов с ним) , я собрал для вас дайджест самых мясных материалов за всю историю моего присутствия здесь. Погнали!
➡️ Как работают requests/limits изнутри
➡️ Используем Sidecar Pattern во благо.
→ Часть 1
→ Часть 2
➡️ Что лежит в основе работы service mesh, и как нам в этом поможет Linux?
➡️ План онбординга в компанию
→ Часть 1
→ Часть 2
→ Часть 3
➡️ Типичные ошибки найма
➡️ Secret injection webhook
➡️ Как изучать новое с пользой и с доставкой прямо в ваш inbox?
➡️ CRI, CSI, CNI
➡️ Align expectations: почему это ключ к успеху почти в любой задаче
➡️ Собесы с алгоритмами — это лишь входной фильтр!
→ Часть 1
→ Часть 2
➡️ Роли в технических командах: запись прямого эфира
→ YouTube
→ VK Видео
→ Rutube
→ Дзен
➡️ API, за которые не стыдно
➡️ Ностальгии пост: с днем рождения, ETHERNET!
➡️ k8s и бородатая база: сеть и unix
В комментариях к этому посту можно свободно делиться своими мыслями о контенте, который я выкладываю, и писать пожелания для будущих публикаций⬇️
И пока Маркус преисполняется RHСP
→ Часть 1
→ Часть 2
→ Часть 1
→ Часть 2
→ Часть 3
→ Часть 1
→ Часть 2
→ YouTube
→ VK Видео
→ Rutube
→ Дзен
В комментариях к этому посту можно свободно делиться своими мыслями о контенте, который я выкладываю, и писать пожелания для будущих публикаций
Please open Telegram to view this post
VIEW IN TELEGRAM