Yadda ake haɗa gungu na Kubernetes a cikin cibiyoyin bayanai daban-daban

Yadda ake haɗa gungu na Kubernetes a cikin cibiyoyin bayanai daban-daban
Barka da zuwa jerin mu na Kubernetes Quick Start. Wannan ginshiƙi ne na yau da kullun tare da tambayoyi masu ban sha'awa da muke karɓa akan layi da kuma cikin horon mu. Kubernetes gwani amsoshi.

Kwararren yau shine Daniel Polenchik (Daniele Polencic ne adam wata). Daniel yana aiki a matsayin malami kuma mai haɓaka software a Koyi8s.

Idan kuna son amsa tambayar ku a rubutu na gaba, tuntube mu ta imel ko Twitter: @learnk8s.

An rasa posts na baya? Nemo su anan.

Yadda ake haɗa gungu na Kubernetes a cikin cibiyoyin bayanai daban-daban?

A takaice: Kubefed v2 yana zuwa nan ba da jimawa ba, kuma ina ba da shawarar karantawa Jirgin ruwa и Multi-cluster-scheduler project.

Sau da yawa, ana maimaita abubuwan more rayuwa kuma ana rarraba su a cikin yankuna daban-daban, musamman a wuraren da ake sarrafawa.

Idan babu wani yanki, ana karkatar da zirga-zirga zuwa wani don gujewa katsewa.

Tare da Kubernetes, zaku iya amfani da dabarun iri ɗaya kuma ku rarraba nauyin aiki a cikin yankuna daban-daban.

Kuna iya samun gungu ɗaya ko fiye a kowace ƙungiya, yanki, muhalli, ko haɗin waɗannan abubuwan.

Za a iya ɗaukar nauyin gungu na ku a cikin gajimare daban-daban da kan-gidaje.

Amma ta yaya kuke tsara abubuwan more rayuwa don irin wannan yaɗuwar ƙasa?
Kuna buƙatar ƙirƙirar babban gungu ɗaya don mahallin girgije da yawa akan hanyar sadarwa guda ɗaya?
Ko kuna da ƙananan gungu da yawa kuma ku nemo hanyar sarrafawa da daidaita su?

Tarin jagoranci guda ɗaya

Ƙirƙirar gungu ɗaya akan hanyar sadarwa ɗaya ba abu ne mai sauƙi ba.

Ka yi tunanin kana da hatsari, haɗin kai tsakanin gungu ya ɓace.

Idan kana da babban uwar garken guda ɗaya, rabin albarkatun ba za su iya karɓar sabbin umarni ba saboda ba za su iya tuntuɓar maigidan ba.

Kuma a lokaci guda kuna da tsofaffin tebur na zirga-zirga (kube-proxy ba zai iya sauke sababbi ba) kuma babu ƙarin kwasfan fayiloli (kubelet ba zai iya buƙatar sabuntawa ba).

Don yin muni, idan Kubernetes bai ga kumburi ba, yana nuna shi a matsayin marayu kuma yana rarraba ɓangarorin da suka ɓace zuwa nodes ɗin da ke akwai.

A sakamakon haka, kuna da kwasfa biyu da yawa.

Idan kun yi sabar uwar garken guda ɗaya ga kowane yanki, za a sami matsaloli tare da haɗin gwiwar algorithm a cikin bayanan da sauransu. (kusan ed. - A zahiri, bayanan etcd ba lallai bane sai an same su akan manyan sabobin. Ana iya gudanar da shi akan rukunin sabobin daban a yanki ɗaya. Gaskiya ne, a lokaci guda samun maki na gazawar tari. Amma da sauri.)

etcd amfani raft algorithmdon yin shawarwari da ƙimar kafin rubuta shi zuwa faifai.
Wato, yawancin lokuta dole ne su cimma yarjejeniya kafin a iya rubuta jihar zuwa da sauransu.

Idan latency tsakanin lokuta da sauransu ya karu sosai, kamar yadda lamarin yake tare da lokuta uku da sauransu a yankuna daban-daban, yana ɗaukar lokaci mai tsawo don yin shawarwarin ƙima da rubuta shi zuwa faifai.
Wannan yana nunawa a cikin masu kula da Kubernetes.

Manajan mai sarrafawa yana buƙatar ƙarin lokaci don koyo game da canji kuma ya rubuta amsa zuwa bayanan bayanai.

Kuma tunda babu mai sarrafawa ɗaya, amma da yawa, yana haifar da amsawar sarkar kuma gabaɗayan gungu ya fara aiki a hankali.

etcd yana da hankali sosai don haka Takardun hukuma sun ba da shawarar amfani da SSDs maimakon rumbun kwamfyuta na yau da kullun.

A halin yanzu babu kyawawan misalai na babban hanyar sadarwa don tari guda.

Ainihin, ƙungiyar masu haɓakawa da ƙungiyar SIG-cluster suna ƙoƙarin gano yadda ake tsara gungu kamar yadda Kubernetes ke tsara kwantena.

Zabin 1: cluster tarayya tare da kubefed

Amsa a hukumance daga SIG-cluster - kubefed2, sabon sigar ainihin abokin ciniki na kube tarayya kuma ma'aikaci.

A karon farko, mun yi ƙoƙarin sarrafa tarin tarin abubuwa a matsayin abu ɗaya ta amfani da kayan aikin tarayya na kube.

Farkon ya yi kyau, amma a karshe tarayyar Kube ba ta taba samun karbuwa ba saboda ba ta tallafawa duk wani abu.

Yana goyan bayan isarwa da sabis na tarayya, amma ba StatefulSets ba, misali.
Har ila yau, an watsa tsarin tsarin tarayya a cikin nau'i na annotations kuma bai kasance mai sassauƙa ba.

Ka yi tunanin yadda za ka iya kwatanta rabon kwafi na kowane gungu a cikin tarayya ta amfani da bayanai kawai.

Ya kasance gabaki ɗaya.

SIG-cluster ya yi aiki da yawa bayan kubefed v1 kuma ya yanke shawarar tunkarar matsalar ta wani kusurwa daban.

Maimakon annotations, sun yanke shawarar sakin mai sarrafawa wanda aka sanya akan gungu. Ana iya keɓance shi ta amfani da Ma'anar Ma'anar Albarkatun Al'ada (CRDs).

Ga kowane albarkatun da zai zama ɓangare na tarayya, kuna da ma'anar CRD ta al'ada tare da sassa uku:

  • daidaitaccen ma'anar albarkatu, misali turawa;
  • sashe placement, inda ka bayyana yadda za a rarraba albarkatun a cikin tarayya;
  • sashe override, inda don takamaiman albarkatu za ku iya ƙetare nauyi da sigogi daga jeri.

Anan akwai misalin haɗakar isarwa tare da jeri da ƙetare sassan.

apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
  name: test-deployment
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - image: nginx
              name: nginx
  placement:
    clusterNames:
      - cluster2
      - cluster1
  overrides:
    - clusterName: cluster2
      clusterOverrides:
        - path: spec.replicas
          value: 5

Kamar yadda kake gani, ana rarraba wadatar zuwa gungu biyu: cluster1 и cluster2.

Rukunin farko ya ba da kwafi uku, kuma an saita na biyu zuwa 5.

Idan kuna buƙatar ƙarin iko akan adadin kwafi, kubefed2 yana samar da sabon abu na ReplicaSchedulingPreference inda za'a iya auna kwafi:

apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
  name: test-deployment
  namespace: test-ns
spec:
  targetKind: FederatedDeployment
  totalReplicas: 9
  clusters:
    A:
      weight: 1
    B:
      weight: 2

Tsarin CRD da API ba su shirya sosai ba tukuna, kuma ana ci gaba da aiki a cikin ma'ajin aikin hukuma.

Kula da kubefed2, amma ku tuna cewa bai dace da samarwa ba tukuna.

Koyi game da kubefed2 daga labarin hukuma game da kubefed2 a cikin blog game da Kubernetes da in ma'ajiyar hukuma na aikin kubefed.

Zabin 2: haɗa tari a cikin salon Booking.com

Masu haɓaka Booking.com ba su yi aiki akan kubefed v2 ba, amma sun zo tare da Shipper - ma'aikaci don bayarwa akan gungu da yawa, a yankuna da yawa kuma a cikin gajimare da yawa.

Jirgin ruwa kama da kubefed2.

Dukansu kayan aikin biyu suna ba ku damar tsara dabarun tura tari mai yawa (waɗanda ake amfani da gungu da adadin kwafi nawa suke da su).

Amma duk da haka Manufar Shipper ita ce rage haɗarin kurakurai yayin bayarwa.

A cikin Shipper, zaku iya ayyana jerin matakai waɗanda ke bayyana rarrabuwar kwafi tsakanin abin da ya gabata da na yanzu da ƙarar zirga-zirgar shigowa.

Lokacin da kuka tura kayan aiki zuwa gungu, mai sarrafa Shipper yana ƙara fitar da canjin canjin a duk rukunin da aka haɗa.

Hakanan, Shipper yana da iyaka sosai.

Alal misali, yana karɓar jadawalin helm azaman shigarwa kuma baya goyan bayan albarkatun vanilla.
Gabaɗaya, Shipper yana aiki kamar haka.

Maimakon daidaitaccen isarwa, kuna buƙatar ƙirƙirar albarkatun aikace-aikacen da ya haɗa da taswirar Helm:

apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
  name: super-server
spec:
  revisionHistoryLimit: 3
  template:
    chart:
      name: nginx
      repoUrl: https://storage.googleapis.com/shipper-demo
      version: 0.0.1
    clusterRequirements:
      regions:
        - name: local
    strategy:
      steps:
        - capacity:
            contender: 1
            incumbent: 100
          name: staging
          traffic:
            contender: 0
            incumbent: 100
        - capacity:
            contender: 100
            incumbent: 0
          name: full on
          traffic:
            contender: 100
            incumbent: 0
    values:
      replicaCount: 3

Shipper zaɓi ne mai kyau don sarrafa gungu da yawa, amma kusancinsa da Helm yana shiga hanya.

Menene idan muka canza daga Helm zuwa siffanta ko kyaftin?

Nemo ƙarin game da Shipper da falsafarsa a wannan sanarwar manema labarai na hukuma.

Idan kuna son shiga cikin code, kai zuwa wurin ajiyar aikin hukuma.

Zabi na 3: “sihiri” haɗakar tari

Kubefed v2 da Shipper suna aiki tare da ƙungiyar tari, suna ba da sabbin albarkatu ga ƙungiyoyi ta hanyar ma'anar albarkatu na al'ada.

Amma idan ba kwa son sake rubuta duk isar da sako, StatefulSets, DaemonSets, da sauransu fa don haɗawa?

Yadda za a haɗa gungu na yanzu a cikin tarayya ba tare da canza YAML ba?

Multi-cluster-scheduler aikin Admirality ne, wanda ke ma'amala da tsara jadawalin aiki akan gungu.

Amma maimakon fito da wata sabuwar hanya don yin hulɗa tare da tari da kunsa albarkatu a cikin ma'anoni na al'ada, Multi-cluster-scheduler an saka shi a cikin daidaitaccen tsarin rayuwar Kubernetes kuma yana tsangwama duk kiraye-kirayen da ke haifar da kwasfa.

Ana maye gurbin kowane kwas ɗin da aka ƙirƙira nan da nan tare da dummy.

Multi-cluster-scheduler amfani webhooks don samun damar gyarawadon katse kiran da ƙirƙiri faifan dummi mara aiki.

Fasfo na asali yana tafiya ta wani tsarin tsarawa inda, bayan jefa kuri'a na tarayya gaba daya, an yanke shawarar sanyawa.

A ƙarshe, ana isar da kwas ɗin zuwa gungu na manufa.

A sakamakon haka, kuna da ƙarin kwasfa wanda ba ya yin komai, kawai yana ɗaukar sarari.

Fa'idar ita ce ba lallai ne ku rubuta sabbin albarkatu don haɗa kayayyaki ba.

Kowace hanya da ta ƙirƙiri faifai tana shirye ta atomatik don haɗawa.

Wannan yana da ban sha'awa, saboda ba zato ba tsammani kuna da kayayyaki da aka rarraba a yankuna da yawa, kuma ba ku lura ba. Koyaya, wannan yana da haɗari sosai, saboda duk abin da ke nan yana kan sihiri.

Amma yayin da Shipper ke ƙoƙarin rage tasirin isar da saƙo, mai tsara shirye-shirye da yawa yana ɗaukar ƙarin ayyuka na gaba ɗaya kuma wataƙila ya fi dacewa da ayyukan batch.

Ba shi da ingantacciyar hanyar isarwa a hankali.

Ana iya samun ƙarin game da tsarin tsara-ƙulla-ƙulle-ƙulle a shafin ma'ajiya na hukuma.

Idan kuna son karantawa game da mai tsara shirye-shirye da yawa-cluster a aikace, Admiralty yana da yanayin amfani mai ban sha'awa tare da Argo - ayyukan aiki, abubuwan da suka faru, CI da CD Kubernetes.

Sauran kayan aiki da mafita

Haɗawa da sarrafa ƙungiyoyi masu yawa aiki ne mai rikitarwa, kuma babu wata mafita ta duniya.

Idan kuna son ƙarin bincika wannan batu, ga wasu albarkatu:

Shi ke nan na yau

Na gode don karantawa har zuwa ƙarshe!

Idan kun san yadda ake haɗa ƙungiyoyi da yawa cikin inganci, gaya mana.

Za mu ƙara hanyar ku zuwa mahaɗin.

Godiya ta musamman ga Chris Nesbitt-Smith (Chris Nesbitt-Smithda Vincent de Sme (Vincent De Smet) (Injiniya mai dogaro a cikin swatmobile.io) don karanta labarin da kuma raba bayanai masu amfani game da yadda tarayya ke aiki.

source: www.habr.com

Add a comment