ʻO ka loiloi Kubecost no ka mālama kālā ma nā Kubernetes ma nā ao

ʻO ka loiloi Kubecost no ka mālama kālā ma nā Kubernetes ma nā ao

I kēia manawa, ʻoi aku ka nui o nā ʻoihana e hoʻoneʻe i kā lākou ʻoihana mai nā kikowaena hardware a me kā lākou mau mīkini virtual i ke ao. He mea maʻalahi kēia hoʻonā e wehewehe: ʻaʻohe pono e hopohopo e pili ana i ka lako, hoʻonohonoho maʻalahi ka cluster ma nā ʻano like ʻole ... a ʻo ka mea nui loa, ʻo nā ʻenehana i loaʻa (e like me Kubernetes) hiki ke hiki ke hoʻonui i ka mana computing ma muli o ka ukana. .

He mea nui ka ʻaoʻao kālā. Hoʻolālā ʻia ka hāmeʻa i kūkākūkā ʻia ma kēia ʻatikala e kōkua i ka hōʻemi ʻana i nā kālā ke hoʻohana nei i nā ʻōnaehana kapuaʻi me Kubernetes.

Hōʻike

Kubecost He hoʻomaka ʻo Kaleponi mai Google, e hana ana i kahi hopena no ka helu ʻana i nā kumukūʻai ʻoihana i nā lawelawe kapuaʻi (i loko o kahi pūʻulu Kubernetes + nā kumuwaiwai like), e ʻimi ana i nā bottlenecks i nā hoʻonohonoho cluster a me ka hoʻouna ʻana i nā leka kūpono iā Slack.

Loaʻa iā mākou nā mea kūʻai aku me nā Kubernetes ma nā ao AWS a me GCP, a, ʻoi aku ka paʻakikī no ke kaiāulu Linux, ʻo Azure - ma ka laulā, ma nā kahua āpau i kākoʻo ʻia e Kubecost. No kekahi o lākou, helu mākou i nā kumukūʻai o nā lawelawe intra-cluster iā mākou iho (me ka hoʻohana ʻana i kahi ala e like me ka mea i hoʻohana ʻia e Kubecost), a nānā pū kekahi i nā kumukūʻai ʻoihana a hoʻāʻo e hoʻomaikaʻi iā lākou. No laila, kūpono ko mākou makemake i ka hiki ke hoʻomaʻamaʻa i ia mau hana.

Ua wehe ʻia ke kumu kumu o ka module Kubecost nui ma lalo o nā huaʻōlelo o ka laikini Open Source (Apache License 2.0). Hiki ke hoʻohana manuahi a lawa nā hiʻohiʻona i loaʻa no nā papahana liʻiliʻi. Eia naʻe, ʻoihana ʻoihana: ua pani ʻia ke koena o ka huahana, hiki ke hoʻohana ʻia e nā kau inoa i uku ʻia, ʻo ia hoʻi ke kākoʻo pāʻoihana. Eia kekahi, hāʻawi nā mea kākau i kahi laikini manuahi no nā puʻupuʻu liʻiliʻi (1 cluster me 10 nodes - i ka wā o ke kākau ʻana o kēia ʻatikala, ua hoʻonui ʻia kēia palena i 20 nodes) a i ʻole kahi manawa hoʻokolokolo me nā mana piha no 1 mahina.

Pehea e hana ai nā mea a pau

No laila, ʻo ka ʻāpana nui o Kubecost ka noi kumu kūʻai, kākau ʻia ma Go. Ua kapa ʻia kahi pakuhi Helm e wehewehe ana i ka ʻōnaehana holoʻokoʻa kumu-heluhelu a ma kāna kumu he hui mai kahi kumu kūʻai me Prometheus, Grafana a me kekahi mau dashboards.

Ma ka ʻōlelo maʻamau, loaʻa i ke kumu hoʻohālike kumu kūʻai kāna kikowaena pūnaewele ponoʻī, e hōʻike ana i nā kiʻi a me nā ʻikepili kikoʻī e pili ana i nā kumukūʻai ma ke ʻano tabular, a me nā ʻōlelo aʻoaʻo no ka hoʻonui ʻana i nā kumukūʻai. ʻO nā dashboards i hōʻike ʻia ma Grafana he pae mua ia o ka hoʻomohala ʻana o Kubecost a loaʻa i nā ʻikepili like me ke kumu kumu kūʻai, hoʻohui iā lākou me nā helu maʻamau e pili ana i ka hoʻohana ʻana i ka CPU/memo/network/disk space i loko o ka pūpū a me kāna mau mea. .

Pehea ka hana ʻana o Kubecost?

  • Loaʻa nā kumu kūʻai kumu kūʻai no nā lawelawe ma o ka API o nā mea hāʻawi kapua.
  • Eia hou, ma muli o ke ʻano hao o ka node a me ka ʻāina, ua helu ʻia ke kumukūʻai no ka node.
  • Ma muli o ke kumukūʻai o ka holo ʻana o nā nodes, loaʻa i kēlā me kēia lau pod ke kumu kūʻai i kēlā me kēia hola o ka hoʻohana ʻana i ka CPU, no kēlā me kēia gigabyte o ka hoʻomanaʻo i hoʻopau ʻia, a i kēlā me kēia hola i kēlā me kēia gigabyte o ka ʻikepili i mālama ʻia - ma muli o ka node e holo ana a i ka papa o ka waiho ʻana.
  • Ma muli o ke kumukūʻai o ka hana ʻana i nā pods pākahi, helu ʻia ka uku no nā inoa inoa, nā lawelawe, Deployments, StatefulSets.
  • Ua helu ʻia nā ʻikepili me ka hoʻohana ʻana i nā metric i hāʻawi ʻia e kube-state-metrics a me ka node-exporter.

He mea nui e noʻonoʻo i kēlā Kubecost ma ka paʻamau, helu wale i nā kumuwaiwai i loaʻa ma Kubernetes. ʻAʻole ʻike ʻia e ia nā ʻikepili waho, nā kikowaena GitLab, nā waihona S3 a me nā lawelawe ʻē aʻe ʻaʻole i loko o ka pūʻulu (ʻoiai inā aia ma ke ao like). ʻOiai no GCP a me AWS hiki iā ʻoe ke hoʻohui i nā kī o kāu moʻokāki lawelawe a helu pū i nā mea āpau.

Kāu Mau Koho Paʻamau

Pono ʻo Kubecost:

  • Kubernetes version 1.8 a kiʻekiʻe;
  • kube-state-metrics;
  • Prometheus;
  • node-exporter.

I loko o kā mākou mau pūʻulu ua hoʻokō ʻia kēia mau kūlana āpau ma mua, no laila ua ʻike ʻia ua lawa ka wehewehe ʻana i ka hopena kūpono no ke komo ʻana iā Prometheus. Eia naʻe, aia ka palapala kubecost Helm kūhelu i nā mea a pau e pono ai ʻoe e holo ma luna o kahi puʻupuʻu.

Nui nā ala e hoʻokomo iā Kubecost:

  1. ʻO ke ʻano hoʻonohonoho maʻamau i wehewehe ʻia ma nā kuhikuhi ma ka punaewele o ka mea haku polokalamu e hoʻohui i ka waihona kumu-analyzer iā Helm, a laila e hoʻokomo i ka pakuhi. ʻO nā mea a pau i koe, ʻo ka hoʻouna ʻana i kāu awa a hoʻoponopono i nā hoʻonohonoho i ke kūlana i makemake ʻia me ka lima (ma o kubectl) a/a i ʻole ka hoʻohana ʻana i ke kikowaena pūnaewele kumu kūʻai.

    ʻAʻole mākou i hoʻāʻo i kēia ʻano, no ka mea, ʻaʻole mākou e hoʻohana i nā hoʻonohonoho i hoʻomākaukau ʻia e nā ʻaoʻao ʻekolu, akā ʻike ʻia he koho "hoʻāʻo wale iā ʻoe iho". Inā loaʻa iā ʻoe kekahi o nā ʻāpana ʻōnaehana i hoʻokomo ʻia a makemake paha ʻoe i ka hoʻoponopono maikaʻi ʻana, ʻoi aku ka maikaʻi e noʻonoʻo i ke ala ʻelua.

  2. E hoʻohana pono ka pakuhi like, akā hoʻonohonoho a hoʻokomo iā ʻoe iho ma kekahi ala kūpono.

    E like me ka mea i haʻi mua ʻia, ma kahi o ka kubecost ponoʻī, aia kēia pakuhi i nā palapala Grafana a me Prometheus, hiki ke hana ʻia e like me ka makemake.

    Loaʻa ma ka pakuhi values.yaml no ka mea hōʻike kumukūʻai hiki iā ʻoe ke hoʻonohonoho:

    • he papa inoa o nā mea hōʻike kumu kūʻai e pono e kau ʻia;
    • kou hopena no Prometheus (inā loaʻa iā ʻoe kekahi);
    • nā kāʻei kapu a me nā hoʻonohonoho komo ʻē aʻe no ke kumu kumu kūʻai a me Grafana;
    • nā hōʻike no nā pods;
    • ka pono e hoʻohana i ka waiho mau a me kona nui.

    Aia kahi papa inoa piha o nā koho hoʻonohonoho i loaʻa me nā wehewehe palapala.

    No ka mea ʻaʻole hiki i ka kubecost i kāna mana kumu ke kaohi i ke komo ʻana, pono ʻoe e hoʻonohonoho koke i ka kumu-auth no ka papa pūnaewele.

  3. Hoʻohui ʻo ke kumu ʻōnaehana wale nō - kumu kūʻai. No ka hana ʻana i kēia, pono ʻoe e hoʻokomo iā Prometheus i loko o ka pūʻulu a kuhikuhi i ka waiwai kūpono o kāna helu wahi ma ka ʻano. prometheusEndpoint no Helm. Ma hope o kēlā - e noi hoʻonohonoho o nā hoʻonohonoho YAML i loko o ka pūpū.

    Eia hou, pono ʻoe e hoʻohui lima iā Ingress me ka kumu-auth. ʻO ka hope, pono ʻoe e hoʻohui i kahi ʻāpana no ka hōʻiliʻili ʻana i nā metric kumu kūʻai extraScrapeConfigs i ka 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

He aha kā mākou e loaʻa ai?

Me ka hoʻokomo piha ʻana, loaʻa iā mākou ka kubecost a me Grafana pūnaewele panel me kahi hoʻonohonoho o nā dashboards.

Ka nui o nā uku, hōʻike ʻia ma ka pale nui, hōʻike maoli i ke kumukūʻai i manaʻo ʻia no ka mahina. ʻO kēia kuhi ʻia ke kumu kūʻai e hōʻike ana i ke kumukūʻai o ka hoʻohana ʻana i ka pūʻulu (i kēlā me kēia mahina) ma ke kiʻekiʻe o ka hoʻohana waiwai.

ʻOi aku kēia metric no ka nānā ʻana i nā lilo a me ka hoʻonui ʻana iā lākou. ʻAʻole maʻalahi ka nānā ʻana i nā kumukūʻai holoʻokoʻa o Iulai i kubecost: pono ʻoe hele i ka bila. Akā hiki iā ʻoe ke ʻike i nā kumukūʻai i wāwahi ʻia e nā inoa inoa, nā lepili, nā pods no 1/2/7/30/90 mau lā, ʻaʻole e hōʻike ʻia ka bila.

ʻO ka loiloi Kubecost no ka mālama kālā ma nā Kubernetes ma nā ao

Ma ka olelo ana nā lepili. Pono ʻoe e hele koke i nā hoʻonohonoho a hoʻonohonoho i nā inoa o nā lepili e hoʻohana ʻia ma ke ʻano he mau ʻāpana hou no ka hui pū ʻana:

ʻO ka loiloi Kubecost no ka mālama kālā ma nā Kubernetes ma nā ao

Hiki iā ʻoe ke kau i nā lepili ma luna o lākou - kūpono inā loaʻa iā ʻoe kāu ʻōnaehana lepili ponoʻī.

Ma laila nō hoʻi e hiki ai iā ʻoe ke hoʻololi i ka helu wahi o ka API endpoint kahi e hoʻopili ai ke kumu hoʻohālike, hoʻoponopono i ka nui hoʻemi ma GCP a hoʻonohonoho i kāu mau kumukūʻai ponoʻī no nā kumuwaiwai a me ke kālā no kā lākou ana (no kekahi kumu ʻaʻole pili ka hiʻohiʻona i ka huina kālā).

Hiki iā Kubecost ke hōʻike i nā ʻano like ʻole pilikia i loko o ka pūpū (a me ka makaala no ka pilikia). ʻO ka mea pōʻino, ʻaʻole hiki ke hoʻonohonoho ʻia ke koho, a no laila, inā loaʻa iā ʻoe nā kaiapuni no nā mea hoʻomohala a hoʻohana iā lākou, e ʻike mau ʻoe i kahi mea e like me kēia:

ʻO ka loiloi Kubecost no ka mālama kālā ma nā Kubernetes ma nā ao

He mea hana nui - Huina Hoahu. ʻIke ʻia ka hana o nā pods (ka hoʻohana ʻana i nā kumuwaiwai, me nā pūnaewele pūnaewele), a helu pū i ka nui o ke kālā a me nā mea āu e mālama ai.

Me he mea lā ua maopopo loa nā ʻōlelo aʻoaʻo noʻonoʻo, akā hōʻike ka ʻike aia kekahi mea e nānā ai. Ma ke ʻano, nānā ʻia ka hana ʻoihana o nā pods (ʻōlelo ʻo Kubecost i ka nānā ʻana i nā mea hana ʻole), hoʻohālikelike ʻia ka hoʻomanaʻo a me ka hoʻomanaʻo maoli a me ka hoʻohana ʻana i ka CPU, a me ka CPU i hoʻohana ʻia e nā nodes cluster (manaʻo e hāʻule i kekahi mau nodes i hoʻokahi), disk. load a me kekahi mau kakini hou aku.

E like me kekahi pilikia hoʻoponopono, pono ka hoʻonui ʻana i nā kumuwaiwai e pili ana i ka ʻikepili Kubecost: e malama me ka akahele. No ka laʻana, hōʻike ʻo Cluster Savings i ka holoi ʻana i nā nodes, me ka ʻōlelo ʻana he palekana ia, akā ʻaʻole ia e noʻonoʻo i ka hiki ʻana mai o nā mea koho node a me nā hue i loko o nā pods i kau ʻia ma luna o lākou i loaʻa ʻole ma nā nodes ʻē aʻe. A ma ka laulā, ʻo nā mea kākau o ka huahana i kā lākou ʻatikala hou (ma ke ala, hiki ke lilo i mea maikaʻi loa no ka poʻe hoihoi i ke kumuhana o ka papahana) ʻaʻole ia e holo wikiwiki i ka loiloi kumu kūʻai, akā e hoʻokokoke i ka pilikia me ka noʻonoʻo.

Nā hopena

Ma hope o ka hoʻohana ʻana i ka kubecost no hoʻokahi mahina ma nā papahana ʻelua, hiki iā mākou ke hoʻoholo he mea hoihoi (a maʻalahi hoʻi e aʻo a hoʻokomo) no ka nānā ʻana a me ka hoʻonui ʻana i nā kumukūʻai no nā lawelawe o nā mea hāʻawi kapua i hoʻohana ʻia no nā pūʻulu Kubernetes. Ua pololei loa nā helu ʻana: i kā mākou mau hoʻokolohua, ua hui pū lākou me ka mea e pono ai nā mea hoʻolako.

Aia kekahi mau hemahema: aia nā pahu koʻikoʻi ʻole, a ma kekahi mau wahi ʻaʻole i uhi ka hana i nā pono kikoʻī o kekahi mau papahana. Eia naʻe, inā pono ʻoe e hoʻomaopopo koke i kahi e hele ai ke kālā a me ka mea hiki ke "ʻoki" i mea e hōʻemi mau ai i ka bila no nā lawelawe kapuaʻi e 5-30% (ʻo ia ka mea i hana ʻia i kā mākou hihia), he koho maikaʻi loa kēia. .

PS

E heluhelu pū ma kā mākou blog:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka