212 похожих чатов

Тут вопрос по инфраструре kubernates можно задать ? Я в

этой теме имею некую кашу в голове от всего узученного мной
Или киньте пожалуйста линк чата где можно обратиться с таки вопросом


Опишу пример

Интернет магазин

Разбит на микросервисы:
1- микросервис аунтификации
2- микросервис товаров
3- микросервис корзины(процесс покупки)
4- микросервис организации доставки
5- микросервис возврата товаров

Размещается это все в кластер ,kubernates на EKS


Создается 3 ноды (хосты)

В ноде расположены поды

Под содержат docker ,контейнер с соответствующим микросервисом


Тут k8s заметил,что на под  который содержит микросервис (2-) списка товаров идет большая нагрузка


Что он сделает дальше создаст копию этого Pod и разместит на Node2 ,а если и она перегрузится создаст Node3

Т.e всего в ручную создано 3 Ноды

А может ли kubernates создавать сам новые ноды ,если уже 3 заняты для новых копий подов?

Т.е если у меня нагрузка возникает только в некоторые дни

Зачем мне создавать ноды на облаке и постоянно за них платить если они ничего не делают

Хочется чтобы они создались сами когда это будет нужно

Вот это такой простой пример ,немогу найти внятной информации как это сделать

Куча воды но  конкретного примера нет

А на амазон экспериментировать не особо хочется дабы не попасть на деньги)

Ну и еще к этому нужно добавить балансировщик

Где он в этой схеме будет тоже не совсем понятно

ChatGpt пишет что вообще за приделами k8s ...

28 ответов

94 просмотра

1. Зачем ты деплоишь микросервисы, если ты не знаком с кубером? 2. Autoscaling kubernetes - первая страница гугла. И да, ты должен быть в облаке

TS- Автор вопроса
Marcus
1. Зачем ты деплоишь микросервисы, если ты не знак...

Хочу понять как на нем инфраструктуру строить когда нет в команде devops

посмотри на GKE Autopilot, там тебе ни с нодами, ни с виртуалками работать не нужно. гугл сам поскейлит. либо иди в сторону serverless контейнеров, с тз инфры это будет проще, но менее удобно

TS- Автор вопроса
Marcus
1. Зачем ты деплоишь микросервисы, если ты не знак...

Микросервисы можно деплоить и без кубера , например тот же AWS EC2

TS
Хочу понять как на нем инфраструктуру строить когд...

самому изучать сисадминство и девопс практики

TS
Микросервисы можно деплоить и без кубера , наприме...

Их можно деплоить и по FTP, но у тебя вопрос был про кубер. Это к чему?

TS- Автор вопроса

тебе не ноды создавать надо, а ресурсы докидывать на них

Называется cluster autoscaling, работает с автоскейлинг группами

TS- Автор вопроса

Если я размещу весь проект ( 5 микросервисами- проект для примера)) В одном поде чем это плохо ? Ну все равно же это одна рабочая нода и запросы идут на нее ,как хост машина А вторую рабочую ноду создать как резервною с копией всего проекта в одном поде в котором содержится 5 докер имиджей проекта (тобеж 5 микросервисов) Как я понимаю лягла нада 1 ,перейшли запросы на noda2 И там весь проект и все работает А если я раскидаю эти микросервисы по разным нодам ,то у меня тогда случится так что половина проекта будет не рабочей е,ли ляжет какая-то нода Вот этот момент я не очень понимаю

TS- Автор вопроса
Artur
тебе не ноды создавать надо, а ресурсы докидывать ...

Ресурсы ввиде чего? Когда внутри ноды создавать новые поды ,как копии инстансов?

TS
Ресурсы ввиде чего? Когда внутри ноды создавать н...

для этого тебе надо жить в опенстеке каком-нибудь, или gke, aws. запросишь еще цпу или памяти и все

TS- Автор вопроса
Artur
для этого тебе надо жить в опенстеке каком-нибудь,...

Если свой пет проект сделат,хочется чтобы было дешевле

