Na-ewebata Kubernetes CCM (Onye njikwa igwe ojii) maka Yandex.Cloud

Na-ewebata Kubernetes CCM (Onye njikwa igwe ojii) maka Yandex.Cloud

Na n'ihu na-adịbeghị anya Ntọhapụ ọkwọ ụgbọala CSI maka Yandex.Cloud anyị na-ebipụta ọrụ mepere emepe ọzọ maka igwe ojii a - Onye njikwa igwe ojii. Achọrọ CCM ọ bụghị naanị maka ụyọkọ n'ozuzu ya, kamakwa maka onye ọkwọ ụgbọ ala CSI n'onwe ya. Nkọwa gbasara ebumnuche ya na ụfọdụ atụmatụ mmejuputa dị n'okpuru ịkpụ.

Okwu Mmalite

Gịnị kpatara nke a?

Ebumnobi kpaliri anyị imepe CCM maka Yandex.Cloud dakọtara kpamkpam na nke akọwara na ya ọkwa Ndị ọkwọ ụgbọ ala CSI. Anyị na-edobe ọtụtụ ụyọkọ Kubernetes sitere na igwe ojii dị iche iche, nke anyị na-eji otu ngwaọrụ. Ọ na-eme ọtụtụ ihe dị mma "na-agafe" ngwọta ejikwa nke ndị na-enye ndị a. Ee, anyị nwere ikpe na mkpa akọwapụtara nke ọma, mana mmepe ndị emepụtara n'ihi ha nwere ike ịbara ndị ọrụ ndị ọzọ uru.

Gịnị bụ kpọmkwem CCM?

Dịka, anyị na-akwadebe gburugburu gburugburu anyị maka ụyọkọ site n'èzí - ọmụmaatụ, iji Terraform. Ma mgbe ụfọdụ ọ dị mkpa ijikwa gburugburu igwe ojii gbara anyị gburugburu site na ụyọkọ. A na-enye ohere a, ọ bụkwa ya ka etinyere ya CCM.

Kpọmkwem, Cloud Controller Manager na-enye ụdị mmekọrịta isi ise:

  1. ufodu - mejuputa mmekọrịta 1: 1 n'etiti ihe node na Kubernetes (Node) na igwe mebere na igwe ojii na-eweta. Maka nke a anyị:
    • jupụta n'ọhịa spec.providerID n'ime ihe Node. Dịka ọmụmaatụ, maka OpenStack CCM ubi a nwere usoro a: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. Ị nwere ike ịhụ aha onye na-eweta igwe ojii na UUID pụrụ iche nke ihe nkesa (igwe mebere na OpenStack) nke ihe ahụ;
    • imeju nodeInfo n'ime ihe Node ozi gbasara igwe mebere. Dịka ọmụmaatụ, anyị na-akọwapụta ụdị ihe atụ na AWS;
    • Anyị na-elele ọnụnọ nke igwe mebere na igwe ojii. Dịka ọmụmaatụ, ọ bụrụ na ihe Node banye na steeti NotReady, ị nwere ike ịlele ma igwe mebere ọ dị na igwe ojii na-eweta site na providerID. Ọ bụrụ na ọ nọghị, hichapụ ihe ahụ Node, nke ga-anọgide na-adị n'ụyọkọ ruo mgbe ebighị ebi;
  2. Ikpehe – na-esetịpụ ngalaba ọdịda maka ihe ahụ Node, nke mere na onye nhazi oge nwere ike ịhọrọ ọnụ maka Pod dịka mpaghara na mpaghara dị na igwe ojii;
  3. LoadBalancer - mgbe ị na-emepụta ihe Service na ụdị LoadBalancer na-emepụta ụdị nhazi nke ga-eduzi okporo ụzọ si n'èzí gaa na ọnụ ụyọkọ. Dịka ọmụmaatụ, na Yandex.Cloud ị nwere ike iji NetworkLoadBalancer и TargetGroup maka ebumnuche ndị a;
  4. Nsoro - na-ewuli netwọk n'etiti ọnụ, n'ihi na Dị ka Kubernetes chọrọ, pọd ọ bụla ga-enwerịrị adreesị IP nke ya ma nwee ike iru pod ọ bụla ọzọ. Maka ebumnuche ndị a, ịnwere ike iji netwọk machie (VXLAN, GENEVE) ma ọ bụ tọọ tebụl ntụgharị ozugbo na netwọkụ mebere nke ndị na-eweta igwe ojii:

    Na-ewebata Kubernetes CCM (Onye njikwa igwe ojii) maka Yandex.Cloud

  5. Mpịakọta - Na-enye ohere ịtụ PV ike site na iji PVC na SC. Na mbụ, ọrụ a bụ akụkụ nke CCM, mana n'ihi nnukwu mgbagwoju anya ya, a kwagara ya na ọrụ dị iche, Container Storage Interface (CSI). Anyị ekwuola gbasara CSI ihe karịrị otu ugboro dere na, dị ka e kwuru na mbụ, ọbụna wepụtara Onye ọkwọ ụgbọ ala CSI.

Na mbụ, koodu niile na igwe ojii na-emekọrịta ihe dị na isi ebe nchekwa Git nke ọrụ Kubernetes na k8s.io/kubernetes/pkg/cloudprovider/providers, ma ha kpebiri ịhapụ nke a n'ihi adịghị mma nke na-arụ ọrụ na nnukwu koodu isi. Ebugharịla mmemme ochie niile na ebe nchekwa iche. Maka ịdị mma nke nkwado na mmepe ọzọ, ebulikwara ihe niile a na-ahụkarị ebe nchekwa iche.

Dị ka ọ dị na CSI, ọtụtụ ndị na-eweta igwe ojii emebelarị CCM ha ka ha wee tinye igwe ojii na Kubernetes. Ọ bụrụ na onye na-ebubata ya enweghị CCM, mana ọrụ niile dị mkpa dị site na API, mgbe ahụ ị nwere ike mejuputa CCM n'onwe gị.

Iji dee mmejuputa iwu nke CCM nke gị, o zuru ezu iji mejuputa ya achọrọ Go interfaces.

И nke a bụ ihe anyị nwetara.

Mmejuputa iwu

Kedu ka i siri bia na nke a

Anyị malitere mmepe (ma ọ bụ kama, ọbụna na-eji) na njikere (!) CCM maka Yandex.Cloud otu afọ gara aga.

Agbanyeghị, na mmejuputa a anyị na-efu:

  • nkwenye site na akara JWT IAM;
  • Nkwado onye njikwa ọrụ.

Nkwekọrịta na onye edemede (dlisin) na Telegram, anyị kwụsịrị yandex-cloud-controller- manager ma gbakwunye ọrụ ndị na-efu efu.

Njirimara igodo

Ugbu a, CCM na-akwado ihu ndị a:

  • ufodu;
  • Ikpehe;
  • LoadBalancer.

N'ọdịnihu, mgbe Yandex.Cloud malitere ịrụ ọrụ na ike VPC dị elu, anyị ga-agbakwunye interface Ụzọ.

LoadBalanacer dị ka isi ihe ịma aka

Na mbụ, anyị gbalịrị, dị ka mmejuputa CCM ndị ọzọ, ịmepụta otu ụzọ LoadBalancer и TargetGroup maka nke ọ bụla Service na ụdị LoadBalancer. Agbanyeghị, Yandex.Cloud chọpụtara otu mmachi na-atọ ụtọ: ị nweghị ike iji TargetGroups na intersecting Targets ( ụzọ abụọ SubnetID - IpAddress).

Na-ewebata Kubernetes CCM (Onye njikwa igwe ojii) maka Yandex.Cloud

Ya mere, n'ime CCM kere, a na-arụ ọrụ nchịkwa, nke, mgbe ihe gbanwere Node na-anakọta ozi gbasara interfaces niile na igwe mebere ọ bụla, na-achịkọta ha dịka ihe ụfọdụ nwere si dị NetworkID, na-emepụta site TargetGroup on NetworkID, ma na-enyochakwa mkpa. Na-esote, mgbe ị na-emepụta ihe Service na ụdị LoadBalanacer anyị na-etinye naanị ihe emebere TargetGroup ka ọhụrụ NetworkLoadBalanacer'm.

Kedu ka esi amalite iji ya?

CCM na-akwado ụdị Kubernetes 1.15 na karịa. Na ụyọkọ, ka ọ rụọ ọrụ, ọ na-achọ ọkọlọtọ --cloud-provider=external atọrọ ka true maka kube-apiserver, kube-controller- manager, kube-scheduler na kubelets niile.

A kọwara usoro niile dị mkpa maka nrụnye n'onwe ya README. Nwụnye na-agbadata imepụta ihe na Kubernetes site na ngosipụta.

Iji jiri CCM, ị ga-achọkwa:

  • tụọ aka n'ime ngosipụta ihe nchọpụta ndekọ aha (folder-id) Yandex.Cloud;
  • akaụntụ ọrụ maka imekọrịta ihe na Yandex.Cloud API. Na manifesto Secret dị mkpa nyefee igodo ikike site na akaụntụ ọrụ. Na akwụkwọ kọwara, otu esi emepụta akaụntụ ọrụ wee nweta igodo.

Anyị ga-enwe obi ụtọ ịnata nzaghachi gị na okwu ọhụrụọ bụrụ na ị zutere nsogbu ọ bụla!

Nsonaazụ

Anyị na-eji CCM emejuputa atumatu na ụyọkọ Kubernetes ise n'ime izu abụọ gara aga ma na-eme atụmatụ ịgbasa ọnụ ọgụgụ ha ruo 20 n'ọnwa na-abịa. Ugbu a anyị anaghị akwado iji CCM maka nrụnye K8 buru ibu ma dị oke egwu.

Dị ka ọ dị na CSI, anyị ga-enwe obi ụtọ ma ọ bụrụ na ndị na-emepụta Yandex na-emepe emepe na nkwado nke ọrụ a - anyị dị njikere ịnyefe ebe nchekwa na arịrịọ ha iji rụọ ọrụ ndị dị anyị mkpa.

PS

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment