Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Таҷрибаҳои беҳтарини Kubernetes. Эҷоди контейнерҳои хурд
Таҷрибаҳои беҳтарини Kubernetes. Ташкилоти Кубернетес бо фазои ном
Таҷрибаҳои беҳтарини Kubernetes. Тасдиқи зиндагонии Кубернетес бо санҷишҳои омодагӣ ва зинда
Таҷрибаҳои беҳтарини Kubernetes. Муқаррар кардани дархостҳо ва маҳдудиятҳои захираҳо

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Нуқтаи муҳими кори системаҳои тақсимшуда ҳалли хатогиҳо мебошад. Kubernetes дар ин бо истифода аз контроллерҳо, ки саломатии системаи шуморо назорат мекунанд ва хидматҳои қатъшударо аз нав оғоз мекунанд, кӯмак мекунад. Аммо, Kubernetes метавонад барномаҳои шуморо маҷбуран қатъ кунад, то саломатии умумии системаро таъмин кунад. Дар ин силсила, мо дида мебароем, ки чӣ тавр шумо метавонед ба Kubernetes корашро самараноктар иҷро кунед ва вақти бекористии барномаҳоро кам кунед.

Пеш аз контейнерҳо, аксари барномаҳо дар мошинҳои виртуалӣ ё физикӣ кор мекарданд. Агар барнома суқут кунад ё ях кунад, барои бекор кардани вазифаи иҷрошаванда ва аз нав бор кардани барнома вақти зиёд лозим шуд. Дар бадтарин сенария, касе маҷбур шуд, ки ин мушкилотро шабона, дар соатҳои номуносиб дастӣ ҳал кунад. Агар хамагй 1—2 машинам кор-гар вазифаи мухимро ичро мекард, ба ин гуна вайронкунй тамоман рох додан мумкин нест.
Аз ин рӯ, ба ҷои бозсозии дастӣ, онҳо ба истифодаи мониторинги сатҳи раванд шурӯъ карданд, то дар сурати қатъи ғайримуқаррарӣ барномаро ба таври худкор аз нав оғоз кунанд. Агар барнома ноком шавад, раванди мониторинг рамзи баромадро мегирад ва серверро аз нав оғоз мекунад. Бо пайдоиши системаҳо ба монанди Kubernetes, ин навъи вокуниш ба нокомии система танҳо ба инфрасохтор муттаҳид карда шуд.

Кубернетес як ҳалқаи ҳодисаи мушоҳида-фарқият-андешидани амалро истифода мебарад, то боварӣ ҳосил кунад, ки захираҳо дар роҳи худ аз контейнерҳо ба гиреҳҳо солим мемонанд.

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Ин маънои онро дорад, ки ба шумо дигар лозим нест, ки мониторинги равандро дастӣ иҷро кунед. Агар манбаъ аз санҷиши саломатӣ набарояд, Kubernetes ба таври худкор онро бо ивазкунанда таъмин мекунад. Аммо, Kubernetes на танҳо назорат кардани аризаи шуморо барои нокомиҳо бештар мекунад. Он метавонад нусхаҳои бештари барномаро эҷод кунад, то дар якчанд мошин кор кунад, барномаро навсозӣ кунад ё версияҳои сершумори замимаи шуморо ҳамзамон иҷро кунад.
Аз ин рӯ, сабабҳои зиёде мавҷуданд, ки чаро Кубернетес метавонад як контейнери солимро қатъ кунад. Масалан, агар шумо ҷойгиркунии худро навсозӣ кунед, Kubernetes ҳангоми оғоз кардани қуттиҳои нав оҳиста-оҳиста қуттиҳои кӯҳнаро қатъ мекунад. Агар шумо гиреҳро хомӯш кунед, Кубернетес иҷрои ҳама подкҳоро дар он гиреҳ қатъ мекунад. Дар ниҳоят, агар гиреҳ аз захираҳо тамом шавад, Kubernetes ҳамаи подкҳоро барои озод кардани он захираҳо мебандад.

Аз ин рӯ, муҳим аст, ки барномаи шумо бо таъсири ҳадди ақал ба корбари ниҳоӣ ва вақти ҳадди ақали барқарорсозӣ қатъ карда шавад. Ин маънои онро дорад, ки пеш аз хомӯш кардан, он бояд тамоми маълумотеро, ки бояд захира карда шаванд, захира кунад, ҳама пайвастҳои шабакавиро пӯшад, кори боқимондаро анҷом диҳад ва дигар вазифаҳои таъхирнопазирро идора кунад.

Дар амал, ин маънои онро дорад, ки барномаи шумо бояд қодир ба коркарди паёми SIGTERM бошад, сигнали қатъи раванд, ки сигнали пешфарз барои утилитаи қатл дар системаҳои оператсионии Unix мебошад. Пас аз гирифтани ин паём, барнома бояд қатъ шавад.

Пас аз он ки Кубернетес тасмим гирифт, ки подкастро қатъ кунад, як қатор ҳодисаҳо рух медиҳанд. Биёед ба ҳар як қадаме, ки Кубернетес ҳангоми хомӯш кардани контейнер ё поддон анҷом медиҳад, бубинем.

Биёед бигӯем, ки мо мехоҳем яке аз подкҳоро қатъ кунем. Дар ин лаҳза, он қабули трафики навро қатъ мекунад - контейнерҳое, ки дар подкаст кор мекунанд, таъсир намерасонанд, аммо ҳама трафики нав баста мешаванд.

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Биёед ба қалмоқчаи preStop назар андозем, ки он фармони махсус ё дархости HTTP мебошад, ки ба контейнерҳо дар як контейнер фиристода мешавад. Агар ҳангоми қабули SIGTERM замимаи шумо дуруст хомӯш нашавад, шумо метавонед барои дуруст хомӯш кардани preStop истифода баред.

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Аксари барномаҳо ҳангоми гирифтани сигнали SIGTERM ба таври зебо берун мешаванд, аммо агар шумо рамзи тарафи сеюм ё ягон системаеро истифода баред, ки шумо онро пурра назорат намекунед, қалмоқчаи preStop як роҳи олие барои маҷбур кардани хомӯшкунии зебо бидуни тағир додани барнома мебошад.

Пас аз иҷрои ин қалмоқ, Кубернетес сигнали SIGTERM-ро ба контейнерҳои дарун ҷойгиршуда мефиристад ва ба онҳо хабар медиҳад, ки онҳо ба зудӣ ҷудо мешаванд. Пас аз гирифтани ин сигнал, рамзи шумо ба раванди қатъкунӣ мегузарад. Ин раванд метавонад қатъ кардани ҳама гуна пайвастҳои дарозмуддат, ба монанди пайвасти пойгоҳи додаҳо ё ҷараёни WebSocket, нигоҳ доштани ҳолати ҷорӣ ва монанди инҳоро дар бар гирад.

Ҳатто агар шумо қалмоқчаи preStop-ро истифода баред, хеле муҳим аст, ки ҳангоми ирсоли сигнали SIGTERM бо замимаи шумо маҳз чӣ ҳодиса рӯй медиҳад ва он чӣ гуна рафтор мекунад, то рӯйдодҳо ё тағирот дар кори система, ки дар натиҷаи қатъ шудани подкаст ба вуҷуд омадаанд, ба амал наоянд. сюрприз барои шумо.

Дар ин лаҳза, Кубернетес пеш аз андешидани амалҳои минбаъда миқдори муайяни вақтро интизор мешавад, ки terminationGracePeriodSecond номида мешавад ё давраи ба таври возеҳ қатъ шудани он ҳангоми гирифтани сигнали SIGTERM.

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Бо нобаёнӣ ин давра 30 сония аст. Бояд қайд кард, ки он дар баробари қалмоқчаи preStop ва сигнали SIGTERM кор мекунад. Кубернетес то ба охир расидани қалмоқ ва SIGTERM интизор нахоҳад шуд - агар аризаи шумо пеш аз анҷоми TerminationGracePeriod хориҷ шавад, Кубернетес фавран ба қадами оянда мегузарад. Аз ин рӯ, санҷед, ки арзиши ин давра дар сонияҳо на камтар аз вақт барои дуруст хомӯш кардани подкаст аст ва агар он аз 30 сония зиёд бошад, давраро то арзиши дилхоҳ дар YAML зиёд кунед. Дар мисоли овардашуда он 60-ум аст.

Ва ниҳоят, қадами охирин ин аст, ки агар контейнерҳо пас аз terminationGracePeriod кор кунанд, онҳо сигнали SIGKILL мефиристанд ва маҷбуран нест карда мешаванд. Дар ин лаҳза, Кубернетес инчунин ҳама дигар объектҳои подкро тоза мекунад.

Таҷрибаҳои беҳтарини Kubernetes. Хомӯшии дуруст Қатъ кунед

Kubernetes бо сабабҳои зиёд pods-ро қатъ мекунад, аз ин рӯ, боварӣ ҳосил кунед, ки аризаи шумо дар ҳама ҳолат ба таври зебо қатъ мешавад, то хидмати устуворро таъмин кунад.

Таҷрибаҳои беҳтарини Kubernetes. Харитасозии хидматҳои беруна

Баъзе рекламаҳо 🙂

Ташаккур ба шумо барои бо мо мондан. Мақолаҳои мо ба шумо маъқуланд? Мехоҳед мундариҷаи ҷолибтарро бубинед? Бо фармоиш додан ё тавсия додан ба дӯстон моро дастгирӣ кунед, абр VPS барои таҳиягарон аз $4.99, аналоги беназири серверҳои сатҳи ибтидоӣ, ки аз ҷониби мо барои шумо ихтироъ шудааст: Тамоми ҳақиқат дар бораи VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps аз $19 ё чӣ гуна мубодила кардани сервер? (бо RAID1 ва RAID10, то 24 ядро ​​ва то 40 ГБ DDR4 дастрас аст).

Dell R730xd дар маркази додаҳои Equinix Tier IV дар Амстердам 2 маротиба арзонтар аст? Танҳо дар ин ҷо 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ аз $199 дар Нидерландия! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - аз $99! Дар бораи хондан Корпоратсияи инфраструктураро чӣ гуна бояд сохт. синф бо истифодаи серверҳои Dell R730xd E5-2650 v4 ба маблағи 9000 XNUMX евро барои як динор?

Манбаъ: will.com

Илова Эзоҳ