TS
Если я размещу весь проект ( 5 микросервисами- пр...

так.... класстер - это логическая такая штука куда ты деплоишь ноды - это именно физические виртуалки со своими ресурсами. Например у тебя может быть класстер из 3-х нод, каждая 8 ядер и 64 гига оперативки. В сумме класстер 24 ядра и 192 гига оперативки. поды - это юнит репликации. Под всегда крутится на одной ноде. когда ты деплоишь ты деплоишь под. Когда ты скейлишь ты скейлишь под. Точнее ты скейлишь деплоймент, а деплоймент рулит подами. контейнера. контейнера крутятся в подах на одной машине внутри своей сети. У контейнеров есть resource requests. тип "этому контейнеру надо 2 ядра и 4 гига оперативки, этому 0.1 ядро и 128 метров. Сумма ресурсов пода учитывается кубером при масштабировании и принятии решений куда на какую ноду его запихнуть, где ресурсов достаточно. Если в класстере ресурсов недостаточно - кубер может новую ноду поднять как ты ему сказал и где. Исходя из этого.... запихнуть все в один под = у тебя нет смысла в кубере больше. Один под = одна нода. Если у тебя их три будет простаивать. Скейлить все одновременно - не оч эффективно с точки зрения утилизации ресурсов. На случай когда нода падает у тебя кубер вопервых переподнимет под на живых нодах, а во вторых надо иметь реданденси какой-то что бы кубер трафик перенаправил. Иначе у тебя все живет на одной ноде и все разом упало.

TS
Если я размещу весь проект ( 5 микросервисами- пр...

есть важный нюанс с деплоем сразу всего. Любое изменение конфигурации потушит все сервисы разом (конфиг-мап для одного контейнера поменял, а тушить весь под). Нет возможности скалировать один из сервисов отдельно.

Romka Los
есть важный нюанс с деплоем сразу всего. Любое изм...

ну не разом, по дефолту ж rolling upgrade. причем дефолтны сначала поднимут все а потом потушат все. Когда новый под ready

Sergey P
ну не разом, по дефолту ж rolling upgrade. причем ...

с роллинг апдейт так вообще, если +1, то это требование 2x ресурсов или жить без грейсфул

Sergey P
ну не разом, по дефолту ж rolling upgrade. причем ...

емнип отдельно контейнер в поде не перезапустить, я про это. Что типа убивать целиком под придётся, даже если ты env поменял ток в одном сервисе

Aleksandr Zharkov
Учить девопс

девопс это философия, ее нельзя учить. выучить кубер это не про дэвопс)

TS- Автор вопроса

Почему нет смысла запихивать все в один под не совсем понял Скажем условно если у меня в поде сервер на Go там один процесс на запросы ,которве обрабатываются в пуле потоков этого процесса (гоурутинами) На этой же Work - Node я если создам втоторой под я смогу просто запустить втрой ,третий ... процесс на barmetal ? Ну типа один под обрабатывает не больше 10 000 запросов ,как kvm Разве так не эффективно будет использовать ресурсы?

TS
Почему нет смысла запихивать все в один под не сов...

разные процессы разные процессы, они не шарят ресурсы. Если ты их сделал разными процессами то для них разница на одной ноде они или нет только в IPC и насколько плотно они должны общаться (лэтенси потому что). При этом тебе никто не запрещает сказать куберу "эти поды клади вместе всегда на одну ноду" (афинити всякие).

Если нет опыта с k8s возможно проще деплоить serverless, пока денег на девопса не хватит. По моему опыту имеет смысл заводить k8s, когда количество сервисов приближается к 20. Автоскейл нодов и подов можно настроить достаточно легко. Обычно критериями для скейла являются память или CPU, потому что количество запросов не всегда коррелирует с необходимостью скейла

Aleksandr Zharkov
Если нет опыта с k8s возможно проще деплоить serve...

Он там дрочит на CPU и кэш мисы. Хотя по факту у него там какие-то проблемы с выбором алгоритмов и структур данных.

Sergey P
девопс это философия, ее нельзя учить. выучить куб...

Философию тоже можно учить. Как раз даёт понять что отмазки я не знаю кубер, не катят в Девопс. Хотя я бы не назвал это философией, скорее подход или методология, на крайний случай mindest

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта