#linux
🤬 Забыли пароль от root? Не проблема!
Не думал, что столкнусь с этим, но это случилось. Две недели назад я ставил Kubernetes🖼️ кластер через VirtualBox, в качестве ОС использовался Debian 👩💻 . И вот я захотел вернуться к кластеру, но не тут то было.... Я перепробовал пароли, которые обычно ставлю на локальные машины (admin, 1234, etc), но ничего из этого не подошло. Благо я настроил доступ по SSH-ключу, но sudo без пароля не работает. 🤡
Т.к виртуальный диск не зашифрован, то сбросить пароль можно с помощью утилиты System Rescue.
Можно сделать загрузочную флешку, если ОС у вас поставлена на ПК. Так как мне нужно восстановить доступ к ВМ, то делать буду через VirtualBox.
(1) Зайдем в настройки ВМ -> Storage -> Controller: IDE. Тут снизу нажмем на диск, а затем на "Choose a virtual optical disk". Укажем iso образ. Затем перейдем в раздел System и поменяем Boot order (2).🤓
Загрузимся и увидим командую оболочку. Получим список всех разделов и смонтируем тот, где хранится ОС. Сменим корневую директорию и выполним passwd (3). DONE!
Снова сменим порядок загрузки и попробуем ввести новый пароль (3). DONE!😮
Не думал, что столкнусь с этим, но это случилось. Две недели назад я ставил Kubernetes
Т.к виртуальный диск не зашифрован, то сбросить пароль можно с помощью утилиты System Rescue.
Можно сделать загрузочную флешку, если ОС у вас поставлена на ПК. Так как мне нужно восстановить доступ к ВМ, то делать буду через VirtualBox.
(1) Зайдем в настройки ВМ -> Storage -> Controller: IDE. Тут снизу нажмем на диск, а затем на "Choose a virtual optical disk". Укажем iso образ. Затем перейдем в раздел System и поменяем Boot order (2).
Загрузимся и увидим командую оболочку. Получим список всех разделов и смонтируем тот, где хранится ОС. Сменим корневую директорию и выполним passwd (3). DONE!
fdisk -l
mount /dev/sda1 /mnt
arch-chroot /mnt
passwd azamat
Снова сменим порядок загрузки и попробуем ввести новый пароль (3). DONE!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1🔥1
#k8s, #gitops, #helm, #argocd
🖼️ Наведите порядок в ваших репозиториях с Kubernetes 🖼️ манифестами с GitOps подходом!
🤓 Про деплой собственных приложении я писал ранее на Хабре. Изначально это были просто YAML манифесты, затем я написал собственный Helm-чарт🖼️ , сейчас - перевожу всё в kustomize.
🤔 Но помимо сервисов, которые пишут разработчики, в кластер нужно деплоить сторонние приложения: базы данных, брокеры, системы мониторинга и логирования.
⚠️ В таком случае я всегда создавал репозитории, где по разным директориям были разбросаны yaml манифесты, bash скрипты для деплоя Helm-чартов и прочее. Спустя небольшое количество времени такой репозитории превращается в свалку, а когда нужно что-то изменить, то это приводит к сложностям.
Про GitOps я слышал достаточно часто: сначала в чатах, а затем на собеседованиях. Я думал, что в текущих масштабах такой подход не нужен - справлюсь своими руками. Но я все же решил попробовать и.... мне понравилось!
ArgoCD - это инструмент, позволяющий поддерживать состояние Kubernetes кластера в соответствии с содержимым Git-репозитория. Таким образом тулза сама отслеживает изменения в коде и применяет их в один или несколько кластеров.
ArgoCD поддерживает стандартные yaml манифесты, Helm-чарты и kustomize. Помимо этого, он позволяет создавать сущности Application, с помощью которых можно гибко управлять различными настройками.
✍️ Советую изначально использовать паттерн App-of-Apps. Таким образом, вы можете создать корневое приложение, которое будет само управлять другими "дочерними" приложениями. Плюс - вы получите красивые схемы в UI =)
😐 Я столкнулся с тем, что ресурсы уже были развернуты. Как действовать в таком случае?
Изначально советую выключить prune и selfHeal опции, чтобы избежать непоправимых последствии. prune: false не позволит ArgoCD удалять ресурсы куба, тогда как selfHeal: false автоматически приводить кластер в описанное состояние.
Если вы хотите отдать yaml манифесты ArgoCD, то ничего делать не нужно - ArgoCD после процесса синхронизации поймет, что ресурс с таким названием в таком неймспейсе развернут и трогать его не будет.
👍 С хелмом дела обстоят иначе. Я ставил все чарты командой
Для паттерна App-For-Apps вы можете использовать настройки
Я сделал приложения для каждого компонента кластера: как для Helm-чартов, так и для YAML манифестов. Все приложения описаны в файлах app.yaml, которые находятся в разных уровнях вложенности. Поэтому в directory.include я указал находить все подобные файлы и применять их:
Для приложении, которые используют YAML-манифесты, я задавал в качестве источников пути до этих самых манифестов:
🙂 Так, получалась следующая связь:
root-app -> kafka -> plain YAML manifests
🤓 Про деплой собственных приложении я писал ранее на Хабре. Изначально это были просто YAML манифесты, затем я написал собственный Helm-чарт
🤔 Но помимо сервисов, которые пишут разработчики, в кластер нужно деплоить сторонние приложения: базы данных, брокеры, системы мониторинга и логирования.
Про GitOps я слышал достаточно часто: сначала в чатах, а затем на собеседованиях. Я думал, что в текущих масштабах такой подход не нужен - справлюсь своими руками. Но я все же решил попробовать и.... мне понравилось!
ArgoCD - это инструмент, позволяющий поддерживать состояние Kubernetes кластера в соответствии с содержимым Git-репозитория. Таким образом тулза сама отслеживает изменения в коде и применяет их в один или несколько кластеров.
ArgoCD поддерживает стандартные yaml манифесты, Helm-чарты и kustomize. Помимо этого, он позволяет создавать сущности Application, с помощью которых можно гибко управлять различными настройками.
Изначально советую выключить prune и selfHeal опции, чтобы избежать непоправимых последствии. prune: false не позволит ArgoCD удалять ресурсы куба, тогда как selfHeal: false автоматически приводить кластер в описанное состояние.
Если вы хотите отдать yaml манифесты ArgoCD, то ничего делать не нужно - ArgoCD после процесса синхронизации поймет, что ресурс с таким названием в таком неймспейсе развернут и трогать его не будет.
helm install
, тогда как ArgoCD использует helm template | kubectl apply -f -
. Я не знал как поведет себя ArgoCD в таком случае, а у меня не было желания переустанавливать все чарты. Но оказалось всё просто: ArgoCD сам подхватил ресурсы релизов. Чтобы полностью вывести ресурсы из управления helm, необходимо удалить секреты, которые создаются для каждого релиза и имеют Type: helm.sh/release.v1.Для паттерна App-For-Apps вы можете использовать настройки
directory.recurse
и directory.include
. ArgoCD не предлагает вам определенную структуру папок, вы сами можете её организовать как вам удобно.Я сделал приложения для каждого компонента кластера: как для Helm-чартов, так и для YAML манифестов. Все приложения описаны в файлах app.yaml, которые находятся в разных уровнях вложенности. Поэтому в directory.include я указал находить все подобные файлы и применять их:
directory:
recurse: true
jsonnet: {}
include: '**/app.yaml'
Для приложении, которые используют YAML-манифесты, я задавал в качестве источников пути до этих самых манифестов:
- path: apps/kafka/cluster
repoURL: https://github.com/AzamatKomaev/argocd-example.git
targetRevision: HEAD
- path: apps/kafka/topics
repoURL: https://github.com/AzamatKomaev/argocd-example.git
targetRevision: HEAD
- path: apps/kafka/users
repoURL: https://github.com/AzamatKomaev/argocd-example.git
targetRevision: HEAD
root-app -> kafka -> plain YAML manifests
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Заказал я себе тут мастер+воркер узел для self-managed kubernetes. Но после вскрытия пришло так же осознание, что существует micro HDMI разъем (второй скрин) 🤡
Теперь ждём переходник😭
Теперь ждём переходник
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#habr, #k8s, #ArgoCD, #gitops
Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD
Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD
Habr
Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD
Вступление Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть...
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps-им по-взрослому
Photo
Решил обновить свое устройство, так как старое уже не вывозило. Не найдя новый достойный аппарат за приемлимый ценник, решил глянуть в сторону бу. Конечно, был страх, что меня обманут и отправят кирпич, но этого не случилось.
- Конечно же более мощные ресурсы: процессор Intel Core i7-1185G7 (против Intel Core i3-1005G1), дискретная видеокарта (хоть и не такая мощная), 48Gi оперативной памяти против 12Gi у IdeaPad.
- IPS-матрица против TN-матрицы. Экран стал более ярким и четким. При повороте ноутбука качество картинки почти не меняется. Достаточно весомо!
- Вес. Классические ThinkPad-ы весят 1.2кг-1.3кг. Тут же 1.5кг (за счет более мощных ресурсов), на 300 грамм меньше, чем у моего предыдущего ноутбука. Таскать ноутбук в руках/портфеле стало намного удобнее.
- Автономность. Заряда ThinkPad при стандартной девопсерской работе (несколько окон с терминалом, браузером и запущенными контейнерами) хватает до 5 часов, тогда как IdeaPad уже умирал через полтора. С другой стороны зарядка - теперь это более быстрый Type-C.
- Остальные плюшки по типу более приятной клавиатуры, входу по отпечатку пальца и подсветки клавиатуры. За последнее зачет!
ThinkPad пришел уже с установленной Windows 11?,
Третьей попыткой поставил Ubuntu, биос снова не видит вторую ОС! На старый ноутбук я сначала ставил Linux, а затем уже Windows - по такой схеме все работало идеально. Тут же - наоборот. Подозрения пали на загрузчик Windows и да, пару команд в CMD позволили биосу наконец-то увидеть GRUB!
А стоимость:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍3🐳2
DevOps-им по-взрослому
photo_2024-10-29_22-50-32.jpg
#notAboutIT, #reading
🤓 Взял в руки замечательную (если ее можно так назвать) книгу "Осетинские нартские сказания"
🇷🇺 С самого начала можно легко найти сходства с русскими сказками, например: старший и младший сын охраняют яблоню от птиц (отсылка к Жар-Птице) или путешествие Урызмага в сундуке по бескрайнему морю (отсылка к сказке о Царе Салтане)
🙅♂️ Есть и множество примеров, где герои проявляют себя "не очень красиво". Братоубийство, высокомерие, зависть, ложь - этим сопровождается сюжет эпоса с самого его начала. С другой стороны - уважение к старшим, достойное отношение к женщинам, забота о слабых, готовность прийти на помощь тем, кто оказался в беде. Стоит отметить, что, в свою очередь, главные герои учатся на своих ошибках.
😱 Но больше всего мне понравилась глава про странствование героя Сослана в Мире Мертвых, описывающая множество того, что ждет человека после смерти за его деяния при жизни. Но хоть эпос и начали создавать (если верить источникам из интернета) в VIII-VII веках до нашей эры, удивительны отсылки к нашему современному миру: идеи социального и экономического равенства, коммунизм и феминизм...
👍 Определенно советую для прочтения!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4