လက်ရှိတွင် ကုမ္ပဏီများသည် ၎င်းတို့၏ အခြေခံအဆောက်အအုံများကို ဟာ့ဒ်ဝဲဆာဗာများနှင့် ၎င်းတို့၏ကိုယ်ပိုင် virtual machines များမှ cloud သို့ လွှဲပြောင်းပေးနေကြသည်။ ဤဖြေရှင်းချက်သည် ရှင်းပြရန် လွယ်ကူသည်- ဟာ့ဒ်ဝဲအတွက် စိတ်ပူစရာ မလိုပါ၊ အစုအဝေးကို ပုံစံအမျိုးမျိုးဖြင့် အလွယ်တကူ ပြင်ဆင်သတ်မှတ်နိုင်သည်... အရေးကြီးဆုံးမှာ၊ ရှိပြီးသားနည်းပညာများ (Kubernetes ကဲ့သို့) ဝန်အားပေါ်မူတည်၍ ကွန်ပြူတာ ပါဝါကို ရိုးရှင်းစွာ တိုင်းတာနိုင်စေသည်။ .
ငွေရေးကြေးရေးကဏ္ဍသည် အမြဲတမ်း အရေးကြီးသည်။ ဤဆောင်းပါးတွင် ဆွေးနွေးထားသော ကိရိယာသည် Kubernetes ဖြင့် cloud အခြေခံအဆောက်အအုံကို အသုံးပြုသည့်အခါ ဘတ်ဂျက်များကို လျှော့ချရန် ဒီဇိုင်းထုတ်ထားသည်။
နိဒါန်း
ကျွန်ုပ်တို့တွင် အကျွမ်းတဝင်ရှိသော AWS နှင့် GCP cloud နှစ်ခုလုံးတွင် Kubernetes နှင့် ဖောက်သည်များရှိပြီး၊ Linux အသိုင်းအဝိုင်းအတွက် Azure - ယေဘုယျအားဖြင့် Kubecost မှပံ့ပိုးပေးသည့် ပလက်ဖောင်းအားလုံးတွင် ပို၍ရှားပါသည်။ ၎င်းတို့ထဲမှ အချို့အတွက်၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့ကိုယ်တိုင် ( Kubecost မှအသုံးပြုသည့်နည်းလမ်းကို အသုံးပြု၍) အတွင်းပိုင်းဝန်ဆောင်မှုများ၏ ကုန်ကျစရိတ်များကို တွက်ချက်ပြီး အခြေခံအဆောက်အဦကုန်ကျစရိတ်များကို စောင့်ကြည့်ပြီး ၎င်းတို့ကို အကောင်းဆုံးဖြစ်အောင် ကြိုးစားပါ။ ထို့ကြောင့်၊ ထိုသို့သောအလုပ်များကို အလိုအလျောက်လုပ်ဆောင်နိုင်ခြေကို ကျွန်ုပ်တို့ စိတ်ဝင်စားခဲ့သည်မှာ ယုတ္တိတန်ပါသည်။
ပင်မ Kubecost module ၏အရင်းအမြစ်ကုဒ်သည် Open Source လိုင်စင် (Apache License 2.0) ၏ သတ်မှတ်ချက်များအောက်တွင် ဖွင့်ထားသည်။ ၎င်းကို လွတ်လပ်စွာအသုံးပြုနိုင်ပြီး ရရှိနိုင်သောအင်္ဂါရပ်များသည် အသေးစားပရောဂျက်များအတွက် လုံလောက်သင့်သည်။ သို့သော်လည်း လုပ်ငန်းသည် စီးပွားရေးဖြစ်သည်၊ ကျန်ထုတ်ကုန်များကို ပိတ်ထားပြီး ၎င်းကို အသုံးပြုနိုင်သည်။
အားလုံးဘယ်လိုအလုပ်လုပ်လဲ။
ထို့ကြောင့် Kubecost ၏အဓိကအစိတ်အပိုင်းမှာ application ဖြစ်သည်။
ယေဘုယျအားဖြင့် ပြောရလျှင် ကုန်ကျစရိတ်-မော်ဒယ်တွင် ဇယားကွက်ပုံစံတွင် ကုန်ကျစရိတ်များနှင့် အသေးစိတ်အချက်အလက်များကို ပြသသည့် ဂရပ်ဖစ်များနှင့် ကုန်ကျစရိတ်များကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန် အကြံပြုချက်များကို ပြသသည့် ၎င်း၏ကိုယ်ပိုင်ဝဘ်အင်တာဖေ့စ်ရှိသည်။ Grafana တွင်ပြသထားသည့် ဒက်ရှ်ဘုတ်များသည် Kubecost ၏ အစောပိုင်းအဆင့်ဖြစ်ပြီး ကုန်ကျစရိတ်-မော်ဒယ်နှင့်တူသည့်ဒေတာများစွာပါဝင်ပြီး အစုအဝေးအတွင်းရှိ CPU/memory/network/disk space နှင့် ၎င်း၏အစိတ်အပိုင်းများအသုံးပြုမှုဆိုင်ရာ ပုံမှန်စာရင်းအင်းများဖြင့် ၎င်းတို့အား ဖြည့်စွက်ပေးပါသည်။ .
Kubecost ဘယ်လိုအလုပ်လုပ်သလဲ။
- ကုန်ကျစရိတ်-မော်ဒယ်သည် cloud ဝန်ဆောင်မှုပေးသူများ၏ API မှတစ်ဆင့် ဝန်ဆောင်မှုများအတွက် စျေးနှုန်းများကို လက်ခံရရှိပါသည်။
- ထို့အပြင်၊ node ၏သံအမျိုးအစားနှင့်ဒေသအပေါ်မူတည်၍ node တစ်ခုအတွက်ကုန်ကျစရိတ်ကိုတွက်ချက်သည်။
- လည်ပတ်နေသော node များ၏ကုန်ကျစရိတ်အပေါ်အခြေခံ၍ အရွက် pod တစ်ခုစီသည် CPU သုံးစွဲမှုတစ်နာရီလျှင် ကုန်ကျစရိတ်၊ မမ်မိုရီဂစ်ဂါဘိုက်တစ်ခုနှင့် သိမ်းဆည်းထားသည့်ဒေတာ၏ တစ်နာရီလျှင် ဂစ်ဂါဘိုက်တစ်ခုစီတို့ဖြစ်သည် - ၎င်းတွင်အသုံးပြုနေသော node သို့မဟုတ် သိုလှောင်မှုအတန်းအစားပေါ်မူတည်၍ ကုန်ကျစရိတ်ရရှိမည်ဖြစ်သည်။
- တစ်ဦးချင်းစီ pods များ၏လည်ပတ်မှုကုန်ကျစရိတ်အပေါ်အခြေခံ၍ namespaces၊ ဝန်ဆောင်မှုများ၊ အသုံးချမှုများ၊ StatefulSets အတွက်ငွေပေးချေမှုကိုတွက်ချက်သည်။
- ကိန်းဂဏန်းများကို kube-state-metrics နှင့် node-exporter တို့မှ ပံ့ပိုးပေးသော မက်ထရစ်များကို အသုံးပြု၍ ကိန်းဂဏန်းများကို တွက်ချက်ပါသည်။
Kubecost ကို ထည့်သွင်းစဉ်းစားရန် အရေးကြီးပါသည်။ မူရင်းအားဖြင့် Kubernetes တွင် ရရှိနိုင်သောအရင်းအမြစ်များကိုသာ ရေတွက်သည်။. ပြင်ပဒေတာဘေ့စ်များ၊ GitLab ဆာဗာများ၊ S3 သိုလှောင်မှုများနှင့် အစုအဝေးတွင်မရှိသော အခြားဝန်ဆောင်မှုများ (တစ်ခုတည်းသော cloud တွင်တည်ရှိနေသော်လည်း) ၎င်းကို မမြင်နိုင်ပါ။ GCP နှင့် AWS အတွက်သော်လည်းကောင်း သင့်ဝန်ဆောင်မှုအကောင့်များ၏သော့များကို ပေါင်းထည့်နိုင်ပြီး အရာအားလုံးကို အတူတူတွက်ချက်နိုင်ပါသည်။
ustanovka
Kubecost လိုအပ်သည်-
- Kubernetes ဗားရှင်း 1.8 နှင့် အထက်၊
- kube-ပြည်နယ်-မက်ထရစ်များ;
- Prometheus;
- node-exporter ။
ကျွန်ုပ်တို့၏အစုအဝေးများတွင် ဤအခြေအနေများအားလုံးကို ကြိုတင်ဖြည့်ဆည်းထားနိုင်သောကြောင့် Prometheus သို့ဝင်ရောက်ရန်အတွက် မှန်ကန်သောအဆုံးအချက်ကို သတ်မှတ်ရုံမျှဖြင့် လုံလောက်ပြီဖြစ်သည်။ သို့သော်၊ တရားဝင် kubecost Helm ဇယားတွင် ဗလာအစုအဝေးတစ်ခုပေါ်တွင် သင်လုပ်ဆောင်ရန် လိုအပ်သည့်အရာအားလုံးပါရှိသည်။
Kubecost ကို ထည့်သွင်းရန် နည်းလမ်းများစွာ ရှိပါသည်။
- ပုံတွင်ဖော်ပြထားသော Standard installation method
ညွှန်ကြားချက် ဆော့ဖ်ဝဲရေးသားသူ၏ ဝဘ်ဆိုက်ပေါ်တွင် လိုအပ်သည်။ ကုန်ကျစရိတ်-ခွဲခြမ်းစိတ်ဖြာသူ သိုလှောင်မှုကို Helm တွင် ပေါင်းထည့်ကာ ဇယားကို ထည့်သွင်းပါ။. ကျန်ရှိနေသေးသည်မှာ သင့် port ကို ထပ်ဆင့်ပို့ရန်နှင့် ဆက်တင်များကို အလိုရှိသော အခြေအနေသို့ ကိုယ်တိုင် ( kubectl မှတဆင့်) နှင့်/သို့မဟုတ် cost-model ဝဘ်အင်တာဖေ့စ်ကို အသုံးပြု၍ ချိန်ညှိရန်ဖြစ်သည်။Third-party အဆင်သင့်လုပ်ထားသော configurations များကိုအသုံးမပြုသောကြောင့် ဤနည်းလမ်းကိုကျွန်ုပ်တို့မစမ်းကြည့်ရသေးပါ၊ သို့သော်၎င်းသည် "ကိုယ့်အတွက်ပဲစမ်းကြည့်ပါ" ရွေးချယ်မှုကောင်းတစ်ခုလိုပုံရသည်။ သင့်တွင် စနစ်အစိတ်အပိုင်းအချို့ကို တပ်ဆင်ထားပြီးဖြစ်သည် သို့မဟုတ် သင်ပိုမို ကောင်းမွန်စွာချိန်ညှိလိုပါက၊ ဒုတိယလမ်းကြောင်းကို ထည့်သွင်းစဉ်းစားခြင်းက ပိုကောင်းပါသည်။
- မရှိမဖြစ်သုံးပါ။
တူညီသောဇယား ဒါပေမယ့် သင်ကိုယ်တိုင် configure လုပ်ပြီး install လုပ်ပါ။ မည်သည့်နည်းဖြင့်မဆို အဆင်ပြေသည်။ဖော်ပြထားပြီးဖြစ်သည့်အတိုင်း၊ kubecost ကိုယ်တိုင်အပြင်၊ ဤဇယားတွင် ဆန္ဒရှိသည့်အတိုင်း စိတ်ကြိုက်ပြင်ဆင်နိုင်သည့် Grafana နှင့် Prometheus ဇယားများပါရှိသည်။
ဇယားတွင် ရနိုင်သည်။
values.yaml
ကုန်ကျစရိတ်-ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက် သင့်ကို configure လုပ်ခွင့်ပြုသည်-- အသုံးပြုရန် လိုအပ်သော ကုန်ကျစရိတ်-ခွဲခြမ်းစိတ်ဖြာမှု အစိတ်အပိုင်းများစာရင်း၊
- Prometheus အတွက် သင်၏ အဆုံးမှတ် (သင့်တွင် တစ်ခုရှိနေပြီ ဆိုလျှင်)။
- ကုန်ကျစရိတ်-မော်ဒယ်နှင့် Grafana အတွက် ဒိုမိန်းများနှင့် အခြားအဝင်ဆက်တင်များ၊
- pods အတွက်မှတ်ချက်များ;
- အမြဲတမ်းသိုလှောင်မှုနှင့်၎င်း၏အရွယ်အစားကိုအသုံးပြုရန်လိုအပ်သည်။
ဖော်ပြချက်များပါရှိသော ရရှိနိုင်သော ဖွဲ့စည်းမှုပုံစံရွေးချယ်စရာများစာရင်းအပြည့်အစုံကို တွင်ရနိုင်သည်။
စာရွက်စာတမ်း .၎င်း၏အခြေခံဗားရှင်းရှိ kubecost သည် ဝင်ရောက်ခွင့်ကို ကန့်သတ်မထားသောကြောင့်၊ သင်သည် ဝဘ်အကန့်အတွက် အခြေခံ-auth ကို ချက်ချင်းသတ်မှတ်ရန် လိုအပ်မည်ဖြစ်သည်။
- ထည့်သွင်းပါ system core သာဖြစ်သည်။ - မော်ဒယ် - ကုန်ကျစရိတ်။ ဒါကိုလုပ်ဖို့၊ သင်က Prometheus ကို အစုအဝေးမှာ ထည့်သွင်းပြီး variable မှာ သူ့ရဲ့ လိပ်စာရဲ့ သက်ဆိုင်တဲ့တန်ဖိုးကို သတ်မှတ်ပါ။
prometheusEndpoint
Helm အတွက်။ ထို့နောက် - လျှောက်ထားပါ။YAML configurations အစုံ အစုအဝေးတွင်။တစ်ဖန်၊ သင်သည် အခြေခံ-auth ဖြင့် Ingress ကို ကိုယ်တိုင်ထည့်သွင်းရပါမည်။ နောက်ဆုံးတွင်၊ ကုန်ကျစရိတ်-မော်ဒယ်မက်ထရစ်များ စုဆောင်းခြင်းအတွက် ကဏ္ဍတစ်ခုကို ထည့်သွင်းရန် လိုအပ်မည်ဖြစ်သည်။
extraScrapeConfigs
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
ငါတို့ဘာရလဲ။
အပြည့်အ၀တပ်ဆင်ခြင်းဖြင့်၊ ကျွန်ုပ်တို့တွင် ဒက်ရှ်ဘုတ်များအစုံပါသော kubecost နှင့် Grafana ဝဘ်အကန့်ကို ကျွန်ုပ်တို့တွင်ရှိသည်။
စုစုပေါင်းကုန်ကျစရိတ်ပင်မစခရင်တွင်ပြသထားသော၊ အမှန်တကယ်လအတွက် ခန့်မှန်းခြေအရင်းအမြစ်ကုန်ကျစရိတ်ကို ပြသည်။ ဒီ ခန့်မှန်းထားသည်။ လက်ရှိအရင်းအမြစ်သုံးစွဲမှုအဆင့်တွင် အစုအဖွဲ့ (တစ်လလျှင်) အသုံးပြုမှုကုန်ကျစရိတ်ကို ရောင်ပြန်ဟပ်သည့်စျေးနှုန်း။
ဤမက်ထရစ်သည် ကုန်ကျစရိတ်များကို ခွဲခြမ်းစိတ်ဖြာပြီး ၎င်းတို့ကို အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ရန်အတွက် ပိုမိုများပြားသည်။ kubecost ဖြင့် abstract ဇူလိုင်လအတွက် စုစုပေါင်းကုန်ကျစရိတ်ကို ကြည့်ရန် အလွန်အဆင်ပြေမည်မဟုတ်ပါ- သင်လုပ်ရပါမည်။ ငွေတောင်းခံလွှာသို့သွားပါ။. သို့သော် 1/2/7/30/90 ရက်များအတွက် အမည်နေရာများ၊ အညွှန်းများ၊ pods များဖြင့် ခွဲခြမ်းထားသော ကုန်ကျစရိတ်များကို သင်တွေ့မြင်နိုင်သည်၊ မည်သည့်ငွေပေးချေမှုမှ သင့်အား ပြသမည်မဟုတ်ပါ။
ဟောပြောခြင်း။ တံဆိပ်များ. သင်ချက်ချင်းဆက်တင်များသို့သွားကာ အုပ်စုလိုက်ကုန်ကျစရိတ်အတွက် အပိုအမျိုးအစားများအဖြစ် အသုံးပြုမည့် အညွှန်းများ၏အမည်များကို သတ်မှတ်သင့်သည်-
၎င်းတို့တွင် မည်သည့်တံဆိပ်များကိုမဆို သင်ဆွဲထားနိုင်သည် - သင့်တွင် ကိုယ်ပိုင်တံဆိပ်ကပ်ခြင်းစနစ်ရှိပြီးသားဆိုလျှင် အဆင်ပြေပါသည်။
ထိုနေရာတွင် ကုန်ကျစရိတ်-မော်ဒယ်ချိတ်ဆက်သည့် API အဆုံးမှတ်၏လိပ်စာကို ပြောင်းလဲနိုင်သည်၊ GCP တွင် လျှော့စျေးအရွယ်အစားကို ချိန်ညှိကာ ၎င်းတို့၏တိုင်းတာမှုအတွက် အရင်းအမြစ်များနှင့် ငွေကြေးအတွက် သင့်ကိုယ်ပိုင်စျေးနှုန်းများကို သတ်မှတ်နိုင်သည် (အကြောင်းတစ်ခုခုကြောင့် လုပ်ဆောင်ချက်သည် စုစုပေါင်းကုန်ကျစရိတ်ကို မထိခိုက်စေပါ)။
Kubecost သည် အမျိုးမျိုးကို ပြသနိုင်သည်။ အစုအဖွဲ့အတွင်း ပြဿနာများ (အန္တရာယ်ဖြစ်လျှင်ပင် သတိ)။ ကံမကောင်းစွာပဲ၊ ရွေးချယ်ခွင့်ကို သတ်မှတ်၍မရသောကြောင့် သင့်တွင် developer များအတွက် ပတ်ဝန်းကျင်များရှိပြီး ၎င်းတို့ကို အသုံးပြုပါက၊ ဤကဲ့သို့သော အရာများကို အဆက်မပြတ် မြင်တွေ့ရလိမ့်မည်-
အရေးကြီးသောကိရိယာတစ်ခု - အစုလိုက်ချွေတာခြင်း။. ၎င်းသည် pods များ၏ လုပ်ဆောင်မှုကို တိုင်းတာခြင်း (ကွန်ရက်အရင်းအမြစ်များ အပါအဝင် အရင်းအမြစ်သုံးစွဲမှု) ကို တိုင်းတာပြီး ငွေမည်မျှနှင့် သင် ချွေတာနိုင်သည်ကိုလည်း တွက်ချက်ပါသည်။
ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းဆိုင်ရာ အကြံပြုချက်များသည် သိသိသာသာ ထင်ထင်ရှားရှားဖြစ်နိုင်သော်လည်း အတွေ့အကြုံအရ ကြည့်စရာတစ်ခုရှိနေသေးကြောင်း အကြံပြုထားသည်။ အထူးသဖြင့်၊ pods များ၏ ကွန်ရက်လုပ်ဆောင်ချက်ကို စောင့်ကြည့်စစ်ဆေးသည် (Kubecost သည် မလှုပ်မရှားသူများကို အာရုံစိုက်ရန် အကြံပြုထားသည်)၊ တောင်းဆိုထားသော၊ အမှန်တကယ် memory နှင့် CPU သုံးစွဲမှုကို နှိုင်းယှဉ်ကာ၊ cluster node များမှအသုံးပြုသည့် CPU ကို နှိုင်းယှဉ်သည် (node အများအပြားကို တစ်ခုတည်းသို့ ပြိုကျစေရန် အကြံပြုသည်) disk load နှင့် နောက်ထပ် parameters နှစ်ဒါဇင်။
ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းပြဿနာကဲ့သို့ပင်၊ Kubecost ဒေတာအပေါ်အခြေခံ၍ အရင်းအမြစ်များကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန် လိုအပ်သည်- သတိဖြင့်ကုသပါ။. ဥပမာအားဖြင့်၊ Cluster Savings သည် လုံခြုံသည်ဟုဆိုကာ ကုဒ်များကိုဖျက်ရန် အကြံပြုသည်၊ သို့သော် အခြား node များတွင်မရရှိနိုင်သော ၎င်းတို့တွင်အသုံးပြုထားသော pods များရှိ node-selectors များနှင့် taints များကို ထည့်သွင်းစဉ်းစားခြင်းမရှိပါ။ ယေဘူယျအားဖြင့် ကုန်ပစ္စည်းကို ရေးသားသူများပင်လျှင် ၎င်းတို့အတွက် ဖြစ်သည်။
ရလဒ်များကို
ပရောဂျက်နှစ်ခုတွင် Kubecost ကို တစ်လကြာအသုံးပြုပြီးနောက် Kubernetes အစုအဝေးများအတွက် အသုံးပြုသည့် cloud ဝန်ဆောင်မှုပေးသူများ၏ ကုန်ကျစရိတ်များကို ခွဲခြမ်းစိတ်ဖြာပြီး ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန် စိတ်ဝင်စားဖွယ် (လေ့လာရန်နှင့် တပ်ဆင်ရန်လည်း လွယ်ကူသည်) ကိရိယာတစ်ခုဖြစ်ကြောင်း ကျွန်ုပ်တို့ ကောက်ချက်ချနိုင်ပါသည်။ တွက်ချက်မှုများသည် အလွန်တိကျသည်- ကျွန်ုပ်တို့၏စမ်းသပ်မှုများတွင် ပံ့ပိုးပေးသူများ အမှန်တကယ်လိုအပ်သည့်အရာနှင့် တိုက်ဆိုင်ပါသည်။
အားနည်းချက်အချို့လည်းရှိပါသည်- အရေးကြီးသောမဟုတ်သော ချို့ယွင်းချက်များရှိနေသည်၊ အချို့သောနေရာများတွင် လုပ်ဆောင်နိုင်စွမ်းသည် အချို့သောပရောဂျက်များအတွက် သီးသန့်လိုအပ်ချက်များကို ဖုံးကွယ်မထားပေ။ သို့သော်၊ ငွေဘယ်သွားသည်ကို မြန်မြန်နားလည်ရန် လိုအပ်ပါက cloud ဝန်ဆောင်မှုများအတွက် ငွေတောင်းခံလွှာကို 5-30% ဖြင့် တဆက်တည်း လျှော့ချနိုင်ရန် (ကျွန်ုပ်တို့၏ကိစ္စတွင် ဖြစ်ခဲ့သည်)၊ .
PS
ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ
- «
Kubernetes တွင် အော်တိုစကေးချဲ့ခြင်းနှင့် အရင်းအမြစ်စီမံခန့်ခွဲမှု (ပြန်လည်သုံးသပ်ခြင်းနှင့် ဗီဒီယိုအစီရင်ခံစာ) "; - «
Kubernetes စွန့်စားခန်း Dailymotion- တိမ်တိုက်များအတွင်း အခြေခံအဆောက်အဦများ ဖန်တီးခြင်း + ပရိဝုဏ်အတွင်း "; - «
Kubernetes အကြံပြုချက်များနှင့် လှည့်ကွက်များ- node ခွဲဝေမှုနှင့် ဝဘ်အပလီကေးရှင်းများ ဖွင့်ခြင်းအကြောင်း "။
source: www.habr.com