Kubecost tshuaj xyuas kom txuag nyiaj ntawm Kubernetes hauv huab

Kubecost tshuaj xyuas kom txuag nyiaj ntawm Kubernetes hauv huab

Tam sim no, ntau thiab ntau lub tuam txhab tau hloov lawv cov infrastructure los ntawm hardware servers thiab lawv tus kheej virtual machines mus rau huab. Qhov kev daws teeb meem no yooj yim piav qhia: tsis tas yuav txhawj xeeb txog kho vajtse, pawg tau yooj yim teeb tsa hauv ntau txoj kev sib txawv ... thiab qhov tseem ceeb tshaj plaws, cov thev naus laus zis uas twb muaj lawm (xws li Kubernetes) ua rau nws tuaj yeem ua kom yooj yim suav lub zog nyob ntawm kev thauj khoom. .

Cov nyiaj txiag ib txwm tseem ceeb. Cov cuab yeej sib tham hauv tsab xov xwm no yog tsim los pab txo cov peev nyiaj thaum siv huab cua nrog Kubernetes.

Taw qhia

Kubecost yog Californian pib los ntawm Google, tsim cov kev daws teeb meem rau kev suav cov nqi vaj tse hauv cov kev pabcuam huab (hauv Kubernetes pawg + cov peev txheej sib koom), tshawb nrhiav cov fwj hauv pawg thiab xa cov ntawv ceeb toom tsim nyog rau Slack.

Peb muaj cov neeg siv khoom nrog Kubernetes ob qho tib si hauv cov neeg paub AWS thiab GCP huab, thiab, tsis tshua muaj rau Linux zej zog, Azure - feem ntau, ntawm txhua lub platform txhawb los ntawm Kubecost. Rau qee qhov ntawm lawv, peb suav cov nqi ntawm cov kev pabcuam hauv pawg peb tus kheej (siv tus qauv zoo ib yam li uas siv los ntawm Kubecost), thiab tseem saib xyuas cov nqi vaj tse thiab sim ua kom zoo rau lawv. Yog li, nws yog qhov laj thawj uas peb tau xav txog qhov muaj peev xwm ntawm kev ua haujlwm zoo li no.

Lub hauv paus code ntawm lub ntsiab Kubecost module yog qhib raws li cov nqe lus ntawm Open Source daim ntawv tso cai (Apache License 2.0). Nws tuaj yeem siv tau dawb thiab muaj cov yam ntxwv yuav tsum txaus rau cov haujlwm me me. Txawm li cas los xij, kev lag luam yog kev lag luam: tus so ntawm cov khoom raug kaw, nws tuaj yeem siv los ntawm them subscription, uas tseem hais txog kev txhawb nqa kev lag luam. Tsis tas li ntawd, cov kws sau ntawv muab daim ntawv tso cai pub dawb rau cov pawg me (1 pawg nrog 10 nodes - thaum sau tsab xov xwm no, qhov kev txwv no tau nthuav dav mus rau 20 nodes) lossis lub sijhawm sim uas muaj peev xwm ua tiav rau 1 lub hlis.

Yuav ua li cas txhua yam ua haujlwm

Yog li, qhov tseem ceeb ntawm Kubecost yog daim ntawv thov tus qauv, sau rau hauv Go. Ib daim ntawv Helm uas piav txog tag nrho cov kab ke hu ua tus nqi-analyzer thiab ntawm nws cov tub ntxhais yog kev sib dhos los ntawm tus qauv nqi nrog Prometheus, Grafana thiab ntau lub dashboards.

Feem ntau hais lus, tus qauv qauv muaj nws tus kheej lub vev xaib interface, uas qhia cov duab thiab cov ncauj lus kom ntxaws txog cov nqi hauv daim ntawv teev npe, nrog rau, tau kawg, cov lus qhia rau kev ua kom zoo dua cov nqi. Cov dashboards nthuav tawm hauv Grafana yog ib theem ua ntej hauv kev txhim kho Kubecost thiab muaj ntau cov ntaub ntawv tib yam li tus qauv nqi, ntxiv rau lawv nrog cov txheeb cais ib txwm muaj ntawm kev noj CPU / nco / network / disk chaw hauv pawg thiab nws cov khoom siv. .

Kubecost ua haujlwm li cas?

  • Tus qauv tsim tau txais cov nqi rau cov kev pabcuam los ntawm API ntawm cov chaw muab kev pabcuam huab.
  • Tsis tas li ntawd, nyob ntawm hom hlau ntawm node thiab cheeb tsam, tus nqi ntawm ib qho yog xam.
  • Raws li tus nqi ntawm cov nodes khiav, txhua nplooj pod tau txais tus nqi ib teev ntawm kev siv CPU, ib gigabyte ntawm lub cim xeeb noj, thiab ib teev ib gigabyte ntawm cov ntaub ntawv khaws cia - nyob ntawm seb lub node nws tau khiav los yog chav kawm ntawm kev cia.
  • Raws li tus nqi ntawm kev khiav hauj lwm cov pods ntawm ib tus neeg, kev them nyiaj yog xam rau lub npe chaw, cov kev pabcuam, Kev xa tawm, StatefulSets.
  • Kev txheeb cais suav nrog kev ntsuas los ntawm kube-xeev-metrics thiab node-exporter.

Nws yog ib qho tseem ceeb uas yuav tau xav txog qhov Kubecost los ntawm lub neej ntawd tsuas suav cov peev txheej muaj nyob hauv Kubernetes. Cov ntaub ntawv sab nraud, GitLab servers, S3 khaws cia thiab lwm yam kev pabcuam uas tsis nyob hauv pawg (txawm tias nyob hauv tib huab) tsis pom nws. Txawm hais tias rau GCP thiab AWS koj tuaj yeem ntxiv cov yuam sij ntawm koj cov nyiaj pabcuam thiab suav txhua yam ua ke.

chaw

Kubecost xav tau:

  • Kubernetes version 1.8 thiab siab dua;
  • kube-xeev-metrics;
  • Prometheus;
  • node-exporter.

Nws thiaj li tshwm sim tias nyob rau hauv peb pawg tag nrho cov xwm txheej no tau ntsib ua ntej, yog li nws tau pom tias nws txaus los qhia qhov tseeb qhov kawg rau kev nkag mus rau Prometheus. Txawm li cas los xij, daim ntawv qhia kubecost Helm muaj txhua yam koj xav tau los khiav ntawm pawg liab qab.

Muaj ntau ntau txoj hauv kev rau nruab Kubecost:

  1. Standard installation txoj kev piav nyob rau hauv cov lus qhia ntawm tus tsim tawm lub vev xaib. Yuav tsum tau ntxiv tus nqi-tus kws tshuaj ntsuam qhov chaw cia rau Helm, thiab tom qab ntawd nruab daim ntawv. Txhua yam uas tseem tshuav yog xa mus rau koj qhov chaw nres nkoj thiab kho cov chaw rau lub xeev xav tau manually (ntawm kubectl) thiab / lossis siv tus nqi- qauv web interface.

    Peb tseem tsis tau sim cov qauv no, vim peb tsis siv cov neeg thib peb npaj-ua teeb tsa, tab sis nws zoo li qhov zoo "tsuas yog sim rau koj tus kheej" kev xaiv. Yog tias koj twb muaj qee yam ntawm cov txheej txheem teeb tsa lossis koj xav tau kev kho kom zoo dua, nws yog qhov zoo dua los xav txog txoj hauv kev thib ob.

  2. Siv qhov tseem ceeb tib daim duab, tab sis configure thiab nruab koj tus kheej nyob rau hauv txhua txoj kev yooj yim.

    Raws li twb tau hais lawm, ntxiv rau kubecost nws tus kheej, daim ntawv qhia no muaj Grafana thiab Prometheus kab kos, uas tuaj yeem hloov kho raws li qhov xav tau.

    Muaj nyob rau ntawm daim duab values.yaml rau tus nqi-analyzer tso cai rau koj los teeb tsa:

    • ib daim ntawv teev cov nqi-kuaj ntsuas cov khoom uas yuav tsum tau siv;
    • koj qhov kawg rau Prometheus (yog tias koj twb muaj lawm);
    • domains thiab lwm yam ingress chaw rau tus nqi qauv thiab Grafana;
    • annotations rau pods;
    • qhov yuav tsum tau siv qhov chaw ruaj khov thiab nws qhov loj me.

    Ib daim ntawv teev tag nrho cov kev xaiv configuration muaj nrog cov lus piav qhia muaj nyob rau hauv cov ntaub ntawv.

    Txij li kubecost hauv nws cov qauv yooj yim tsis tuaj yeem txwv tsis pub nkag mus, koj yuav tsum tau teeb tsa qhov pib-auth tam sim rau lub vev xaib.

  3. Nruab tsuas yog lub hauv paus system - nqi- qauv. Txhawm rau ua qhov no, koj yuav tsum muaj Prometheus ntsia hauv pawg thiab qhia tus nqi sib xws ntawm nws qhov chaw nyob hauv qhov sib txawv. prometheusEndpoint rau Helm. Tom qab ntawd - thov teeb tsa YAML configurations hauv pawg.

    Ib zaug ntxiv, koj yuav tsum tau manually ntxiv Ingress nrog yooj yim-auth. Thaum kawg, koj yuav tsum tau ntxiv ib ntu rau kev sau nqi-tus qauv ntsuas hauv extraScrapeConfigs hauv Prometheus config:

    - job_name: kubecost
      honor_labels: true
      scrape_interval: 1m
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: http
      dns_sd_configs:
      - names:
        - <адрСс вашСго сСрвиса kubecost>
        type: 'A'
        port: 9003

Peb tau txais dab tsi?

Nrog rau kev teeb tsa tag nrho, peb muaj ntawm peb qhov pov tseg kubecost thiab Grafana lub vev xaib nrog cov txheej txheem dashboards.

Tus nqi tag nrho, tso tawm rau ntawm lub vijtsam tseem ceeb, qhia tau tias kwv yees tus nqi ntawm cov peev txheej rau lub hli. Qhov no kwv yees tus nqi qhia txog tus nqi ntawm kev siv pawg (ib hlis) ntawm cov peev txheej tam sim no.

Qhov kev ntsuas no ntau dua rau kev txheeb xyuas cov nuj nqis thiab ua kom lawv zoo dua. Nws tsis yooj yim heev los saib tag nrho cov nqi rau lub Xya Hli abstract hauv kubecost: koj yuav tsum mus rau kev them nqi. Tab sis koj tuaj yeem pom cov nqi tawg los ntawm namespaces, cov ntawv lo, pods rau 1/2/7/30/90 hnub, uas daim nqi yuav tsis qhia koj.

Kubecost tshuaj xyuas kom txuag nyiaj ntawm Kubernetes hauv huab

Hais txog daim ntawv lo. Koj yuav tsum tau mus rau qhov chaw tam sim ntawd thiab teeb tsa cov npe ntawm cov ntawv lo uas yuav raug siv los ua pawg ntxiv rau cov nqi pab pawg:

Kubecost tshuaj xyuas kom txuag nyiaj ntawm Kubernetes hauv huab

Koj tuaj yeem dai ib daim ntawv lo rau ntawm lawv - yooj yim yog tias koj twb muaj koj tus kheej daim ntawv lo.

Tsis tas li ntawd koj tuaj yeem hloov qhov chaw nyob ntawm API qhov kawg uas tus nqi-tus qauv txuas, kho qhov luv nqi hauv GCP thiab teeb tsa koj tus kheej tus nqi rau cov peev txheej thiab txiaj rau lawv qhov ntsuas (rau qee qhov feature tsis cuam tshuam tag nrho cov nqi).

Kubecost tuaj yeem qhia ntau yam teeb meem hauv pawg (thiab txawm ceeb toom thaum muaj xwm txheej). Hmoov tsis zoo, qhov kev xaiv tsis yog configurable, thiab yog li ntawd, yog tias koj muaj ib puag ncig rau cov neeg tsim khoom thiab siv lawv, koj yuav pom qee yam zoo li no:

Kubecost tshuaj xyuas kom txuag nyiaj ntawm Kubernetes hauv huab

Ib qho cuab yeej tseem ceeb - Pawg Txiaj Ntsig. Nws ntsuas qhov kev ua ntawm cov pods (siv cov peev txheej, suav nrog cov network), thiab suav nyiaj ntau npaum li cas thiab koj tuaj yeem txuag tau li cas.

Nws yuav zoo li tias cov lus qhia txog kev ua kom zoo dua yog qhov pom tseeb, tab sis kev paub qhia tias tseem muaj qee yam los saib. Tshwj xeeb, kev ua haujlwm hauv lub network ntawm cov pods yog saib xyuas (Kubecost qhia txog kev them nyiaj rau cov tsis muaj zog), qhov kev thov thiab lub cim xeeb tiag tiag thiab CPU noj tau muab piv, nrog rau CPU siv los ntawm pawg nodes (qhia txog kev sib tsoo ob peb lub rau hauv ib qho), disk load thiab ob peb lub kaum ob ntxiv parameters.

Raws li nrog rau txhua qhov teeb meem optimization, optimizing peev txheej raws li Kubecost cov ntaub ntawv yuav tsum: kho nrog ceev faj. Piv txwv li, Cluster Savings pom zoo kom rho tawm cov nodes, thov tias nws muaj kev nyab xeeb, tab sis tsis suav nrog qhov muaj cov neeg xaiv thiab cov taints hauv cov pods xa mus rau lawv uas tsis muaj nyob rau ntawm lwm cov nodes. Thiab nyob rau hauv dav dav, txawm tus sau ntawm cov khoom nyob rau hauv lawv tsab xov xwm tsis ntev los no (los ntawm txoj kev, nws tuaj yeem muaj txiaj ntsig zoo rau cov neeg uas xav paub txog lub ntsiab lus ntawm qhov project) nws raug pom zoo kom tsis txhob maj mus rau hauv tus nqi optimization, tab sis mus cuag qhov teeb meem xav.

Cov txiaj ntsim tau los

Tom qab siv kubecost rau ib hlis ntawm ob peb txoj haujlwm, peb tuaj yeem txiav txim siab tias nws yog qhov nthuav (thiab kuj yooj yim rau kev kawm thiab nruab) cov cuab yeej rau kev tshuaj xyuas thiab kho cov nqi rau cov kev pabcuam huab cua siv rau Kubernetes pawg. Cov kev suav ua tau yog qhov tseeb heev: hauv peb qhov kev sim lawv tau sib txuam nrog cov neeg muab kev pabcuam tiag tiag xav tau.

Kuj tseem muaj qee qhov downsides: muaj cov kab tsis tseem ceeb, thiab qee qhov chaw ua haujlwm tsis suav nrog cov kev xav tau tshwj xeeb rau qee qhov haujlwm. Txawm li cas los xij, yog tias koj xav tau kom nkag siab sai sai rau qhov twg cov nyiaj yuav mus thiab dab tsi tuaj yeem "txiav" txhawm rau txo qis daim nqi rau cov kev pabcuam huab los ntawm 5-30% (qhov no yog qhov tshwm sim hauv peb rooj plaub), qhov no yog qhov kev xaiv zoo. .

PS

Nyeem kuj ntawm peb blog:

Tau qhov twg los: www.hab.com

Ntxiv ib saib