10 хатогиҳои умумӣ ҳангоми истифодаи Kubernetes

Шарҳ. тарҷума.: Муаллифони ин макола инженерони як ширкати хурди чех, pipetail мебошанд. Онҳо тавонистанд як рӯйхати аҷиби [баъзан ғайриоддӣ, вале ба ҳар ҳол] мушкилот ва тасаввуроти нодурусти марбут ба фаъолияти кластерҳои Кубернетесро ҷамъ кунанд.

10 хатогиҳои умумӣ ҳангоми истифодаи Kubernetes

Дар тӯли солҳои истифодаи Kubernetes, мо бо шумораи зиёди кластерҳо кор кардем (ҳам идорашаванда ва ҳам идоранашаванда - дар GCP, AWS ва Azure). Бо мурури замон, мо пай бурдем, ки баъзе хатогиҳо пайваста такрор мешаванд. Аммо, дар ин кор шарм нест: аксарияти онхоро худи мо ичро кардаем!

Мақола хатогиҳои маъмултаринро дар бар мегирад ва инчунин чӣ гуна ислоҳ кардани онҳоро зикр мекунад.

1. Захираҳо: дархостҳо ва маҳдудиятҳо

Ин ашё бешубҳа сазовори таваҷҷӯҳи наздиктарин ва ҷои аввал дар рӯйхат аст.

Одатан дархости CPU ё тамоман нишон дода нашудааст ё кимати хеле паст дорад (барои он ки дар ҳар як гиреҳ то ҳадди имкон бештар донаҳо ҷойгир карда шаванд). Ҳамин тариқ, гиреҳҳо аз ҳад зиёд пурбор мешаванд. Дар вақти сарбории баланд, қудрати коркарди гиреҳ пурра истифода мешавад ва сарбории мушаххас танҳо он чизеро, ки аз ҷониби он "талаб" карда буд, мегирад. Тозакунии CPU. Ин ба зиёд шудани таъхири барнома, мӯҳлатҳо ва дигар оқибатҳои ногувор оварда мерасонад. (Муфассалтар дар ин бора дар тарҷумаи дигари мо бихонед: "Маҳдудияти CPU ва фишори хашмгин дар Kubernetes" - тақрибан. тарҷума.)

Беҳтарин кӯшиш (бисёр не тавсия дода мешавад):

resources: {}

Дархости CPU хеле паст (хеле не тавсия дода мешавад):

   resources:
      Requests:
        cpu: "1m"

Аз тарафи дигар, мавҷудияти маҳдудияти CPU метавонад боиси беасос гузаштани давраҳои соат аз ҷониби подкҳо гардад, ҳатто агар протсессори гиреҳ пурра бор карда нашавад. Боз ин метавонад боиси зиёд шудани таъхир гардад. Дар атрофи параметр баҳс идома дорад Квота CPU CFS дар ядрои Linux ва протсессори протсессори вобаста ба ҳудуди муқарраршуда, инчунин ғайрифаъол кардани квотаи CFS... Афсӯс, маҳдудиятҳои CPU метавонад мушкилоти бештареро ба бор орад, ки онҳо ҳал карда метавонанд. Маълумоти бештарро дар ин бора дар истиноди зер пайдо кардан мумкин аст.

Интихоби аз ҳад зиёд (аз ҳад зиёд ӯҳдадорӣ) мушкилоти хотира метавонад ба мушкилоти калонтар оварда расонад. Расидан ба маҳдудияти CPU боиси гузариш аз давраҳои соатӣ мегардад, дар ҳоле ки расидан ба маҳдудияти хотира боиси куштани поддон мегардад. Оё шумо ягон бор мушоҳида кардаед OOMkill? Бале, мо махз дар ин бора сухан меронем.

Оё шумо мехоҳед, ки эҳтимолияти ин ҳодисаро кам кунед? Хотираро аз ҳад зиёд ҷудо накунед ва кафолати QoS (Сифати хидмат) -ро бо гузоштани дархости хотира ба маҳдудият истифода набаред (чунон ки дар мисоли зер). Дар ин бора бештар дар Муаррифии Ҳеннинг Ҷейкобс (Инженери пешбари Заландо).

Таркибшаванда (имконияти баландтари гирифтани OOMkilled):

   resources:
      requests:
        memory: "128Mi"
        cpu: "500m"
      limits:
        memory: "256Mi"
        cpu: 2

Кафолат дода мешавад:

   resources:
      requests:
        memory: "128Mi"
        cpu: 2
      limits:
        memory: "128Mi"
        cpu: 2

Ҳангоми таъсис додани захираҳо чӣ кӯмак хоҳад кард?

Бо кӯмаки метрика-сервер шумо метавонед истеъмоли захираҳои кунунии CPU ва истифодаи хотираро аз ҷониби pods (ва контейнерҳои дохили онҳо) бубинед. Эҳтимол, шумо аллакай онро истифода мебаред. Танҳо фармонҳои зеринро иҷро кунед:

kubectl top pods
kubectl top pods --containers
kubectl top nodes

Аммо, онҳо танҳо истифодаи ҷорӣ нишон медиҳанд. Он метавонад ба шумо дар бораи тартиби миқёс тасаввуроти тахминӣ диҳад, аммо дар ниҳоят ба шумо лозим меояд таърихи тағирот дар метрика бо мурури замон (барои ҷавоб додан ба саволҳо: "Сарбории баландтарини CPU чӣ гуна буд?", "Субҳи дирӯз чӣ гуна сарборӣ буд?" ва ғайра). Барои ин шумо метавонед истифода баред Prometheus, DataDog ва дигар воситахо. Онҳо танҳо аз метрика-сервер ченакҳоро мегиранд ва онҳоро нигоҳ медоранд ва корбар метавонад онҳоро пурсад ва мувофиқи он тарҳрезӣ кунад.

VerticalPodAutoscaler Ин имкон медиҳад, автоматиконида шавад ин раванд. Он таърихи истифодаи CPU ва хотираро пайгирӣ мекунад ва дар асоси ин маълумот дархостҳо ва маҳдудиятҳои нав муқаррар мекунад.

Истифодаи самараноки қувваи ҳисоббарорӣ кори осон нест. Ин ба монанди бозӣ кардани Tetris ҳама вақт аст. Агар шумо барои қувваи ҳисоббарорӣ бо истеъмоли ками миёна (гӯед ~ 10%) маблағи зиёд пардохт кунед, мо тавсия медиҳем, ки ба маҳсулоте, ки дар асоси AWS Fargate ё Virtual Kubelet асос ёфтааст, бубинем. Онҳо дар модели биллинги бе сервер/пардохт барои истифода сохта шудаанд, ки дар чунин шароит метавонад арзонтар шавад.

2. Санҷиши зиндагонӣ ва омодагӣ

Бо нобаёнӣ, санҷиши зиндагонӣ ва омодагӣ дар Kubernetes фаъол нест. Ва баъзан онҳо фурӯзон кардани онҳоро фаромӯш мекунанд ...

Аммо дар сурати рух додани хатои марговар боз чӣ гуна шумо метавонед бозоғозкунии хидматро оғоз кунед? Ва чӣ тавр мувозинатдиҳандаи сарборӣ медонад, ки подк барои қабули трафик омода аст? Ё ин ки он метавонад трафики бештарро идора кунад?

Ин санҷишҳо аксар вақт бо ҳамдигар омехта мешаванд:

  • Зиндагӣ - санҷиши "зиндамонӣ", ки дар сурати ноком шудан подкастро аз нав оғоз мекунад;
  • Тайёрӣ - санҷиши омодагӣ, агар он ноком шавад, он pod-ро аз хидмати Kubernetes ҷудо мекунад (инро метавон бо истифода аз санҷиш тафтиш кард kubectl get endpoints) ва трафик ба он то даме ки тафтиши навбатй бомуваффакият анчом наёбад, намерасад.

Ҳардуи ин санҷишҳо ДАР ДАВОИ ТАМОМИ СИЛИ ХАЁТИ ПОД ИЧРО КАРДА ШУД. Ин хеле муҳим аст.

Андешаи нодурусти маъмул ин аст, ки санҷишҳои омодагӣ танҳо ҳангоми оғозёбӣ иҷро карда мешаванд, то ки мувозинат донад, ки поддон омода аст (Ready) ва метавонад коркарди трафикро оғоз кунад. Аммо, ин танҳо яке аз имконоти истифодаи онҳост.

Дигар ин аст, ки имконияти дарёфти, ки ҳаракати нақлиёт дар pod аз ҳад зиёд аст ва аз ҳад зиёд бор мекунад (ё pod ҳисобҳои серталабро иҷро мекунад). Дар ин ҳолат, санҷиши омодагӣ кӯмак мекунад бори подшохро кам карда, онро «сард».. Дар оянда бомуваффакият анчом додани тафтиши тайёрй имконият медихад бори подшохро боз хам зиёд кунанд. Дар ин ҳолат (агар санҷиши омодагӣ барор нагирад), нокомии санҷиши зиндашавӣ хеле манфӣ хоҳад буд. Чаро як подтаки солим ва сахт кор мекунад, аз нав оғоз кунед?

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

Ҳарду намуди санҷишҳо набояд ҳангоми нокомии вобастагии умумӣ ноком шаванд, вагарна ин ба нокомии пай дар пай (ба тармамонанд) -и ҳамаи подкҳо оварда мерасонад. Ба ибораи дигар, ба худ зарар нарасонед.

3. LoadBalancer барои ҳар як хидмати HTTP

Эҳтимол, шумо дар кластери худ хидматҳои HTTP доред, ки шумо мехоҳед ба ҷаҳони беруна интиқол диҳед.

Агар шумо хидматро ҳамчун type: LoadBalancer, контролери он (вобаста ба провайдери хидматрасон) LoadBalancer-и берунаро таъмин ва гуфтушунид мекунад (на ҳатман дар L7 кор мекунад, балки ҳатто дар L4) ва ин метавонад ба арзиш таъсир расонад (суроғаи берунии статикии IPv4, қудрати ҳисоббарорӣ, ҳисобкунии як сония) ) аз сабаби зарурати ба вучуд овардани микдори зиёди ин гуна захирахо.

Дар ин ҳолат, истифодаи як тавозуни сарбории беруна, кушодани хидматҳо ҳамчун мантиқӣ бештар аст type: NodePort. Ё беҳтараш, як чизро васеъ кунед nginx-ingress-controllerтраефик), ки ягона мешавад NodePort нуқтаи ниҳоии бо тавозуни сарбории беруна алоқаманд аст ва трафикро дар кластер истифода мебарад воридшавӣ-Захираҳои Kubernetes.

Дигар хидматҳои дохили кластерӣ (микро), ки бо ҳамдигар ҳамкорӣ мекунанд, метавонанд бо истифода аз хидматҳо ба монанди "муошират" кунанд ClusterIP ва механизми дарунсохташудаи кашфи хидмат тавассути DNS. Танҳо DNS/IP-и ҷамъиятии онҳоро истифода набаред, зеро ин метавонад ба таъхир таъсир расонад ва арзиши хидматҳои абриро афзоиш диҳад.

4. Автомасштабкунии кластер бе назардошти хусусиятҳои он

Ҳангоми илова кардани гиреҳҳо ба кластер ва хориҷ кардани онҳо, шумо набояд ба баъзе нишондиҳандаҳои асосӣ, ба монанди истифодаи CPU дар он гиреҳҳо такя кунед. Банақшагирии Pod бояд бисёриҳоро ба назар гирад маҳдудиятҳо, ба монанди наздикии pod/ гиреҳ, осебпазирӣ ва таҳаммул, дархостҳои захираҳо, QoS ва ғайра. Истифодаи автоматии беруна, ки ин нозукиҳоро ба назар намегирад, метавонад боиси мушкилот гардад.

Тасаввур кунед, ки як падлуи муайян бояд ба нақша гирифта шавад, аммо тамоми қувваи дастраси CPU дархост/ҷудо карда мешавад ва подк дар холате мебандад Pending. Autoscaler беруна сарбории миёнаи ҷории CPU-ро мебинад (на чизи дархостшуда) ва густаришро оғоз намекунад (васеъкунӣ) - дигар гиреҳ илова намекунад. Дар натиҷа, ин pod ба нақша гирифта намешавад.

Дар ин ҳолат, миқёси баръакс (миқёс) — хориҷ кардани гиреҳ аз кластер амалӣ кардани он ҳамеша мушкилтар аст. Тасаввур кунед, ки шумо як паҳлӯи давлатӣ доред (бо нигоҳдории доимӣ пайваст). Ҳаҷмҳои доимӣ одатан тааллуқ доранд минтақаи мушаххаси дастрас ва дар минтақа такрор намешаванд. Ҳамин тариқ, агар худкори берунӣ гиреҳро бо ин подкӯҳ нест кунад, барномасоз наметавонад ин подкастро дар гиреҳи дигар ба нақша гирад, зеро ин корро танҳо дар минтақаи мавҷудият, ки нигаҳдории доимӣ ҷойгир аст, анҷом додан мумкин аст. Под дар ҳолате часпида мешавад Pending.

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

5. Беэътиноӣ кардани қобилиятҳои IAM/RBAC

Аз истифодаи корбарони IAM бо сирри доимӣ эҳтиёт шавед мошинҳо ва барномаҳо. Бо истифода аз нақшҳо ва ҳисобҳои хидматрасонӣ дастрасии муваққатиро ташкил кунед (ҳисобҳои хидматӣ).

Мо аксар вақт бо он дучор мешавем, ки калидҳои дастрасӣ (ва асрор) дар конфигуратсияи барнома сахт рамзгузорӣ шудаанд ва инчунин сарфи назар аз дастрасӣ ба Cloud IAM ба гардиши асрор беэътиноӣ мекунанд. Дар ҳолати зарурӣ ба ҷои корбарон нақшҳои IAM ва ҳисобҳои хидматиро истифода баред.

10 хатогиҳои умумӣ ҳангоми истифодаи Kubernetes

Дар бораи kube2iam фаромӯш кунед ва рост ба нақшҳои IAM барои ҳисобҳои хидматӣ равед (тавре ки дар ёддошти ҳамон ном Штепан Враны):

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
  name: my-serviceaccount
  namespace: default

Як тафсир. На он қадар душвор, дуруст?

Инчунин, ба ҳисобҳои хидматӣ ва профилҳои намунавӣ имтиёз надиҳед admin и cluster-adminагар ба онхо лозим набошад. Татбиқи ин каме мушкилтар аст, махсусан дар RBAC K8s, аммо бешубҳа ба саъю кӯшиш меарзад.

6. Ба антифинити худкор барои pods такя накунед

Тасаввур кунед, ки шумо се нусхаи баъзе ҷойгиркунӣ дар гиреҳ доред. Гиреҳ меафтад ва дар баробари он ҳама репликаҳо. Ҳолати ногувор, дуруст? Аммо чаро ҳама нусхаҳо дар як гиреҳ буданд? Оё Kubernetes набояд дастрасии баландро таъмин кунад (HA) ?!

Мутаассифона, нақшаи Kubernetes, бо ташаббуси худ, ба қоидаҳои мавҷудияти ҷудогона риоя намекунад (зидди ҳамбастагӣ) барои пиёзҳо. Онҳо бояд ба таври возеҳ баён карда шаванд:

// опущено для краткости
      labels:
        app: zk
// опущено для краткости
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"

Ҳамааш ҳамин. Акнун поддонҳо дар гиреҳҳои гуногун ба нақша гирифта мешаванд (ин ҳолат танҳо ҳангоми банақшагирӣ тафтиш карда мешавад, аммо на дар вақти корашон - аз ин рӯ requiredDuringSchedulingIgnoredDuringExecution).

Дар ин ҷо сухан дар бораи он меравад podAntiAffinity дар гиреҳҳои гуногун: topologyKey: "kubernetes.io/hostname", - ва на дар бораи минтақаҳои гуногуни дастрас. Барои татбиқи як HA-и мукаммал, шумо бояд ин мавзӯъро амиқтар кобед.

7. Нодида гирифтани буҷети PodDisruption

Тасаввур кунед, ки шумо дар кластери Kubernetes сарбории истеҳсолӣ доред. Давра ба давра, гиреҳҳо ва худи кластер бояд нав карда шаванд (ё аз кор хориҷ карда шаванд). PodDisruptionBudget (PDB) чизе монанди созишномаи кафолати хидмат байни маъмурони кластер ва корбарон аст.

PDB ба шумо имкон медиҳад, ки аз қатъи хидматҳо, ки дар натиҷаи набудани гиреҳҳо ба вуҷуд меоянд, пешгирӣ кунед:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: zk-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: zookeeper

Дар ин мисол, шумо, ҳамчун як корбари кластер, ба маъмурон изҳор мекунед: "Ҳей, ман хидмати зоопарк дорам ва новобаста аз он ки шумо чӣ кор мекунед, ман мехоҳам ҳадди аққал 2 нусхаи ин хидмат ҳамеша дастрас бошад."

Шумо метавонед дар ин бора бештар хонед дар ин ҷо.

8. Корбарони сершумор ё муҳитҳо дар кластери умумӣ

Фазоҳои номҳои Kubernetes (фазоҳои номҳо) изоляцияи мустахкамро таъмин накунанд.

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

Онҳое, ки бояд ҳарду намуди сарбории корро дар як кластер муттаҳид кунанд, бояд бо мураккабӣ мубориза баранд. Агар чунин эҳтиёҷ вуҷуд надошта бошад ва шумо метавонед онро дошта бошед боз як кластер (бигӯед, ки дар абри ҷамъиятӣ), пас ин корро кардан беҳтар аст. Ин ба сатҳи хеле баландтари изолятсия ноил хоҳад шуд.

9. Сиёсати берунии Traffic: Кластер

Бисёр вақт мо мушоҳида мекунем, ки тамоми трафики дохили кластер тавассути хидмат ба монанди NodePort, ки сиёсати пешфарз барои он муқаррар шудааст, ворид мешавад. externalTrafficPolicy: Cluster... Ин маънои онро дорад NodePort дар ҳар як гиреҳи кластер кушода аст ва шумо метавонед яке аз онҳоро барои муошират бо хидмати дилхоҳ (маҷмӯи pods) истифода баред.

10 хатогиҳои умумӣ ҳангоми истифодаи Kubernetes

Ҳамзамон, подкладҳои воқеии марбут ба хидмати дар боло зикршуда NodePort одатан танҳо дар як макони муайян дастрасанд. зергурӯҳҳои ин гиреҳҳо. Ба ибораи дигар, агар ман ба гиреҳе пайваст шавам, ки подели лозимӣ надорад, он трафикро ба гиреҳи дигар интиқол медиҳад, илова кардани хоп ва афзояндаи таъхир (агар гиреҳҳо дар минтақаҳои гуногуни дастрас/марказҳои додаҳо ҷойгир бошанд, таъхир метавонад хеле баланд бошад; илова бар ин, хароҷоти трафики баромад афзоиш хоҳад ёфт).

Аз тарафи дигар, агар хидмати муайяни Kubernetes маҷмӯи сиёсат дошта бошад externalTrafficPolicy: Local, он гоҳ NodePort танҳо дар он гиреҳҳо кушода мешавад, ки дар онҳо подкҳои лозимӣ воқеан кор мекунанд. Ҳангоми истифодаи мувозинати беруна, ки ҳолати онро тафтиш мекунад (санҷиши саломатӣ) Нуқтаҳои ниҳоӣ (ин чӣ тавр мекунад AWS ELB), Ӯ трафикро танхо ба гиреххои зарурй мефиристад, ки ба таъхирҳо, эҳтиёҷоти ҳисоббарорӣ, векселҳои баромад (ва ақли солим ҳаминро дикта мекунад) таъсири судманд хоҳад дошт.

Эҳтимолияти баланде вуҷуд дорад, ки шумо аллакай чизе монанди онро истифода мебаред траефик ё nginx-ingress-controller ҳамчун нуқтаи ниҳоии NodePort (ё LoadBalancer, ки инчунин NodePort-ро истифода мебарад) барои масири трафики воридшавии HTTP ва гузоштани ин хосият метавонад таъхири чунин дархостҳоро ба таври назаррас коҳиш диҳад.

В ин нашрия Шумо метавонед дар бораи extraTrafficPolicy, афзалиятҳо ва нуқсонҳои он маълумоти бештар гиред.

10. Ба кластерҳо баста нашавед ва ҳавопаймои идоракуниро сӯиистифода накунед

Пештар маъмул буд, ки серверҳоро бо номҳои мувофиқ даъват кунанд: Антон, HAL9000 ва Colossus... Имрӯз онҳоро идентификаторҳои ба таври тасодуфӣ тавлидшуда иваз карданд. Бо вуҷуди ин, одат боқӣ монд ва ҳоло номҳои мувофиқ ба кластерҳо мераванд.

Ҳикояи маъмулӣ (дар асоси рӯйдодҳои воқеӣ): ҳамааш бо далели консепсия оғоз ёфт, аз ин рӯ кластер номи ифтихор дошт санҷиши... Солхо гузаштанд ва ХАНУЗ дар истехсолот истифода бурда мешавад ва хама аз даст расондан ба он метарсанд.

Дар бораи ба ҳайвонҳо табдил додани кластерҳо ҳеҷ чизи шавқовар нест, аз ин рӯ тавсия медиҳем, ки ҳангоми машқ онҳоро мунтазам нест кунед. барқарорсозии офатҳои табиӣ (ин кӯмак хоҳад кард муҳандисии бесарусомонӣ - тахминан. тарҷума.). Илова бар ин, кор кардан дар қабати идоракунӣ зарар намерасонад (ҳавопаймои идоракунӣ). Тарс аз ламс кардан ба ӯ аломати хуб нест. Ва гайра. мурда? Бачаҳо, шумо воқеан дар изтироб ҳастед!

Аз тарафи дигар, шумо набояд бо идора кардани он даст кашед. Бо мурури замон қабати идоракунӣ метавонад суст шавад. Эҳтимол, ин ба он вобаста аст, ки шумораи зиёди объектҳо бидуни гардиши онҳо эҷод карда мешаванд (вазъияти маъмулӣ ҳангоми истифодаи Helm бо танзимоти пешфарз, аз ин рӯ ҳолати он дар конфигмаҳо/асрорҳо нав карда намешавад - дар натиҷа ҳазорҳо объектҳо дар қабати идоракунӣ) ё бо таҳрири доимии объектҳои kube-api (барои миқёси худкор, барои CI/CD, барои мониторинг, гузоришҳои рӯйдодҳо, контроллерҳо ва ғайра).

Илова бар ин, мо тавсия медиҳем, ки шартномаҳои SLA/SLO-ро бо провайдери идорашавандаи Kubernetes тафтиш кунем ва ба кафолатҳо диққат диҳем. Фурӯшанда метавонад кафолат диҳад мавҷудияти қабати назорат (ё зеркомпонентҳои он), аммо на таъхири p99 дархостҳои ба он ирсолшуда. Ба ибораи дигар, шумо метавонед ворид кунед kubectl get nodes, ва танҳо пас аз 10 дақиқа ҷавоб гиред ва ин вайронкунии шартҳои шартномаи хидматрасонӣ нахоҳад буд.

11. Бонус: бо истифода аз теги охирин

Аммо ин аллакай классикӣ аст. Вақтҳои охир мо ба ин усул камтар дучор мешавем, зеро бисёриҳо аз таҷрибаи талх омӯхта, истифодаи тегро қатъ кардаанд. :latest ва ба бастани версияҳо шурӯъ карданд. Ура!

ЭКР тағирнопазирии тегҳои тасвириро нигоҳ медорад; Мо тавсия медиҳем, ки шумо бо ин хусусияти аҷиб шинос шавед.

Натиҷа

Интизор нашавед, ки ҳама чиз дар як шаб кор мекунад: Кубернетес панацея нест. Барномаи бад ҳатто дар Кубернетес ҳамин тавр боқӣ хоҳад монд (ва эҳтимолан бадтар мешавад). Беэҳтиётӣ боиси мураккабии аз ҳад зиёд, кори суст ва стрессии қабати назорат мегардад. Илова бар ин, шумо хавфи бе стратегияи барқарорсозии офатҳои табиӣ монданро доред. Интизор нашавед, ки Kubernetes аз қуттӣ ҷудошавӣ ва дастрасии баландро таъмин мекунад. Якчанд вақт сарф кунед, то барномаи шумо воқеан абрнок бошад.

Шумо метавонед бо таҷрибаҳои бебарори дастаҳои гуногун дар ин маҷмӯаи ҳикояҳо аз ҷониби Ҳеннинг Ҷейкобс.

Онҳое, ки мехоҳанд ба рӯйхати хатогиҳои дар ин мақола овардашуда илова кунанд, метавонанд бо мо дар Twitter тамос гиранд (@MarekBartik, @MstrsObserver).

PS аз тарҷумон

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

Манбаъ: will.com

Илова Эзоҳ