Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono

Ko te tau 2019, karekau tonu he otinga paerewa mo te whakahiato rangitaki i Kubernetes. I roto i tenei tuhinga, e hiahia ana matou, ma te whakamahi i nga tauira mai i nga mahi tuuturu, ki te whakapuaki i o maatau rapunga, nga raru ka pa mai me o raatau otinga.

Heoi, tuatahi, ka mahia e ahau he rahui kia mohio nga kaihoko rereke ki nga mea rereke ma te kohi rakau:

  • kei te hiahia tetahi ki te kite i nga raarangi haumarutanga me te arotake;
  • te tangata - te whakaurunga o nga hanganga katoa;
  • a mo etahi, he nui ki te kohi i nga raarangi tono anake, haunga, hei tauira, nga pauna.

Kei raro ko te tapahi i raro mo te pehea i whakatinanahia ai e matou nga momo "rarangi hiahia" me nga uauatanga i pa ki a matou.

Tikanga: mo nga taputapu takiuru

He papamuri mo nga waahanga o te punaha takiuru

Kua roa te haere mai o te raakau, na te mea i whanakehia nga tikanga mo te kohi me te wetewete i nga raarangi, koinei ta tatou e whakamahi i enei ra. I te tekau tau atu i 1950, i whakauruhia e Fortran he tairitenga o nga awa whakauru/putanga paerewa, i awhina i te kaiwhakaputa i tana kaupapa. Ko enei nga raarangi rorohiko tuatahi i ngawari ake ai te oranga mo nga kaitoi htaka o aua wa. I tenei ra ka kite tatou i roto i a raatau te waahanga tuatahi o te punaha takiuru - puna, "kaihanga" ranei o nga rakau.

Ko te pūtaiao rorohiko kaore i tu tonu: ka puta mai nga whatunga rorohiko, nga tautau tuatahi... I timata nga punaha matatini me etahi rorohiko maha. Inaianei kua pehia nga kaiwhakahaere o te punaha ki te kohi rakau mai i nga miihini maha, a, i etahi keehi motuhake ka taea e ratou te taapiri i nga karere kernel OS mena ka hiahia ratou ki te tirotiro i te hapa o te punaha. Hei whakamaarama i nga punaha kohi poro rakau, i te timatanga o te tau 2000 i whakaputaina RFC 3164, i whakatauritehia te mamao_syslog. Koinei te ahua o tetahi atu waahanga nui: kaikohi pororakau me to ratou rokiroki.

Na te pikinga o te rahi o nga raarangi me te whanuitanga o te whakaurunga o nga hangarau paetukutuku, ka puta ake te patai he aha nga raarangi e tika ana kia whakaatuhia ki nga kaiwhakamahi. Ko nga taputapu papatohu ngawari (awk/sed/grep) kua whakakapihia e nga taputapu matatau ake nga kaitirotiro rangitaki - wahanga tuatoru.

Na te pikinga o te rahi o nga poro, kua marama tetahi atu mea: ko nga rakau e hiahiatia ana, engari kaore i te katoa. A, ko nga momo rakau he rereke nga taumata tiaki: ko etahi ka ngaro i te ra kotahi, ko etahi me penapena mo te 5 tau. Na, he waahanga mo te tātari me te arataki i nga rerenga raraunga i taapirihia ki te punaha takiuru - me karangahia tātari.

He peke nui ano te rokiroki: mai i nga konae i ia wa ki nga papaa paaunga hononga, katahi ka ki te rokiroki tuhinga (hei tauira, Elasticsearch). Na ka wehea te rokiroki mai i te kaikohi.

I te mutunga, ko te kaupapa tonu o te poro rakau kua toro atu ki te ahua o nga kaupapa e hiahia ana matou ki te pupuri mo nga hitori. Engari, mena ka hiahia koe ki te whakahaere i tetahi whakatewhatewha, ki te tuhi i tetahi purongo tātari...

Ko te hua o tenei, i roto i te wa poto, kua whanakehia te kohinga rangitaki ki tetahi puunaha iti nui, e tika ana te kiia ko tetahi o nga waahanga o te Raraunga Nui.

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono
Mena ka ranea nga tuhinga noa mo te "punaha takiuru," inaianei kua rereke te ahuatanga.

Kubernetes me nga raarangi

I te taenga mai o Kubernetes ki te hanganga, ko te raru o mua o te kohi poro rakau kaore ano kia hipa. I etahi ahuatanga, ka nui ake te mamae: ko te whakahaere i te papahanga hanganga ehara i te mea ngawari noa, engari he uaua ano i te wa ano. He maha nga ratonga tawhito kua timata te heke ki nga ratonga miihini. I roto i te horopaki o nga rakau, ka kitea tenei i roto i te tipu haere o nga puna rakau, to ratou huringa ora motuhake, me te hiahia ki te whai i nga hononga o nga waahanga katoa o te punaha ma roto i nga rakau...

Ma te titiro whakamua, ka taea e au te kii i tenei wa, engari, kaore he whiringa raakau paerewa mo nga Kubernetes ka pai te whakataurite ki era atu katoa. Ko nga kaupapa tino rongonui i roto i te hapori ko enei e whai ake nei:

  • ka wetekina e te tangata te puranga EFK (Elasticsearch, Fluentd, Kibana);
  • kei te ngana tetahi i te mea i tukuna tata nei Loki whakamahi ranei Kaiwhakahaere takitaki;
  • нас (a ehara pea i a tatou anake?..) Kei te tino makona ahau ki taku ake whanaketanga - whare rakau...

Hei tikanga, ka whakamahia e matou nga paihere e whai ake nei i roto i nga tautau K8s (mo nga otinga manaaki-whaiaro):

Heoi, e kore ahau e noho ki runga i nga tohutohu mo te whakaurunga me te whirihoranga. Engari, ka aro atu ahau ki o raatau ngoikoretanga me te maha atu o nga whakatau o te ao mo te ahuatanga me nga raarangi whanui.

Parakatihi me nga rakau i roto i nga K8s

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono

“Roko rākau ia rā”, e hia o koutou kei reira?..

Ko te kohikohinga o nga poro rakau mai i tetahi hanganga tino nui e tika ana kia nui nga rauemi, ka whakapaua ki te kohikohi, te penapena me te tukatuka rakau. I te wa e whakahaerehia ana nga momo kaupapa, he maha nga whakaritenga me nga raru whakahaere i puta mai i a maatau.

Me whakamatau a ClickHouse

Me titiro tatou ki tetahi putunga putunga i runga i tetahi kaupapa me tetahi tono e tino kaha ana te whakaputa pororakau: neke atu i te 5000 nga raina mo ia hekona. Me timata tatou ki te mahi me ana rakau, me te taapiri atu ki a ClickHouse.

I te wa e hiahiatia ana, ko te tūmau 4-matua me te ClickHouse ka nui ake te utaina ki runga i te puunaha-iti kōpae:

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono

Ko tenei momo utanga na te mea e ngana ana matou ki te tuhi i roto i te ClickHouse i te tere tere. A ka tauhohe te papaa raraunga ki tenei me te nui ake o te uta kōpae, ka puta nga hapa e whai ake nei:

DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts

Ko Point e MergeTree nga ripanga i roto i te ClickHouse (kei roto i a raatau nga raraunga rangitaki) kei a raatau ake nga uaua i nga mahi tuhi. Ko nga raraunga ka whakauruhia ki roto ka hangaia he wehewehenga rangitahi, ka hanumi ki te ripanga matua. Ko te mutunga mai, he tino uaua te rekoata i runga i te kopae, kei raro ano hoki i te herenga kua tae mai ki a matou mo runga ake nei: kaua e neke atu i te 1 nga waahanga iti ka taea te whakakotahi i roto i te 300 hēkona (he pono, he 300 nga whakaurunga. ia hēkona).

Hei karo i tenei whanonga, me tuhi ki ClickHouse i roto i nga waahanga nui ka taea, kaua e neke atu i te 1 wa ia 2 hēkona. Heoi, ko te tuhi i roto i nga pupuhi nui e kii ana me iti ake te tuhi ki ClickHouse. Ko tenei, ka taea te arahi ki te pupuhi parepare me te ngaro o nga rakau. Ko te otinga ko te whakanui ake i te Fluentd buffer, engari ka piki ano te kohi mahara.

parau: Ko tetahi atu ahua raruraru o ta maatau otinga me ClickHouse i pa ki te meka ko te wehewehe i roto i ta maatau keehi (whare rakau) ka whakatinanahia ma nga ripanga o waho e hono ana. Hanumi tepu. Ko tenei ka arai i te waa ka whakatauirahia nga waahi nui, me nui te RAM, na te mea ka huri te metatable i roto i nga waahanga katoa - ahakoa ko nga mea kaore he raraunga e tika ana. Heoi, inaianei ka taea te kii he koretake tenei huarahi mo nga putanga o naianei o ClickHouse (c 18.16).

Ko te hua o tenei, ka marama kaore nga kaupapa katoa e nui ana nga rauemi hei kohi i nga raarangi i te waa tonu i ClickHouse (he tino tika, kaore e tika ana to tohatoha). I tua atu, ka hiahia koe ki te whakamahi kamupene, ka hoki mai ano matou ki reira. Ko te keehi kua korerohia i runga ake nei he pono. A i taua wa kaore i taea e matou te tuku i tetahi otinga pono me te pumau e pai ana ki te kaihoko me te tuku i a maatau ki te kohi rakau me te iti o te whakaroa...

Me pehea te Elasticsearch?

E mohiotia ana a Elasticsearch ki te hapai i nga mahi taumaha. Kia tamata tatou i roto i te kaupapa kotahi. Inaianei he penei te ahua o te utaina:

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono

I taea e Elasticsearch te keri i te awa raraunga, heoi, ko te tuhi i aua pukapuka ki a ia ka tino whakamahi te PTM. Ka whakatauhia tenei ma te whakarite i te roopu. Ma te hangarau, ehara tenei i te raru, engari ka puta ko te whakahaere noa i te punaha kohinga raarangi kua whakamahia e matou mo te 8 nga matua me tetahi atu waahanga kua utaina ki roto i te punaha ...

Rarangi o raro: ka taea te whakatika i tenei whiringa, engari mena he nui te kaupapa me te reri o tana whakahaere ki te whakapau rawa nui ki runga i te punaha raakau matua.

Katahi ka puta ake he patai maori:

He aha nga rakau e tino hiahiatia ana?

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono Me ngana tatou ki te whakarereke i te huarahi ake: me whai korero nga rakau i te wa kotahi, kaua e hipoki ia takahanga i roto i te punaha.

Me kii he toa ipurangi angitu taatau. He aha nga rarangi mea nui? Ko te kohikohi i nga korero ka taea, hei tauira, mai i te huarahi utu, he whakaaro pai. Engari ehara i te mea nui ki a matou nga raarangi katoa mai i te ratonga tapahi whakaahua i roto i te raarangi hua: ko nga hapa anake me te aro turuki whakamua he nui (hei tauira, ko te paheketanga o nga hapa 500 ka mahia e tenei waahanga).

Na kua tae ki te whakatau e kore e tika i nga wa katoa te raakau i waenganui. I te nuinga o nga wa ka hiahia te kaihoko ki te kohi i nga raarangi katoa ki te waahi kotahi, ahakoa ko te mea pono, mai i te katoa o te raarangi, ko te 5% o nga karere e tino nui ana mo te pakihi e hiahiatia ana:

  • I etahi wa ka nui ki te whirihora, me kii, ko te rahi anake o te raarangi ipu me te kaikohi hapa (hei tauira, Sentry).
  • Ko te whakamohiotanga hapa me te raarangi nui o te rohe ka nui pea hei tirotiro i nga aitua.
  • He kaupapa i mahia ma nga whakamatautau mahi me nga punaha kohinga hapa. Kaore i hiahiatia e te kaiwhakawhanake he raarangi pera - i kite ratou i nga mea katoa mai i nga tohu hapa.

Whakaahua mai i te oranga

Ko tetahi atu korero ka waiho hei tauira pai. I tae mai he tono mai i te roopu haumarutanga o tetahi o o taatau kiritaki kua whakamahi kē i tetahi otinga arumoni i whakawhanakehia i mua noa atu i te whakaurunga o Kubernetes.

He mea tika ki te "hoa" o te punaha kohinga raarangi tuuturu me te pukoro rapu raruraru umanga - QRadar. Ka taea e tenei punaha te tango i nga raarangi ma te kawa syslog me te tiki mai i a FTP. Heoi, kaore i taea te whakauru ki te taputapu remote_syslog mo te fluentd (i te mea i puta, ehara i te mea ko matou anake). Ko nga raru ki te whakatu i te QRadar kei te taha o te roopu haumaru a te kiritaki.

Ko te mutunga, ko tetahi waahanga o nga raarangi pakihi-nui i tukuna ki te FTP QRadar, ko tetahi atu waahanga i tukuna ma te syslog mamao tika mai i nga pona. Mo tenei i tuhituhi ano matou tūtohi māmā - tera pea ka awhina tetahi ki te whakaoti rapanga penei... Na te kaupapa i puta mai, ko te kaihoko tonu i whiwhi me te wetewete i nga raarangi whakahirahira (ma te whakamahi i ana taputapu tino pai), a ka taea e matou te whakaheke i te utu o te punaha takiuru, ka penapena noa nga i tera marama.

Ko tetahi atu tauira he tohu mo nga mea kaore e mahia. Ko tetahi o a maatau kaihoko mo te tukatuka Tuhinga o mua Ko nga huihuinga ka puta mai i te kaiwhakamahi, i hangaia he raina maha putanga kore hanga nga korero kei roto i te raarangi. Ka taea e koe te whakaaro, he tino rawe ki te panui me te penapena nga raarangi.

Paearu mo nga raarangi

Ko enei tauira ka arahi ki te whakatau i tua atu i te kowhiri i te punaha kohinga rakau, me hiahia koe na ratou ano e hoahoa nga rakau! He aha nga whakaritenga i konei?

  • Me noho nga rangitaki ki te whakatakotoranga ka taea te panui miihini (hei tauira, JSON).
  • Me kiato nga rangitaki me te kaha ki te whakarereke i te tohu o te takiuru kia taea ai te patuiro i nga raru ka taea. I te wa ano, i roto i nga taiao whakangao me whakahaere koe i nga punaha me te taumata raakau penei Whakatūpato ranei hapa.
  • Me whakataurite nga rangitaki, ara, i roto i te ahanoa rangitaki, me rite te momo mara o nga rarangi katoa.

Ka taea e nga rakau kaore i hangaia he raruraru ki te uta i nga rakau ki roto i te rokiroki me te whakamutu katoa i a raatau mahi. Hei tauira, koinei tetahi tauira me te hapa 400, he maha nga mea i tutaki ki nga raarangi korero:

2019-10-29 13:10:43 +0000 [warn]: dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch"

Ko te tikanga o te hapa kei te tukuna e koe he mara e kore e tau te momo ki te taupū me te mapi kua rite. Ko te tauira tino ngawari he mara i roto i te raarangi nginx me te taurangi $upstream_status. He tau, he aho ranei. Hei tauira:

{ "ip": "1.2.3.4", "http_user": "-", "request_id": "17ee8a579e833b5ab9843a0aca10b941", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staffs/265.png", "protocol": "HTTP/1.1", "status": "200", "body_size": "906", "referrer": "https://example.com/staff", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.001", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "127.0.0.1:9000", "upstream_status": "200", "upstream_response_length": "906", "location": "staff"}
{ "ip": "1.2.3.4", "http_user": "-", "request_id": "47fe42807f2a7d8d5467511d7d553a1b", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staff", "protocol": "HTTP/1.1", "status": "200", "body_size": "2984", "referrer": "-", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.010", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "10.100.0.10:9000, 10.100.0.11:9000", "upstream_status": "404, 200", "upstream_response_length": "0, 2984", "location": "staff"}

Ko nga rarangi e whakaatu ana i whakautu te tūmau 10.100.0.10 me te hapa 404 ka tukuna te tono ki tetahi atu rokiroki ihirangi. Ko te mutunga, ka penei te uara o nga raarangi:

"upstream_response_time": "0.001, 0.007"

He tino noa tenei ahuatanga ka tika kia wehea tohutoro i roto i nga tuhinga.

Me pehea te pono?

I etahi wa he mea tino nui nga poro rakau katoa. Na tenei, he raruraru nga kaupapa kohikohi rakau mo nga K8 e whakaarohia ana i runga ake nei.

Hei tauira, kaore e taea e fluentd te kohi rakau mai i nga ipu poto. I roto i tetahi o a maatau kaupapa, iti iho i te 4 hēkona te noho o te ipu hekenga raraunga, katahi ka mukua - e ai ki nga korero e pa ana:

"helm.sh/hook-delete-policy": hook-succeeded

Na tenei, kaore i whakauruhia te raarangi mahi heke ki te rokiroki. Ka taea e nga mahi torangapu te awhina i tenei keehi. before-hook-creation.

Ko tetahi atu tauira ko te hurihanga rangitaki Docker. Me kii he tono kei te kaha te tuhi ki nga raarangi. I raro i nga tikanga noa, ka whakahaerehia e matou nga raarangi katoa, engari ka puta mai he raru - hei tauira, penei i te whakaahuatanga i runga ake nei me te whakatakotoranga he - ka mutu te tukatuka, ka huri a Docker i te konae. Ko te hua ka ngaro pea nga raarangi pakihi-nui.

No reira he mea nui ki te wehe i nga awa rakau, te whakauru ki te tuku i nga mea tino nui ki roto i te tono kia noho haumaru ai. I tua atu, ehara i te mea nui ki te hanga i etahi “accumulator” o nga rakau, ka ora i te kore wateatanga o te rokiroki poto i te wa e penapena ana i nga karere whakahirahira.

Ka mutu, kaua tatou e wareware ki tera He mea nui kia tika te aro turuki i tetahi punaha iti. Ki te kore, he ngawari ki te pa ki tetahi ahuatanga kei roto i te ahua o te matatau CrashLoopBackOff me te kore e tuku i tetahi mea, a ka oati tenei i te ngaro o nga korero nui.

kitenga

I roto i tenei tuhinga, kaore matou e titiro ki nga otinga SaaS penei i a Datadog. He maha nga raru e whakaahuahia ana i konei kua whakatauhia i tetahi huarahi, i tetahi atu ranei e nga kamupene arumoni e tohunga ana ki te kohi rakau, engari kaore e taea e te katoa te whakamahi i te SaaS mo nga take rereke. (ko nga mea nui ko te utu me te hanganga ture ki te 152-FZ).

Ko te kohikohinga pororakau i te tuatahi he ahua ngawari, engari kaore rawa. He mea nui kia mahara ko:

  • Ko nga waahanga tino nui anake me tuhi taipitopito, ka taea te whirihora i te aro turuki me te kohinga hapa mo etahi atu punaha.
  • Me noho iti rawa nga raarangi hangahanga kia kore ai e taapiri i nga kawenga kore.
  • Ko nga rangitaki me panui miihini, kia rite, me te tino whakatakotoranga.
  • Me tuku nga rakau tino nui ki tetahi awa motuhake, me wehe ke i nga mea matua.
  • He pai ki te whakaaro ki te kohikohi rakau, ka taea e koe te whakaora i a koe mai i nga pakaru o te kawenga nui, ka nui ake te ahua o te kawenga i runga i te rokiroki.

Ka takiuru ki Kubernetes (kaore anake) i tenei ra: nga tumanako me te pono
Ko enei ture ngawari, mena ka whakamahia ki nga waahi katoa, ka taea e nga iahiko kua whakaahuatia i runga ake nei te mahi - ahakoa kei te ngaro etahi waahanga nui (te pākahiko). Ki te kore koe e u ki nga tikanga penei, ma te mahi ka ngawari te arahi i a koe me nga hanganga ki tetahi atu waahanga tino utaina (me te wa ano karekau) o te punaha.

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero