7 таҷрибаи беҳтарини истифодаи контейнерҳо тибқи Google

Шарҳ. тарҷума.: Муаллифи мақолаи аслӣ Тео Чамли, меъмори Google Cloud Solutions мебошад. Дар ин мақола барои блоги Google Cloud, ӯ мухтасари дастури муфассали ширкати худро бо номи "" пешниҳод мекунад.Таҷрибаҳои беҳтарин барои коркарди контейнерҳо" Дар он коршиносони Google таҷрибаҳои беҳтарини идоракунии контейнерҳоро дар заминаи истифодаи Google Kubernetes Engine ва ғайра ҷамъоварӣ намуда, ба доираи васеи мавзӯъҳо дахл карданд: аз амният то мониторинг ва сабти ном. Пас, мувофиқи Google муҳимтарин таҷрибаҳои контейнерӣ кадомҳоянд?

7 таҷрибаи беҳтарини истифодаи контейнерҳо тибқи Google

Engine Kubernetes (Хадамоти ба Кубернетес асосёфта барои иҷрои барномаҳои контейнерӣ дар Google Cloud - тахминан. тарҷума) яке аз роҳҳои беҳтарини иҷро кардани сарбории корӣ мебошад, ки бояд миқёс дошта бошанд. Кубернитель кори муътадили аксари замимаро таъмин мекунад, агар онхо дар контейнерхо бошанд. Аммо агар шумо хоҳед, ки барномаи шумо идора кардан осон бошад ва хоҳед, ки аз Kubernetes пурра истифода баред, шумо бояд таҷрибаҳои беҳтаринро риоя кунед. Онҳо кори барнома, мониторинг ва ислоҳи онро содда мекунанд ва инчунин амниятро афзоиш медиҳанд.

Дар ин мақола, мо рӯйхати чизҳоеро меомӯзем, ки шумо бояд донед ва барои самаранок кор кардани контейнерҳо дар Kubernetes анҷом диҳед. Онҳое, ки мехоҳанд ба тафсилот амиқтар шинос шаванд, бояд маводро мутолиа кунанд Таҷрибаҳои беҳтарин барои коркарди контейнерҳо, инчунин ба мо диккат дода пости қаблӣ дар бораи васл кардани контейнерхо.

1. Механизмҳои бақайдгирии контейнерҳои ватаниро истифода баред

Агар барнома дар кластери Kubernetes кор кунад, барои гузоришҳо чизи зиёд лозим нест. Системаи мутамаркази бақайдгирӣ эҳтимолан дар кластере, ки шумо истифода мебаред, сохта шудааст. Дар мавриди истифодаи Kubernetes Engine, ин масъул аст Logging Stackdriver. (Шарҳ. тарҷума.: Ва агар шумо насби Kubernetes-и худро истифода баред, мо тавсия медиҳем, ки ҳалли манбаи кушодаи моро бодиққат бубинем - логистика.) Ҳаёти худро оддӣ нигоҳ доред ва механизмҳои бақайдгирии контейнерҳои ватаниро истифода баред. Гузоришҳоро ба stdout ва stderr нависед - онҳо ба таври худкор қабул, захира ва индексатсия карда мешаванд.

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

2. Боварӣ ҳосил кунед, ки контейнерҳо бидуни шаҳрвандӣ ва тағирнопазиранд

Барои он ки контейнерҳо дар кластери Kubernetes дуруст кор кунанд, онҳо бояд бидуни шаҳрвандӣ ва тағирнопазир бошанд. Вақте ки ин шартҳо иҷро мешаванд, Кубернетес метавонад кори худро иҷро кунад, вақте ва дар ҷои зарурӣ объектҳои барномаро эҷод ва нест кунад.

Шаҳрвандӣ маънои онро дорад, ки ҳама гуна ҳолат (маълумоти доимии ҳама гуна намуди) берун аз контейнер нигоҳ дошта мешавад. Барои ин, вобаста ба эҳтиёҷот, намудҳои гуногуни нигаҳдории беруна метавонанд истифода шаванд: Бастаи Cloud, Дискҳои доимӣ, Redis, Абри SQL ё дигар пойгоҳи додаҳои идорашаванда. (Шарҳ. тарҷума.: Дар ин бора бештар дар мақолаи мо хонед "Операторҳо барои Kubernetes: чӣ гуна иҷро кардани барномаҳои давлатӣ".)

Тағирнопазир маънои онро дорад, ки контейнер дар давоми ҳаёти худ тағир намеёбад: ҳеҷ навсозӣ, часбҳо, тағироти конфигуратсия. Агар ба шумо лозим аст, ки рамзи барномаатонро навсозӣ кунед ё часбро истифода баред, тасвири нав эҷод кунед ва онро ҷойгир кунед. Тавсия дода мешавад, ки конфигуратсияи контейнер (порти гӯш, имконоти муҳити корӣ ва ғ.) берунӣ - ба розҳо и ConfigMaps. Онҳоро бе сохтани тасвири нави контейнер навсозӣ кардан мумкин аст. Барои ба осонӣ сохтани қубурҳо бо василаи тасвир, шумо метавонед истифода баред Сохтани абрӣ. (Шарҳ. тарҷума.: Мо барои ин мақсадҳо асбоби кушодаасосро истифода мебарем dapper.)

7 таҷрибаи беҳтарини истифодаи контейнерҳо тибқи Google
Намунаи навсозии конфигуратсияи Ҷойгиркунӣ дар Kubernetes бо истифода аз ConfigMap, ки дар қуттиҳо ҳамчун конфигуратсия насб шудааст

3. Аз контейнерҳои имтиёзнок худдорӣ намоед

Шумо барномаҳоро ҳамчун реша дар серверҳои худ иҷро намекунед, дуруст? Агар ҳамлакунанда ба барнома ворид шавад, вай дастрасии реша мегирад. Мулоҳизаҳои якхела ба кор накардани контейнерҳои имтиёзнок дахл доранд. Агар ба шумо лозим аст, ки танзимотро дар мизбон тағир диҳед, шумо метавонед контейнерро мушаххас диҳед Имкониятҳо бо истифода аз опсия securityContext дар Кубернетес. Агар шумо бояд тағир диҳед sysctls, Кубернетес дорад реферат алоҳида барои ин. Умуман, кӯшиш кунед, ки аз ҳама бештар истифода баред ибтидо- ва контейнерҳои паҳлӯ барои иҷрои чунин амалиёти имтиёзнок. Онҳо лозим нест, ки ба трафики дохилӣ ё беруна дастрас бошанд.

Агар шумо кластерро идора кунед, шумо метавонед истифода баред Сиёсати амнияти Pod барои махдудиятхои истифодаи зарфхои имтиёзнок.

4. Аз кор кардан ҳамчун реша худдорӣ кунед

Контейнерҳои имтиёзнок аллакай муҳокима шудаанд, аммо боз ҳам беҳтар хоҳад буд, агар илова бар ин, шумо барномаҳоро дар дохили контейнер ҳамчун реша иҷро накунед. Агар ҳамлакунанда осебпазирии дурдастро дар замима бо ҳуқуқи реша пайдо кунад, ки ба иҷрои код имкон медиҳад ва пас аз он вай метавонад контейнерро тавассути осебпазирии то ҳол номаълум тарк кунад, вай дар ҳост реша мегирад.

Роҳи беҳтарини пешгирӣ аз ин ин аст, ки дар ҷои аввал ҳеҷ чизро ҳамчун реша иҷро накунед. Барои ин шумо метавонед дастурро истифода баред USER в Dockerfile ё runAsUser дар Кубернетес. Мудири кластер инчунин метавонад рафтори иҷроишро бо истифода аз танзим созад Сиёсати амнияти Pod.

5. Назорати барномаро осон кунед

Мониторинг ба монанди сабти ном, ҷузъи ҷудонашавандаи идоракунии барномаҳо мебошад. Як ҳалли маъмули мониторинг дар ҷомеаи Кубернетес аст Prometheus - системае, ки ба таври худкор pods ва хидматҳоеро, ки мониторингро талаб мекунанд, муайян мекунад. (Шарҳ. тарҷума.: Ба мо низ нигаред гузориши муфассал дар мавзӯи мониторинг бо истифода аз Prometheus ва Kubernetes.) Stackdriver қодир аст, ки кластерҳои Kubernetes-ро назорат кунад ва версияи Prometheus-ро барои мониторинги барномаҳо дар бар мегирад.

7 таҷрибаи беҳтарини истифодаи контейнерҳо тибқи Google
Панели назорати Kubernetes дар Stackdriver

Prometheus интизор аст, ки барнома ченакҳоро ба нуқтаи ниҳоии HTTP интиқол диҳад. Барои ин дастрас аст Китобхонаҳои муштарии Prometheus. Ҳамин форматро дигар асбобҳо истифода мебаранд Барӯйхатгирии кушод и Истио.

6. Ҳолати саломатии барномаро дастрас кунед

Идоракунии барномаҳо дар истеҳсолот тавассути қобилияти он барои иртибот кардани ҳолати худ ба тамоми система кӯмак мекунад. Оё барнома кор мекунад? Оё хуб аст? Оё шумо барои қабули трафик омодаед? Ӯ чӣ гуна рафтор мекунад? Роҳи маъмултарини ҳалли ин мушкилот гузаронидани санҷиши саломатӣ мебошад (тафтишоти саломатӣ). Kubernetes ду намуд дорад: санчишхои зиндагонй ва тайёрй.

Барои санҷиши зиндагӣ (санҷишҳои ҳаётӣ) барнома бояд нуқтаи ниҳоии HTTP дошта бошад, ки ҷавоби "200 OK"-ро баргардонад, агар он функсионалӣ бошад ва вобастагии асосии он қонеъ карда шавад. Барои санҷиши омодагӣ (тафтиши омодагии хидмат) барнома бояд нуқтаи дигари ниҳоии HTTP дошта бошад, ки ҷавоби "200 OK"-ро баргардонад, агар барнома дар ҳолати солим бошад, қадамҳои оғозсозӣ анҷом шуда бошанд ва ягон дархости дуруст ба хатогӣ натиҷа надиҳад. Kubernetes танҳо трафикро ба контейнер равона мекунад, агар барнома мувофиқи ин санҷишҳо омода бошад. Ду нуқтаи ниҳоиро метавон муттаҳид кард, агар байни ҳолати зинда ва омодагӣ фарқият вуҷуд надошта бошад.

Шумо метавонед дар ин бора бештар дар мақолаи марбут аз Сандип Динеш, Адвокати таҳиягар аз Google хонед: "Таҷрибаҳои беҳтарини Kubernetes: Ташкили санҷишҳои саломатӣ бо санҷишҳои омодагӣ ва зинда".

7. Версияи тасвири худро бодиққат интихоб кунед

Аксари тасвирҳои ҷамъиятӣ ва хусусӣ системаи барчаспро истифода мебаранд, ки ба он чизе, ки дар тасвир тавсиф шудааст, монанд аст Таҷрибаҳои беҳтарин барои сохтани контейнерҳо. Агар тасвир истифода системаи наздик ба версияи семантикӣ, хусусиятхои тегчигиро ба назар гирифтан лозим аст. Масалан, тег latest метавонад зуд-зуд аз тасвир ба тасвир ҳаракат кунад - ба он бовар кардан мумкин нест, агар ба шумо сохтмонҳо ва насбҳои пешгӯинашаванда ва такроршаванда ниёз дошта бошед.

Шумо метавонед тегро истифода баред X.Y.Z (онҳо қариб ҳамеша бетағйир мебошанд), аммо дар ин ҳолат, ҳама часбҳо ва навсозиҳои тасвирро пайгирӣ кунед. Агар тасвире, ки шумо истифода мебаред, тег дошта бошад X.Y, ин як варианти хуб барои миёнаи тиллоӣ аст. Бо интихоби он, шумо ба таври худкор часбҳоро мегиред ва ҳамзамон ба версияи устувори барнома такя мекунед.

PS аз тарҷумон

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