మేఘాలలో కుబెర్నెట్స్‌లో డబ్బు ఆదా చేయడం కోసం Kubecost సమీక్ష

మేఘాలలో కుబెర్నెట్స్‌లో డబ్బు ఆదా చేయడం కోసం Kubecost సమీక్ష

ప్రస్తుతం, ఎక్కువ కంపెనీలు తమ మౌలిక సదుపాయాలను హార్డ్‌వేర్ సర్వర్లు మరియు వారి స్వంత వర్చువల్ మెషీన్‌ల నుండి క్లౌడ్‌కు బదిలీ చేస్తున్నాయి. ఈ పరిష్కారాన్ని వివరించడం సులభం: హార్డ్‌వేర్ గురించి ఆందోళన చెందాల్సిన అవసరం లేదు, క్లస్టర్ అనేక రకాలుగా సులభంగా కాన్ఫిగర్ చేయబడుతుంది... మరియు ముఖ్యంగా, ఇప్పటికే ఉన్న సాంకేతికతలు (కుబెర్నెట్స్ వంటివి) లోడ్‌పై ఆధారపడి కంప్యూటింగ్ శక్తిని స్కేల్ చేయడం సాధ్యపడుతుంది. .

ఆర్థిక అంశం ఎల్లప్పుడూ ముఖ్యమైనది. ఈ కథనంలో చర్చించిన సాధనం కుబెర్నెట్స్‌తో క్లౌడ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌ను ఉపయోగిస్తున్నప్పుడు బడ్జెట్‌లను తగ్గించడంలో సహాయపడటానికి రూపొందించబడింది.

పరిచయం

కుబెకోస్ట్ అనేది Google నుండి కాలిఫోర్నియా స్టార్టప్, క్లౌడ్ సేవలలో (కుబెర్నెట్స్ క్లస్టర్ + షేర్డ్ రిసోర్స్‌లలో) మౌలిక సదుపాయాల ఖర్చులను గణించడానికి, క్లస్టర్ సెట్టింగ్‌లలో అడ్డంకుల కోసం శోధించడం మరియు స్లాక్‌కి తగిన నోటిఫికేషన్‌లను పంపడం కోసం ఒక పరిష్కారాన్ని సృష్టిస్తుంది.

మాకు తెలిసిన AWS మరియు GCP క్లౌడ్‌లలో మరియు చాలా అరుదుగా Linux కమ్యూనిటీకి Azure - సాధారణంగా, Kubecost మద్దతు ఇచ్చే అన్ని ప్లాట్‌ఫారమ్‌లలో మేము Kubernetesతో క్లయింట్‌లను కలిగి ఉన్నాము. వాటిలో కొన్నింటికి, మేము ఇంట్రా-క్లస్టర్ సేవల ఖర్చులను మనమే లెక్కిస్తాము (కుబెకోస్ట్ ఉపయోగించే పద్ధతిని ఉపయోగించి), మరియు మౌలిక సదుపాయాల ఖర్చులను కూడా పర్యవేక్షిస్తాము మరియు వాటిని ఆప్టిమైజ్ చేయడానికి ప్రయత్నిస్తాము. అందువల్ల, అటువంటి పనులను ఆటోమేట్ చేసే అవకాశంపై మేము ఆసక్తి కలిగి ఉన్నాము అనేది తార్కికం.

ప్రధాన కుబెకోస్ట్ మాడ్యూల్ యొక్క సోర్స్ కోడ్ ఓపెన్ సోర్స్ లైసెన్స్ (అపాచీ లైసెన్స్ 2.0) నిబంధనల ప్రకారం తెరవబడుతుంది. ఇది ఉచితంగా ఉపయోగించవచ్చు మరియు అందుబాటులో ఉన్న ఫీచర్లు చిన్న ప్రాజెక్ట్‌లకు సరిపోతాయి. అయితే, వ్యాపారం వ్యాపారం: మిగిలిన ఉత్పత్తి మూసివేయబడింది, దీనిని ఉపయోగించవచ్చు చెల్లింపు సభ్యత్వాలు, ఇది వాణిజ్య మద్దతును కూడా సూచిస్తుంది. అదనంగా, రచయితలు చిన్న క్లస్టర్‌ల కోసం ఉచిత లైసెన్స్‌ను అందిస్తారు (1 నోడ్‌లతో 10 క్లస్టర్ - ఈ కథనాన్ని వ్రాసే సమయంలో, ఈ పరిమితి 20 నోడ్‌లకు విస్తరించబడింది) లేదా 1 నెల పాటు పూర్తి సామర్థ్యాలతో ట్రయల్ వ్యవధిని అందిస్తారు.

ప్రతిదీ ఎలా పని చేస్తుంది

కాబట్టి, కుబెకోస్ట్ యొక్క ప్రధాన భాగం అప్లికేషన్ ఖర్చు-నమూనా, గోలో వ్రాయబడింది. మొత్తం వ్యవస్థను వివరించే హెల్మ్ చార్ట్ అంటారు ఖర్చు-విశ్లేషకుడు మరియు దాని ప్రధాన భాగంలో ప్రోమేతియస్, గ్రాఫానా మరియు అనేక డ్యాష్‌బోర్డ్‌లతో కూడిన కాస్ట్-మోడల్ నుండి ఒక అసెంబ్లీ ఉంది.

సాధారణంగా చెప్పాలంటే, కాస్ట్-మోడల్ దాని స్వంత వెబ్ ఇంటర్‌ఫేస్‌ను కలిగి ఉంది, ఇది గ్రాఫ్‌లు మరియు ఖర్చులపై వివరణాత్మక గణాంకాలను పట్టిక రూపంలో చూపిస్తుంది, అలాగే, ఖర్చులను ఆప్టిమైజ్ చేయడానికి చిట్కాలను చూపుతుంది. గ్రాఫానాలో ప్రదర్శించబడిన డ్యాష్‌బోర్డ్‌లు కుబెకోస్ట్ అభివృద్ధిలో మునుపటి దశ మరియు ఖర్చు-మోడల్‌కు సమానమైన డేటాను కలిగి ఉంటాయి, క్లస్టర్ మరియు దాని భాగాలలో CPU/మెమరీ/నెట్‌వర్క్/డిస్క్ స్థలం వినియోగంపై సాధారణ గణాంకాలతో వాటిని భర్తీ చేస్తాయి. .

Kubecost ఎలా పని చేస్తుంది?

  • క్లౌడ్ ప్రొవైడర్ల API ద్వారా కాస్ట్-మోడల్ సేవల ధరలను అందుకుంటుంది.
  • ఇంకా, నోడ్ మరియు ప్రాంతం యొక్క ఇనుప రకాన్ని బట్టి, నోడ్‌కు ధర లెక్కించబడుతుంది.
  • రన్నింగ్ నోడ్‌ల ధర ఆధారంగా, ప్రతి లీఫ్ పాడ్ CPU వినియోగానికి గంటకు, వినియోగించిన మెమరీకి గిగాబైట్‌కు మరియు నిల్వ చేయబడిన ప్రతి గిగాబైట్ డేటాకు గంటకు ఖర్చును పొందుతుంది - ఇది నడుస్తున్న నోడ్ లేదా స్టోరేజ్ తరగతిపై ఆధారపడి ఉంటుంది.
  • వ్యక్తిగత పాడ్‌ల నిర్వహణ ఖర్చు ఆధారంగా, నేమ్‌స్పేస్‌లు, సేవలు, విస్తరణలు, స్టేట్‌ఫుల్‌సెట్‌ల కోసం చెల్లింపు లెక్కించబడుతుంది.
  • kube-state-metrics మరియు node-exporter అందించిన కొలమానాలను ఉపయోగించి గణాంకాలు లెక్కించబడతాయి.

కుబెకోస్ట్ అని పరిగణించడం ముఖ్యం డిఫాల్ట్‌గా కుబెర్నెట్స్‌లో అందుబాటులో ఉన్న వనరులను మాత్రమే గణిస్తుంది. క్లస్టర్‌లో లేని బాహ్య డేటాబేస్‌లు, GitLab సర్వర్లు, S3 నిల్వలు మరియు ఇతర సేవలు (ఒకే క్లౌడ్‌లో ఉన్నప్పటికీ) దీనికి కనిపించవు. GCP మరియు AWS కోసం మీరు మీ సేవా ఖాతాల కీలను జోడించవచ్చు మరియు అన్నింటినీ కలిపి లెక్కించవచ్చు.

సెట్టింగ్

Kubecost అవసరం:

  • కుబెర్నెటెస్ వెర్షన్ 1.8 మరియు అంతకంటే ఎక్కువ;
  • కుబే-స్టేట్-మెట్రిక్స్;
  • ప్రోమేతియస్;
  • నోడ్-ఎగుమతిదారు.

మా క్లస్టర్‌లలో ఈ పరిస్థితులన్నీ ముందుగానే కలుసుకున్నాయి, కాబట్టి ప్రోమేతియస్‌కు ప్రాప్యత కోసం సరైన ముగింపు బిందువును పేర్కొనడం సరిపోతుందని తేలింది. అయితే, అధికారిక kubecost హెల్మ్ చార్ట్ మీరు బేర్ క్లస్టర్‌లో అమలు చేయడానికి అవసరమైన ప్రతిదాన్ని కలిగి ఉంది.

Kubecostని ఇన్‌స్టాల్ చేయడానికి అనేక మార్గాలు ఉన్నాయి:

  1. లో వివరించిన ప్రామాణిక సంస్థాపన విధానం సూచనలను డెవలపర్ వెబ్‌సైట్‌లో. అవసరం హెల్మ్‌కు కాస్ట్-ఎనలైజర్ రిపోజిటరీని జోడించి, ఆపై చార్ట్‌ను ఇన్‌స్టాల్ చేయండి. మీ పోర్ట్‌ను ఫార్వార్డ్ చేయడం మరియు సెట్టింగ్‌లను మాన్యువల్‌గా (kubectl ద్వారా) మరియు/లేదా కాస్ట్-మోడల్ వెబ్ ఇంటర్‌ఫేస్‌ని ఉపయోగించి కావలసిన స్థితికి సర్దుబాటు చేయడం మాత్రమే మిగిలి ఉంది.

    మేము ఈ పద్ధతిని కూడా ప్రయత్నించలేదు, ఎందుకంటే మేము థర్డ్-పార్టీ రెడీమేడ్ కాన్ఫిగరేషన్‌లను ఉపయోగించము, కానీ ఇది మంచి “మీ కోసం దీన్ని ప్రయత్నించండి” ఎంపికలా కనిపిస్తోంది. మీరు ఇప్పటికే కొన్ని సిస్టమ్ కాంపోనెంట్‌లను ఇన్‌స్టాల్ చేసి ఉంటే లేదా మీరు మరింత ఫైన్-ట్యూనింగ్ చేయాలనుకుంటే, రెండవ మార్గాన్ని పరిగణించడం మంచిది.

  2. తప్పనిసరిగా ఉపయోగించండి అదే చార్ట్, కానీ దానిని మీరే కాన్ఫిగర్ చేసి, ఇన్‌స్టాల్ చేయండి ఏదైనా అనుకూలమైన మార్గంలో.

    ఇప్పటికే పేర్కొన్నట్లుగా, కుబెకోస్ట్‌తో పాటు, ఈ చార్ట్‌లో గ్రాఫానా మరియు ప్రోమేతియస్ చార్ట్‌లు ఉన్నాయి, వీటిని కూడా కావలసిన విధంగా అనుకూలీకరించవచ్చు.

    చార్ట్‌లో అందుబాటులో ఉంది values.yaml కాస్ట్-ఎనలైజర్ కోసం మీరు కాన్ఫిగర్ చేయడానికి అనుమతిస్తుంది:

    • అమలు చేయవలసిన కాస్ట్-ఎనలైజర్ భాగాల జాబితా;
    • ప్రోమేతియస్ కోసం మీ ముగింపు స్థానం (మీకు ఇప్పటికే ఒకటి ఉంటే);
    • డొమైన్‌లు మరియు ఖర్చు-మోడల్ మరియు గ్రాఫానా కోసం ఇతర ప్రవేశ సెట్టింగ్‌లు;
    • పాడ్‌ల కోసం ఉల్లేఖనాలు;
    • శాశ్వత నిల్వ మరియు దాని పరిమాణాన్ని ఉపయోగించాల్సిన అవసరం ఉంది.

    వివరణలతో అందుబాటులో ఉన్న కాన్ఫిగరేషన్ ఎంపికల పూర్తి జాబితా అందుబాటులో ఉంది డాక్యుమెంటేషన్.

    kubecost దాని ప్రాథమిక సంస్కరణలో యాక్సెస్‌ని పరిమితం చేయలేనందున, మీరు వెంటనే వెబ్ ప్యానెల్ కోసం ప్రాథమిక-ప్రామాణీకరణను కాన్ఫిగర్ చేయాలి.

  3. ఏర్పాటు సిస్టమ్ కోర్ మాత్రమే - ధర నమూనా. దీన్ని చేయడానికి, మీరు క్లస్టర్‌లో ప్రోమేతియస్‌ను ఇన్‌స్టాల్ చేసి ఉండాలి మరియు వేరియబుల్‌లో దాని చిరునామా యొక్క సంబంధిత విలువను పేర్కొనాలి prometheusEndpoint హెల్మ్ కోసం. ఆ తరువాత - దరఖాస్తు YAML కాన్ఫిగరేషన్ల సెట్ క్లస్టర్‌లో.

    మళ్లీ, మీరు ప్రాథమిక-ప్రామాణీకరణతో మాన్యువల్‌గా ప్రవేశాన్ని జోడించాలి. చివరగా, మీరు ఖర్చు-మోడల్ కొలమానాలను సేకరించడానికి ఒక విభాగాన్ని జోడించాలి extraScrapeConfigs ప్రోమేతియస్ కాన్ఫిగరేషన్‌లో:

    - 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

మనకు ఏమి లభిస్తుంది?

పూర్తి ఇన్‌స్టాలేషన్‌తో, డ్యాష్‌బోర్డ్‌ల సెట్‌తో మా వద్ద kubecost మరియు Grafana వెబ్ ప్యానెల్ ఉన్నాయి.

మొత్తం వ్యయం, ప్రధాన స్క్రీన్‌పై ప్రదర్శించబడుతుంది, వాస్తవానికి నెలకు వనరుల అంచనా వ్యయాన్ని చూపుతుంది. ఈ అంచనా వేయబడింది ప్రస్తుత వనరుల వినియోగ స్థాయిలో క్లస్టర్‌ను (నెలకు) ఉపయోగించేందుకు అయ్యే ఖర్చును ప్రతిబింబించే ధర.

ఈ మెట్రిక్ ఖర్చులను విశ్లేషించడానికి మరియు వాటిని ఆప్టిమైజ్ చేయడానికి ఎక్కువ. కుబెకోస్ట్‌లో నైరూప్య జూలై కోసం మొత్తం ఖర్చులను చూడటం చాలా సౌకర్యవంతంగా లేదు: మీరు దీన్ని చేయాల్సి ఉంటుంది బిల్లింగ్‌కి వెళ్లండి. కానీ మీరు 1/2/7/30/90 రోజులకు నేమ్‌స్పేస్‌లు, లేబుల్‌లు, పాడ్‌ల ద్వారా విభజించబడిన ఖర్చులను చూడవచ్చు, వీటిని బిల్లింగ్ మీకు ఎప్పటికీ చూపదు.

మేఘాలలో కుబెర్నెట్స్‌లో డబ్బు ఆదా చేయడం కోసం Kubecost సమీక్ష

గురించి మాట్లాడితే లేబుల్స్. మీరు వెంటనే సెట్టింగ్‌లకు వెళ్లి, సమూహ ఖర్చుల కోసం అదనపు వర్గాలుగా ఉపయోగించబడే లేబుల్‌ల పేర్లను సెట్ చేయాలి:

మేఘాలలో కుబెర్నెట్స్‌లో డబ్బు ఆదా చేయడం కోసం Kubecost సమీక్ష

మీరు వాటిపై ఏవైనా లేబుల్‌లను వేలాడదీయవచ్చు - మీకు ఇప్పటికే మీ స్వంత లేబులింగ్ సిస్టమ్ ఉంటే సౌకర్యవంతంగా ఉంటుంది.

అలాగే అక్కడ మీరు కాస్ట్-మోడల్ కనెక్ట్ చేసే API ఎండ్‌పాయింట్ చిరునామాను మార్చవచ్చు, GCPలో తగ్గింపు పరిమాణాన్ని సర్దుబాటు చేయవచ్చు మరియు వనరులు మరియు కరెన్సీని కొలిచే మీ స్వంత ధరలను సెట్ చేయవచ్చు (కొన్ని కారణాల వల్ల ఫీచర్ మొత్తం ధరను ప్రభావితం చేయదు).

Kubecost వివిధ చూపవచ్చు క్లస్టర్‌లో సమస్యలు (మరియు ప్రమాదం విషయంలో కూడా హెచ్చరిక). దురదృష్టవశాత్తు, ఎంపిక కాన్ఫిగర్ చేయబడదు మరియు అందువల్ల, మీరు డెవలపర్‌ల కోసం వాతావరణాలను కలిగి ఉంటే మరియు వాటిని ఉపయోగిస్తే, మీరు నిరంతరం ఇలాంటివి చూస్తారు:

మేఘాలలో కుబెర్నెట్స్‌లో డబ్బు ఆదా చేయడం కోసం Kubecost సమీక్ష

ఒక ముఖ్యమైన సాధనం - క్లస్టర్ సేవింగ్స్. ఇది పాడ్‌ల కార్యాచరణను (నెట్‌వర్క్‌తో సహా వనరుల వినియోగం) కొలుస్తుంది మరియు ఎంత డబ్బు మరియు మీరు ఏమి ఆదా చేయవచ్చో కూడా లెక్కిస్తుంది.

ఆప్టిమైజేషన్ చిట్కాలు చాలా స్పష్టంగా ఉన్నట్లు అనిపించవచ్చు, కానీ అనుభవం ఇంకా చూడడానికి ఇంకా ఏదో ఉందని సూచిస్తుంది. ప్రత్యేకించి, పాడ్‌ల నెట్‌వర్క్ కార్యాచరణ పర్యవేక్షించబడుతుంది (క్రియారహితమైన వాటిపై శ్రద్ధ చూపాలని Kubecost సూచిస్తుంది), అభ్యర్థించిన మరియు వాస్తవ మెమరీ మరియు CPU వినియోగం పోల్చబడుతుంది, అలాగే క్లస్టర్ నోడ్‌ల ద్వారా ఉపయోగించే CPU (అనేక నోడ్‌లను ఒకటిగా కుప్పకూలడాన్ని సూచిస్తుంది), డిస్క్ లోడ్ మరియు డజను మరిన్ని పారామితులు.

ఏదైనా ఆప్టిమైజేషన్ సమస్య వలె, Kubecost డేటా ఆధారంగా వనరులను ఆప్టిమైజ్ చేయడం అవసరం: జాగ్రత్తగా వ్యవహరించండి. ఉదాహరణకు, క్లస్టర్ సేవింగ్స్ నోడ్‌లను తొలగించాలని సూచించింది, ఇది సురక్షితమైనదని పేర్కొంటూ, ఇతర నోడ్‌లలో అందుబాటులో లేని నోడ్-సెలెక్టర్లు మరియు వాటిపై మోహరించిన పాడ్‌లలోని మచ్చలను పరిగణనలోకి తీసుకోదు. మరియు సాధారణంగా, వారి ఉత్పత్తి యొక్క రచయితలు కూడా ఇటీవలి కథనం (మార్గం ద్వారా, ప్రాజెక్ట్ యొక్క అంశంపై ఆసక్తి ఉన్నవారికి ఇది చాలా ఉపయోగకరంగా ఉంటుంది) ఖర్చు ఆప్టిమైజేషన్‌లో తలదూర్చవద్దని సిఫార్సు చేయబడింది, కానీ సమస్యను ఆలోచనాత్మకంగా సంప్రదించడానికి.

ఫలితాలు

రెండు ప్రాజెక్ట్‌లలో ఒక నెలపాటు kubecostని ఉపయోగించిన తర్వాత, Kubernetes క్లస్టర్‌ల కోసం ఉపయోగించే క్లౌడ్ ప్రొవైడర్‌ల సేవల కోసం ఖర్చులను విశ్లేషించడానికి మరియు ఆప్టిమైజ్ చేయడానికి ఇది ఆసక్తికరమైన (మరియు నేర్చుకోవడం మరియు ఇన్‌స్టాల్ చేయడం కూడా సులభం) సాధనం అని మేము నిర్ధారించగలము. గణనలు చాలా ఖచ్చితమైనవిగా మారాయి: మా ప్రయోగాలలో అవి ప్రొవైడర్లు వాస్తవానికి ఏమి అవసరమో అవి ఏకీభవించాయి.

కొన్ని ప్రతికూలతలు కూడా ఉన్నాయి: నాన్-క్రిటికల్ బగ్‌లు ఉన్నాయి మరియు కొన్ని చోట్ల ఫంక్షనాలిటీ కొన్ని ప్రాజెక్ట్‌లకు నిర్దిష్ట అవసరాలను కవర్ చేయదు. అయినప్పటికీ, క్లౌడ్ సేవల బిల్లును స్థిరంగా 5-30% తగ్గించడానికి డబ్బు ఎక్కడికి వెళుతుందో మరియు ఏమి “కట్” చేయవచ్చో మీరు త్వరగా అర్థం చేసుకోవలసి వస్తే (ఇది మా విషయంలో జరిగింది), ఇది గొప్ప ఎంపిక. .

PS

మా బ్లాగులో కూడా చదవండి:

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి