Добици:
- Способност разумевања основних објеката (Под, Деплоимент, Сервице, ЦонфигМап, Сецрет, Намеспаце) и декларативне филозофије Кубернетес-а и израде чврстих манифеста за вештачку интелигенцију
- Способност да се манифести буду спремни за производњу и обезбеде са ограничењима ресурса, здравственим проверама (сондама), фиксним ознакама слика и уским РБАЦ-ом
- Способност да се провери тачан контекст пре извршења и примени дисциплина трчања на суво са трчањем на суво/диф
Лако је покренути један контејнер. Али успостављање система који шири стотине контејнера на десетине сервера, аутоматски се поново покреће када се један од њих сруши, реплицира га када се оптерећење повећа и ажурира га без прекида рада? То је оркестрација, а индустријски стандардни алат је Кубернетес (скраћено К8с) — платформа која аутоматски поставља, скалира и управља контејнерима широм кластера. Кубернетес је моћан, али сложен: све је дефинисано дугим ИАМЛ датотекама које су осетљиве на увлачење — које се називају манифести. Овде АИ даје дах свежег ваздуха; Са правим контекстом, брзо производи ове манифесте и декодира њихове мистериозне грешке.
Али у Кубернетесу, погрешан манифест значи неуспех у подизању читаве услуге, погрешно скалирање или остављање рањивости. Ваша је одговорност да разумете и проверите сваки манифест који АИ производи — посебно пре него што се кубецтл примени.
Кубернетес основни објекти
Да бисте ревидирали Кубернетес, требало би да знате главне концепте:
- Под: Најмања радна јединица; Садржи један или више контејнера. Генерално, Под се не користи директно, али се користе надређени објекти који њиме управљају.
- Примена: Дефинише колико ће се копија апликације покренути, коју слику ће користити и како ће се ажурирати. Ако се Под сруши, аутоматски ће га поново креирати.
- Услуга: Пружа фиксну мрежну адресу и балансирање оптерећења за подове; Иако подови долазе и одлазе, приступна адреса се не мења.
- ЦонфигМап анд Сецрет: чува вредности конфигурације и тајне информације одвојено од подова. ЦонфигМап је за експлицитна подешавања, Сецрет је за осетљиве вредности.
- Простор имена: Област која логично дели и изолује ресурсе (нпр. дев, прод).
- Улаз: Скуп правила који усмерава ХТТП саобраћај из спољашњег света на услуге у кластеру.
Хелм је „менаџер пакета“ Кубернетеса: омогућава вам да шаблонирате понављајуће манифесте (графиконе) и да их инсталирате са различитим вредностима у различитим окружењима помоћу једне наредбе. АИ производи сирови манифест и Хелм графикон.
Зашто има толико објеката? Зато што је основна филозофија Кубернетеса декларативно: ви дефинишете „како желите да систем на крају изгледа“ (нпр. „увек имате 3 покренуте копије ове апликације“), док Кубернетес непрекидно помера тренутно стање ближе жељеном стању. Ако махуна умре, она ствара нову; ако чвор падне, он премешта радно оптерећење на други чвор. Зато манифести нису наредбе „уради“, већ „нека буде овако“ рецепти. Схватање ове разлике је критично када се читају манифести које АИ производи: сваки домен описује део жељеног стања система. Погрешан домен значи да Кубернетес ради на погрешном циљу — а тај циљ се тихо, упорно спроводи.
Савет: У Кубернетесу, најважнија безбедна алатка за тестирање је кубецтл аппли --дри-рун=сервер -ф филе.иамл: показује да ли ће сервер прихватити и шта да ради без стварне примене манифеста. Обавезно покрените дри-рун и кубецтл дифф пре него што примените манифест на прод.
Корак по корак: Креирање манифеста помоћу вештачке интелигенције
- Опишите апликацију и потребу. Име слике, порт, колико реплика, ограничења ресурса (ЦПУ/меморија).
- Захтевајте примену + услугу. Обично су оба потребна заједно.
- Одвојена конфигурација и тајна. Подешавања за ЦонфигМап, осетљиве вредности за Сецрет.
- Додајте здравствене прегледе. ливенессПробе (да ли је активна) и реадинессПробе (да ли је спремна за саобраћај) су критичне.
- Поставите ограничење ресурса. Без захтева/ограничења Под може да потроши цео чвор.
- Потврдите са `--дри-рун` и `дифф`, а затим примените. Прво у тестном именском простору.
Безбедност: Ризици специфични за Кубернетес
- Тајна заправо није тајна – то је само басе64. Кубернетес Сецрет објекат басе64 кодира вредности; Ово није шифровање, лако се дешифрује. За праву приватност, потребно је итдд шифровање и екстерни трезор (трезор, тајни менаџер у облаку). Никада не урезујте тајне манифесте директно у Гит (постоје решења за ово као што су Сеалед Сецретс/Ектернал Сецретс).
- Поставите ограничење ресурса. Под без ограничења може да сруши цео чвор са цурењем меморије.
- Минимално овлашћење (РБАЦ). Са контролом приступа заснованом на улогама, свака услуга/корисник има само дозволе које су му потребне. АИ понекад даје велики цлустер-админ; сузите ово.
- Не користите ознаку „најновију“ слику. Не знате која је верзија покренута и не можете да је вратите.
Опрез: брисање кубецтл-а или нетачна примена могу уништити активну имплементацију. Обавезно проверите у ком се именском простору налазите (кубецтл цонфиг цуррент-цонтект) пре него што покренете команде; Случајни рад је уобичајена катастрофа у контексту производње.
Сирови манифест наспрам Хелм табеле
критеријум
Необрађени ИАМЛ манифест
Хелм цхарт
Инсталација
кубецтл применити -ф
хелм инсталл
Мултимедија (дев/прод.)
Цопи-пасте, склон грешкама
Један графикон, различите вредности.иамл
Верзија/повратак
руком
лако са враћањем кормила
Крива учења
ниско
средње
када
Мала, јединствена средина
Мултимедијални сервис који се понавља
три мини кофера
Случај 1 — тајна срушеног сервиса. Под се стално поново покретао (ЦрасхЛоопБацкОфф). Тим је дао дневнике и манифест АИ; АИ је показао да се Под никада није сматрао "спремним" јер је сонда за спремност гледала на погрешан порт. Поправили су порт, услуга је постала стабилна за 10 минута. Ручно успостављање овог односа може потрајати сатима.
Случај 2 — непостављање граница је разбило чвор. Није било ограничења у примени; Цурење меморије је надувало Под и срушило цео чвор, срушивши и суседне услуге. Након инцидента, натерали су АИ да каже „додајте разумне ЦПУ/меморијске захтеве и ограничења свим имплементацијама“ и учинили га стандардним. Једна линија која недостаје коштала је сате застоја.
Случај 3 — ухваћен велики РБАЦ. Током истраге, откривено је да је манифест СервицеАццоунт-а генерисан од стране вештачке интелигенције везан за улогу администратора кластера – што значи да услуга може да управља целим кластером. Тим је сузио дозволу само на читање Подова у њиховом именском простору. Принцип најмање привилегија затворио је безбедносну рањивост.
Четири шаблона за копирање
1) Примена + производња услуге:
Напишите манифест имплементације и услуге за Кубернетес. Апликација: [АД], слика: [слика: фиксна верзија], порт: [Кс], реплика: [Н]. Правила:- Додајте ЦПУ/меморијске захтеве и ограничења.- Дефинишите ливенессПробе и реадинессПробе.- Читајте конфигурацију из ЦонфигМап-а, тајну из Сецрет објекта; Немојте уграђивати вредности у манифест, користите чуваре места. - НЕМОЈТЕ користити ознаку слике ":латест". Дајте са описом.
2) Решавање очигледне грешке:
Тренутни Под је у стању [ЦрасхЛоопБацкОфф / Пендинг / ИмагеПуллБацкОфф]. Према следећем манифесту и излазу 'кубецтл описати', наведите могуће основне узроке по редоследу вероватноће и издајте команду верифи за сваки. Манифест: [ИАМЛ] Опишите: [ИЗЛАЗ]
3) Безбедност/провера интегритета:
Проверите овај Кубернетес манифест: да ли недостаје ограничење ресурса, да ли недостаје проб, да ли постоји ознака :латест, да ли постоји преширока РБАЦ/дозвола, да ли је тајна уграђена у манифест? Запишите налазе по важности и са исправком. Манифест: [ИАМЛ]
4) Конверзија у Хелм графикон:
Претворите следеће необрађене манифесте у Хелм графикон за вишекратну употребу: које вредности треба да иду у валуес.иамл (слика, реплика, извор, окружење)? Прикажи структуру графикона и вредности узорка.иамл.Манифести: [ИАМЛ]
Слаби промпт / Јаки промпт
Слабо: „Напишите Кубернетес ИАМЛ за моју апликацију.“
Резултат: имплементација без пробе, без ограничења са :латест ознаком, уграђивање тајне равни; Несигуран и крхак у продукцији.
Снажно: „Напишите Кубернетес Деплоимент + Сервице. Слика миапп: 1.4.2, 3 реплике, 8080 портова. ЦПУ 100м-500м, меморија 128Ми-512Ми додајте захтеве/ограничења. Ставите пробу за животност за /хеалтхз, пробу спремности за' Сецрет из /реади објекта. Прочитајте га у објекту Сецрет. опис."
Разлика: друга промпт верзија даје размере, ограничења ресурса, здравствене провере и тајно правило; Производ је близу производње и сигуран.
Уобичајене грешке
- Не поставља ограничења ресурса. Један Под може да потроши цео чвор.
- Не додаје се здравствени преглед (сонда). Кубернетес не може да открије срушену/неспремну под.
- `:најновија` ознака. Постаје нејасно која је верзија покренута, не може се вратити.
- Преношење тајне директно у Гит. Басе64 није шифровање; сви то решавају.
- Покретање команди у погрешном контексту/именском простору. Најчешћи начин рушења у прод.
- прескакање `--дри-рун`/`дифф`. Не видећи шта ће се десити пре имплементације.
Укратко
Кубернетес је моћан, али сложен оркестратор који аутоматски поставља, скалира и оптимизује контејнере широм кластера; Све је дефинисано манифестним ИАМЛ-овима, које Хелм шаблонизује. АИ брзо производи манифесте имплементације/услуге и Хелм графиконе, решава мистериозне грешке — али морате експлицитно да тражите ограничење ресурса, проверу здравља, непроменљиву ознаку слике, уски РБАЦ и тајна безбедносна правила. --дри-рун, дифф и исправна провера контекста су навике које спречавају рушење производа.
Задатак апликације
Нека АИ генерише манифест за пример апликације са шаблоном „Примена + генерисање услуге“. Затим: (1) Нека провери ограничење ресурса, проверу, :латест и тајну помоћу шаблона „Провера безбедности/здравости“; (2) покрените кубецтл аппли --дри-рун=сервер на тест кластеру/миникубе ако је могуће и прочитајте излаз; (3) забележите две најкритичније ставке за безбедност/робустност за које сматрате да недостају.
контролна листа
- [ ] Додао сам верзију слике, број реплика, ограничења портова и ресурса свом захтеву.
- [ ] Додао сам сонду за живост и спремност у манифест.
- [ ] Поправљена ознака слике; Нисам користио :латест.
- [ ] Тајна није уграђена у манифест; Користио сам тајни објекат/спољни трезор.
- [ ] Сузио сам РБАЦ/дозволе на минималне дозволе.
- [ ] Пре пријаве, проверио сам да ли сам у исправном контексту и да --дри-рун/дифф излази.