වලාකුළු තුළ Kubernetes මත මුදල් ඉතිරි කිරීම සඳහා Kubecost සමාලෝචනය

වලාකුළු තුළ Kubernetes මත මුදල් ඉතිරි කිරීම සඳහා Kubecost සමාලෝචනය

වර්තමානයේ, වැඩි වැඩියෙන් සමාගම් ඔවුන්ගේ යටිතල පහසුකම් දෘඩාංග සේවාදායකයන්ගෙන් සහ ඔවුන්ගේම අථත්‍ය යන්ත්‍ර වලින් වලාකුළට මාරු කරයි. මෙම විසඳුම පැහැදිලි කිරීම පහසුය: දෘඩාංග ගැන කරදර විය යුතු නැත, පොකුර විවිධ ආකාරවලින් පහසුවෙන් වින්‍යාස කර ඇත ... සහ වඩාත්ම වැදගත් දෙය නම්, පවතින තාක්‍ෂණයන් (කුබර්නෙටස් වැනි) බර අනුව සරලව පරිගණක බලය පරිමාණය කිරීමට හැකි වීමයි. .

මූල්ය අංශය සෑම විටම වැදගත් වේ. මෙම ලිපියේ සාකච්ඡා කරන ලද මෙවලම Kubernetes සමඟ වලාකුළු යටිතල පහසුකම් භාවිතා කරන විට අයවැය අඩු කිරීමට උපකාරී වේ.

හැඳින්වීම

කුබෙකොස්ට් Google වෙතින් කැලිෆෝනියානු ආරම්භයක් වන අතර, ක්ලවුඩ් සේවාවන්හි යටිතල පහසුකම් පිරිවැය ගණනය කිරීම සඳහා විසඳුමක් නිර්මාණය කරයි (කුබර්නෙටස් පොකුරක් + හවුල් සම්පත් තුළ), පොකුරු සැකසුම් තුළ බාධක සෙවීම සහ ස්ලැක් වෙත සුදුසු දැනුම්දීම් යැවීම.

අපට හුරුපුරුදු AWS සහ GCP වලාකුළු දෙකෙහිම Kubernetes සමඟ ගනුදෙනුකරුවන් සිටින අතර, Linux ප්‍රජාව සඳහා වඩාත් කලාතුරකිනි, Azure - පොදුවේ, Kubecost විසින් සහාය දක්වන සියලුම වේදිකාවල. ඒවායින් සමහරක් සඳහා, අප විසින්ම අන්තර්-පොකුරු සේවාවල පිරිවැය ගණනය කරන්නෙමු (Kubecost විසින් භාවිතා කරන ක්‍රමයට සමාන ක්‍රමයක් භාවිතා කරමින්), සහ යටිතල පහසුකම් පිරිවැය අධීක්ෂණය කර ඒවා ප්‍රශස්ත කිරීමට උත්සාහ කරන්න. එබැවින්, එවැනි කාර්යයන් ස්වයංක්‍රීය කිරීමේ හැකියාව ගැන අප උනන්දු වූ බව තර්කානුකූල ය.

ප්‍රධාන Kubecost මොඩියුලයේ මූල කේතය විවෘත මූලාශ්‍ර බලපත්‍රයේ (Apache බලපත්‍ර 2.0) කොන්දේසි යටතේ විවෘත වේ. එය නිදහසේ භාවිතා කළ හැකි අතර කුඩා ව්යාපෘති සඳහා පවතින විශේෂාංග ප්රමාණවත් විය යුතුය. කෙසේ වෙතත්, ව්‍යාපාරය ව්‍යාපාරයකි: නිෂ්පාදනයේ ඉතිරි කොටස වසා ඇත, එය භාවිතා කළ හැකිය ගෙවූ දායකත්වයන්, එයින් අදහස් කරන්නේ වාණිජ සහාය ද වේ. මීට අමතරව, කතුවරුන් කුඩා පොකුරු සඳහා නොමිලේ බලපත්රයක් ලබා දෙයි (1 නෝඩ් සහිත 10 පොකුරු - මෙම ලිපිය ලිවීමේදී, මෙම සීමාව නෝඩ් 20 දක්වා පුළුල් කර ඇත) හෝ මාස 1 ක් සඳහා සම්පූර්ණ හැකියාවන් සහිත අත්හදා බැලීමේ කාල සීමාවක්.

සෑම දෙයක්ම ක්රියා කරන ආකාරය

එබැවින්, Kubecost හි ප්රධාන කොටස වන්නේ යෙදුමයි පිරිවැය-ආකෘතිය, Go හි ලියා ඇත. සමස්ත පද්ධතියම විස්තර කරන හෙල්ම් ප්‍රස්ථාරයක් ලෙස හැඳින්වේ පිරිවැය-විශ්ලේෂකය සහ එහි හරය වන්නේ Prometheus, Grafana සහ උපකරණ පුවරු කිහිපයක් සහිත පිරිවැය-ආකෘතියකින් එකලස් කිරීමයි.

සාමාන්‍යයෙන් කිවහොත්, පිරිවැය-ආකෘතියට තමන්ගේම වෙබ් අතුරු මුහුණතක් ඇත, එය වගු ආකාරයෙන් පිරිවැය පිළිබඳ ප්‍රස්ථාර සහ සවිස්තරාත්මක සංඛ්‍යාලේඛන මෙන්ම, ඇත්ත වශයෙන්ම, පිරිවැය ප්‍රශස්ත කිරීම සඳහා ඉඟි පෙන්වයි. Grafana හි ඉදිරිපත් කර ඇති උපකරණ පුවරු Kubecost සංවර්ධනයේ පූර්ව අවධියක් වන අතර, CPU/memory/network/disk ඉඩ පරිභෝජනය සහ එහි සංරචකවල සාමාන්‍ය සංඛ්‍යාලේඛන සමඟ ඒවාට අතිරේකව පිරිවැය-ආකෘතියට සමාන දත්ත අඩංගු වේ. .

Kubecost වැඩ කරන්නේ කෙසේද?

  • වලාකුළු සපයන්නන්ගේ API හරහා පිරිවැය-ආකෘතියට සේවා සඳහා මිල ගණන් ලැබේ.
  • තවද, නෝඩයේ සහ කලාපයේ යකඩ වර්ගය අනුව, නෝඩයකට පිරිවැය ගණනය කෙරේ.
  • නෝඩ් ධාවනය කිරීමේ පිරිවැය මත පදනම්ව, එක් එක් කොළ කරල් සඳහා CPU භාවිතයේ පැයකට, පරිභෝජනය කරන මතකයේ ගිගාබයිට් එකකට සහ ගබඩා කර ඇති දත්ත ගිගාබයිට් එකකට පැයකට - එය ක්‍රියාත්මක වූ නෝඩය හෝ ගබඩා පන්තිය මත පදනම්ව.
  • තනි පොඩ්ස් ක්‍රියාත්මක කිරීමේ පිරිවැය මත පදනම්ව, නාම අවකාශයන්, සේවා, යෙදවීම්, රාජ්‍ය කට්ටල සඳහා ගෙවීම් ගණනය කෙරේ.
  • kube-state-metrics සහ node-exporter විසින් සපයන ලද ප්‍රමිතික භාවිතයෙන් සංඛ්‍යාලේඛන ගණනය කෙරේ.

Kubecost බව සැලකිල්ලට ගැනීම වැදගත්ය පෙරනිමියෙන් ගණනය කරන්නේ Kubernetes හි ඇති සම්පත් පමණි. බාහිර දත්ත සමුදායන්, GitLab සේවාදායකයන්, S3 ගබඩා කිරීම් සහ පොකුරේ නොමැති වෙනත් සේවාවන් (එකම වලාකුළක පිහිටා තිබුණද) එයට නොපෙනේ. GCP සහ AWS සඳහා වුවද ඔබට ඔබගේ සේවා ගිණුම්වල යතුරු එකතු කර සියල්ල එකට ගණනය කළ හැක.

ස්ථාපනය

Kubecost අවශ්ය වන්නේ:

  • Kubernetes අනුවාදය 1.8 සහ ඉහළ;
  • kube-state-metrics;
  • Prometheus;
  • node-exporter.

අපගේ පොකුරු තුළ මෙම සියලු කොන්දේසි කල්තියා සපුරා ඇති බැවින්, ප්‍රොමිතියස් වෙත ප්‍රවේශය සඳහා නිවැරදි අවසාන ලක්ෂ්‍යය සඳහන් කිරීම පමණක් ප්‍රමාණවත් බව පෙනී ගියේය. කෙසේ වෙතත්, නිල kubecost Helm ප්‍රස්ථාරයේ ඔබට හිස් පොකුරක් මත ධාවනය කිරීමට අවශ්‍ය සියල්ල අඩංගු වේ.

Kubecost ස්ථාපනය කිරීමට ක්රම කිහිපයක් තිබේ:

  1. විස්තර කර ඇති සම්මත ස්ථාපන ක්රමය උපදෙස් සංවර්ධකයාගේ වෙබ් අඩවියේ. අවශ්‍යයි හෙල්ම් වෙත පිරිවැය-විශ්ලේෂක ගබඩාව එක් කරන්න, ඉන්පසු ප්‍රස්ථාරය ස්ථාපනය කරන්න. ඉතිරිව ඇත්තේ ඔබගේ වරාය ඉදිරියට යැවීම සහ අතින් (kubectl හරහා) සහ/හෝ පිරිවැය-ආදර්ශ වෙබ් අතුරු මුහුණත භාවිතා කිරීම සඳහා අවශ්‍ය තත්වයට සැකසීම් සකස් කිරීමයි.

    අපි තෙවන පාර්ශවීය සූදානම් කළ වින්‍යාසයන් භාවිතා නොකරන බැවින් අපි මෙම ක්‍රමය උත්සාහ කර නැත, නමුත් එය හොඳ “එය ඔබම උත්සාහ කරන්න” විකල්පයක් ලෙස පෙනේ. ඔබ දැනටමත් සමහර පද්ධති සංරචක ස්ථාපනය කර ඇත්නම් හෝ ඔබට වඩාත් සියුම් සුසර කිරීම අවශ්ය නම්, දෙවන මාර්ගය සලකා බැලීම වඩා හොඳය.

  2. අත්යවශ්යයෙන්ම භාවිතා කරන්න එකම ප්‍රස්ථාරය, නමුත් එය ඔබම වින්‍යාස කර ස්ථාපනය කරන්න ඕනෑම පහසු ආකාරයකින්.

    දැනටමත් සඳහන් කර ඇති පරිදි, kubecost වලට අමතරව, මෙම ප්‍රස්ථාරයේ Grafana සහ Prometheus ප්‍රස්ථාර අඩංගු වන අතර ඒවා අවශ්‍ය පරිදි අභිරුචිකරණය කළ හැකිය.

    ප්‍රස්ථාරයේ ඇත values.yaml පිරිවැය-විශ්ලේෂකය සඳහා ඔබට වින්‍යාස කිරීමට ඉඩ සලසයි:

    • යෙදවිය යුතු පිරිවැය-විශ්ලේෂක සංරචක ලැයිස්තුවක්;
    • Prometheus සඳහා ඔබේ අවසන් ලක්ෂ්‍යය (ඔබට දැනටමත් එකක් තිබේ නම්);
    • පිරිවැය-ආකෘතිය සහ ග්‍රැෆානා සඳහා වසම් සහ අනෙකුත් ඇතුල්වීම් සැකසීම්;
    • කරල් සඳහා විවරණ;
    • ස්ථිර ගබඩාව සහ එහි විශාලත්වය භාවිතා කිරීමේ අවශ්යතාව.

    විස්තර සහිත පවතින වින්‍යාස විකල්පවල සම්පූර්ණ ලැයිස්තුවක් ඇත ලියකියවිලි.

    එහි මූලික අනුවාදයේ ඇති kubecost හට ප්‍රවේශය සීමා කළ නොහැකි බැවින්, ඔබ වහාම වෙබ් පැනලය සඳහා මූලික සත්‍යාපනය වින්‍යාස කිරීමට අවශ්‍ය වනු ඇත.

  3. ස්ථාපනය කරන්න පද්ධතියේ හරය පමණි - පිරිවැය ආකෘතිය. මෙය සිදු කිරීම සඳහා, ඔබ පොකුරේ Prometheus ස්ථාපනය කර තිබිය යුතු අතර විචල්‍යයේ එහි ලිපිනයේ අනුරූප අගය සඳහන් කරන්න. prometheusEndpoint හෙල්ම් සඳහා. ඊට පසු - අයදුම් කරන්න YAML සැකසුම් කට්ටලය පොකුරේ.

    නැවතත්, ඔබට මූලික සත්‍යාපනය සමඟින් Ingress අතින් එකතු කිරීමට සිදුවේ. අවසාන වශයෙන්, ඔබට පිරිවැය-ආදර්ශ ප්‍රමිතික එකතු කිරීම සඳහා කොටසක් එක් කිරීමට අවශ්‍ය වනු ඇත extraScrapeConfigs Prometheus වින්‍යාසය තුළ:

    - 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 වෙබ් පැනලය අප සතුව ඇත.

මුළු පිරිවැය, ප්‍රධාන තිරයේ ප්‍රදර්ශනය කෙරේ, ඇත්ත වශයෙන්ම මාසය සඳහා සම්පත්වල ඇස්තමේන්තුගත පිරිවැය පෙන්වයි. මෙය ප්රක්ෂේපණය කර ඇත වර්තමාන සම්පත් පරිභෝජන මට්ටමේ පොකුර (මාසයකට) භාවිතා කිරීමේ පිරිවැය පිළිබිඹු කරන මිල.

වියදම් විශ්ලේෂණය කිරීම සහ ඒවා ප්‍රශස්ත කිරීම සඳහා මෙම මෙට්‍රික් වැඩි වේ. kubecost හි වියුක්ත ජූලි සඳහා මුළු පිරිවැය දෙස බැලීම එතරම් පහසු නොවේ: ඔබට සිදු වනු ඇත බිල්පත් වෙත යන්න. නමුත් ඔබට දින 1/2/7/30/90 සඳහා නාම අවකාශ, ලේබල්, කරල් මගින් වියදම් බිඳී ගොස් ඇති අතර, බිල්පත් ඔබට කිසිදා නොපෙන්වයි.

වලාකුළු තුළ Kubernetes මත මුදල් ඉතිරි කිරීම සඳහා Kubecost සමාලෝචනය

ගැන කතා කරනවා ලේබල්. ඔබ වහාම සැකසීම් වෙත ගොස් කාණ්ඩගත කිරීමේ පිරිවැය සඳහා අතිරේක කාණ්ඩ ලෙස භාවිතා කරන ලේබලවල නම් සැකසිය යුතුය:

වලාකුළු තුළ Kubernetes මත මුදල් ඉතිරි කිරීම සඳහා Kubecost සමාලෝචනය

ඔබට ඒවා මත ඕනෑම ලේබලයක් එල්ලා ගත හැකිය - ඔබට දැනටමත් ඔබේම ලේබල් කිරීමේ පද්ධතියක් තිබේ නම් පහසුය.

තවද එහිදී ඔබට පිරිවැය-ආකෘතිය සම්බන්ධ වන API අන්ත ලක්ෂ්‍යයේ ලිපිනය වෙනස් කළ හැකිය, GCP හි වට්ටම් ප්‍රමාණය සකස් කර ඒවා මැනීම සඳහා සම්පත් සහ මුදල් සඳහා ඔබේම මිල ගණන් නියම කළ හැකිය (යම් හේතුවක් නිසා විශේෂාංගය මුළු පිරිවැයට බලපාන්නේ නැත).

Kubecost විවිධ පෙන්විය හැක පොකුරේ ගැටළු (සහ අනතුරකදී පවා අවදියෙන් සිටින්න). අවාසනාවකට මෙන්, විකල්පය වින්‍යාසගත නොවේ, එබැවින් ඔබට සංවර්ධකයින් සඳහා පරිසරයක් තිබේ නම් සහ ඒවා භාවිතා කරන්නේ නම්, ඔබ නිරන්තරයෙන් මෙවැනි දෙයක් දකිනු ඇත:

වලාකුළු තුළ Kubernetes මත මුදල් ඉතිරි කිරීම සඳහා Kubecost සමාලෝචනය

වැදගත් මෙවලමක් - පොකුරු ඉතුරුම්. එය කරල්වල ක්‍රියාකාරිත්වය (ජාල ඇතුළුව සම්පත් පරිභෝජනය) මනිනු ලබන අතර ඔබට කොපමණ මුදලක් සහ ඔබට ඉතිරි කළ හැකි දේ ගණනය කරයි.

ප්‍රශස්තිකරණ ඉඟි තරමක් පැහැදිලි බව පෙනේ, නමුත් අත්දැකීම්වලින් පෙනී යන්නේ තවමත් බැලීමට යමක් ඇති බවයි. විශේෂයෙන්, කරල් වල ජාල ක්‍රියාකාරකම් නිරීක්ෂණය කරනු ලැබේ (Kubecost අක්‍රිය ඒවා කෙරෙහි අවධානය යොමු කිරීමට යෝජනා කරයි), ඉල්ලා සිටින සහ සත්‍ය මතකය සහ CPU පරිභෝජනය සංසන්දනය කරයි, මෙන්ම පොකුරු නෝඩ් භාවිතා කරන CPU (නෝඩ් කිහිපයක් එකකට කඩා වැටීම යෝජනා කරයි), තැටිය පැටවීම සහ තවත් පරාමිති දුසිම් කිහිපයක්.

ඕනෑම ප්‍රශස්තිකරණ ගැටළුවක් මෙන්ම, Kubecost දත්ත මත පදනම්ව සම්පත් ප්‍රශස්ත කිරීම අවශ්‍ය වේ: පරිස්සමෙන් සලකන්න. උදාහරණයක් ලෙස, Cluster Savings මඟින් නෝඩ් මකා දැමීමට යෝජනා කරයි, එය ආරක්ෂිත බව පවසමින්, නමුත් අනෙකුත් නෝඩ් වල නොමැති ඒවා මත යොදවා ඇති කරල්වල නෝඩ්-තෝරාගැනීම් සහ දූෂිතයන් තිබීම සැලකිල්ලට නොගනී. සහ පොදුවේ, ඔවුන්ගේ නිෂ්පාදනයේ කතුවරුන් පවා මෑත ලිපිය (මාර්ගය වන විට, ව්‍යාපෘතියේ මාතෘකාව ගැන උනන්දුවක් දක්වන අයට එය ඉතා ප්‍රයෝජනවත් විය හැකිය) පිරිවැය ප්‍රශස්තකරණයට ඉක්මන් නොවී, කල්පනාකාරීව ගැටලුව වෙත ප්‍රවේශ වීම රෙකමදාරු කරනු ලැබේ.

ප්රතිඵල

ව්‍යාපෘති කිහිපයක මාසයක් සඳහා kubecost භාවිතා කිරීමෙන් පසුව, එය Kubernetes පොකුරු සඳහා භාවිතා කරන ක්ලවුඩ් සපයන්නන්ගේ සේවාවන් සඳහා පිරිවැය විශ්ලේෂණය කිරීම සහ ප්‍රශස්ත කිරීම සඳහා සිත්ගන්නා (සහ ඉගෙන ගැනීමට සහ ස්ථාපනය කිරීමට පහසු) මෙවලමක් බව අපට නිගමනය කළ හැකිය. ගණනය කිරීම් ඉතා නිවැරදි බව පෙනේ: අපගේ අත්හදා බැලීම් වලදී ඒවා සපයන්නන්ට ඇත්ත වශයෙන්ම අවශ්‍ය දේ සමඟ සමපාත විය.

සමහර අවාසි ද ඇත: විවේචනාත්මක නොවන දෝෂ ඇත, සමහර ස්ථානවල ක්රියාකාරිත්වය සමහර ව්යාපෘති සඳහා විශේෂිත අවශ්යතා ආවරණය නොකරයි. කෙසේ වෙතත්, ක්ලවුඩ් සේවා සඳහා බිල්පත 5-30% කින් නිරන්තරයෙන් අඩු කිරීම සඳහා මුදල් යන්නේ කොතැනටද සහ “කපා දැමිය හැකි” දේ ඔබට ඉක්මනින් තේරුම් ගැනීමට අවශ්‍ය නම් (අපගේ නඩුවේදී මෙය සිදු වූයේ මෙයයි), මෙය හොඳ විකල්පයකි. .

ප්රාදේශීය සභා

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න