Ungawaxhuma kanjani amaqoqo e-Kubernetes ezikhungweni zedatha ezahlukene

Ungawaxhuma kanjani amaqoqo e-Kubernetes ezikhungweni zedatha ezahlukene
Siyakwamukela ochungechungeni lwethu lwe-Kubernetes Quick Start. Lena ikholomu evamile enemibuzo ethakazelisa kakhulu esiyithola ku-inthanethi nasekuqeqeshweni kwethu. Kubernetes uchwepheshe uyaphendula.

Isazi sanamuhla nguDaniel Polenchik (UDaniel Polencic). UDaniel usebenza njengomfundisi kanye nonjiniyela wesoftware kwa Fundak8s.

Uma ufuna ukuthi umbuzo wakho uphendulwe eposini elilandelayo, xhumana nathi nge-imeyili noma ku Twitter: @learnk8s.

Uphuthelwe okuthunyelwe kwangaphambilini? Zithole lapha.

Ungawaxhuma kanjani amaqoqo e-Kubernetes ezikhungweni zedatha ezahlukene?

Kafushane: I-Kubefed v2 iyeza maduze, futhi futhi ngincoma ukufunda mayelana Umthumbi и iphrojekthi ye-multi-cluster-scheduler.

Imvamisa, ingqalasizinda iyaphindwa futhi isatshalaliswe ezifundeni ezahlukene, ikakhulukazi ezindaweni ezilawulwayo.

Uma isifunda esisodwa singatholakali, ithrafikhi iqondiswa kabusha kwenye ukuze kugwenywe iziphazamiso.

Nge-Kubernetes, ungasebenzisa isu elifanayo futhi usabalalise imithwalo yemisebenzi ezifundeni ezahlukene.

Ungaba neqoqo elilodwa noma ngaphezulu iqembu ngalinye, isifunda, imvelo, noma inhlanganisela yalezi zici.

Amaqoqo akho angasingathwa ngamafu ahlukene nasezindaweni.

Kodwa uyihlela kanjani ingqalasizinda yokusabalalisa kwezindawo ezinjalo?
Ingabe udinga ukudala iqoqo elikhulu lezindawo ezimbalwa zamafu ngenethiwekhi eyodwa?
Noma unamaqoqo amaningi amancane futhi uthole indlela yokuwalawula nokuwavumelanisa?

Iqoqo elilodwa lobuholi

Ukudala iqoqo elilodwa ngenethiwekhi eyodwa akulula kangako.

Cabanga ukuthi unengozi, ukuxhumana phakathi kwamasegimenti eqoqo kuyalahleka.

Uma uneseva eyodwa eyinhloko, ingxenye yezinsiza ngeke ikwazi ukuthola imiyalo emisha ngoba ngeke ikwazi ukuxhumana nomphathi.

Futhi ngesikhathi esifanayo unamatafula amadala omzila (kube-proxy ayikwazi ukulanda amasha) futhi awekho ama-pod angeziwe (i-kubelet ayikwazi ukucela izibuyekezo).

Ukwenza izinto zibe zimbi nakakhulu, uma u-Kubernetes engayiboni indawo, iyibeka njengentandane futhi isabalalise ama-pods alahlekile kuma-node akhona.

Ngenxa yalokho, unama-pods amaningi ngokuphindwe kabili.

Uma wenza iseva eyodwa eyinhloko esifundeni ngasinye, kuzoba nezinkinga nge-algorithm yokuvumelana kusizindalwazi njlld. (cishe. ed. - Eqinisweni, i- etcd database akudingeki ukuthi ibekwe kumaseva ayinhloko. Ingaqhutshwa eqenjini elihlukile lamaseva endaweni efanayo. Yiqiniso, ngesikhathi esifanayo ukuthola iphuzu lokuhluleka kweqoqo. Kodwa ngokushesha.)

njll ukusetshenziswa i-algorithm ye-raftukuxoxisana ngenani ngaphambi kokulibhala kudiski.
Okusho ukuthi, izimo eziningi kufanele zifinyelele ukuvumelana ngaphambi kokuba umbuso ubhalelwe njlld.

Uma ukubambezeleka phakathi kwezimo ze- etcd kukhuphuka kakhulu, njengoba kunjalo ngezimo ezintathu njll ezifundeni ezihlukene, kuthatha isikhathi eside ukuxoxisana ngenani futhi ulibhale kudiski.
Lokhu kubonakala kuzilawuli ze-Kubernetes.

Umphathi wesilawuli udinga isikhathi esengeziwe sokufunda mayelana noshintsho futhi abhale impendulo kusizindalwazi.

Futhi njengoba kungekho isilawuli esisodwa, kodwa eziningana, imiphumela yeketango futhi iqoqo lonke liqala ukusebenza kancane kakhulu.

njlld izwela kakhulu ukubambezeleka Imibhalo esemthethweni incoma ukusebenzisa ama-SSD esikhundleni sama-hard drive ajwayelekile.

Okwamanje azikho izibonelo ezinhle zenethiwekhi enkulu yeqoqo elilodwa.

Ngokuyisisekelo, umphakathi wonjiniyela kanye neqembu le-SIG-cluster bazama ukuthola ukuthi bangawahlela kanjani amaqoqo ngendlela efanayo ne-Kubernetes orchestrates iziqukathi.

Inketho 1: i-cluster federal ene-kubefed

Impendulo esemthethweni evela ku-SIG-cluster - kubefed2, inguqulo entsha yeklayenti le-kubederation yokuqala kanye no-opharetha.

Ngokokuqala ngqa, sizame ukuphatha iqoqo lamaqoqo njengento eyodwa sisebenzisa ithuluzi le-kube federation.

Isiqalo besisihle, kodwa ekugcineni i-kube federation ayizange idume ngoba ibingazisekeli zonke izinsiza.

Isekele ukulethwa nezinsizakalo ezihlanganisiwe, kodwa hhayi i-StatefulSets, isibonelo.
Futhi, ukucushwa komfelandawonye kwahanjiswa ngendlela yezichasiselo futhi kwakungaguquki.

Cabanga nje ukuthi ungakuchaza kanjani ukuhlukaniswa kwe-replica kweqoqo ngalinye kumfelandawonye usebenzisa izichasiselo nje.

Kwakuyisiphithiphithi esiphelele.

I-SIG-cluster yenze umsebenzi omningi ngemuva kwe-kubefed v1 futhi yanquma ukubhekana nenkinga ngenye indlela.

Esikhundleni sezichasiselo, banqume ukukhipha isilawuli esifakwe kumaqoqo. Ingenziwa ngendlela oyifisayo kusetshenziswa Izincazelo Zensiza Yangokwezifiso (CRDs).

Ngosizo ngalunye oluzoba yingxenye yomfelandawonye, ​​unencazelo yangokwezifiso ye-CRD enezigaba ezintathu:

  • incazelo evamile yesisetshenziswa, isibonelo ukuthunyelwa;
  • isahluko placement, lapho uchaza khona ukuthi insiza izosatshalaliswa kanjani kumfelandawonye;
  • isahluko override, lapho ngensiza ethile ungakwazi ukukhipha isisindo namapharamitha ekubekweni.

Nasi isibonelo sokulethwa okuhlanganisiwe nezigaba zokubeka nokubhala ngaphezulu.

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

Njengoba ubona, ukunikezwa kusatshalaliswa kumaqoqo amabili: cluster1 и cluster2.

Iqoqo lokuqala linikeza amakhophi amathathu, kanti elesibili lisethelwe ku-5.

Uma udinga ukulawula okwengeziwe kwinani lezifaniso, i-kubefed2 ihlinzeka ngento entsha ye-ReplicaSchedulingPreference lapho okuphindaphindwayo kungakalwa khona:

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

Isakhiwo se-CRD kanye ne-API ayikalungi okwamanje, futhi umsebenzi osebenzayo uyaqhubeka endaweni yokugcina iphrojekthi esemthethweni.

Bheka i-kubefed2, kodwa khumbula ukuthi ayikalungeli ukukhiqizwa.

Funda kabanzi mayelana ne-kubefed2 kusuka isihloko esisemthethweni mayelana ne-kubefed2 kubhulogi mayelana ne-Kubernetes kanye ne-in inqolobane esemthethweni yephrojekthi ye-kubefed.

Inketho 2: ukuhlanganisa amaqoqo ngesitayela se-Booking.com

Abathuthukisi be-Booking.com abazange basebenze ku-kubefed v2, kodwa beza noShipper - opharetha wokulethwa kumaqoqo amaningana, ezifundeni ezimbalwa nasemafwini amaningana.

Umthumbi ithi akufane ne-kubefed2.

Womabili amathuluzi akuvumela ukuthi wenze ngendlela oyifisayo isu lakho lokuphakela le-multi-cluster (iziphi iziqoqo ezisetshenziswayo nokuthi zingaki izifaniso ezinazo).

Nokho Umgomo kaShipper ukunciphisa ingozi yamaphutha ngesikhathi sokulethwa.

Ku-Shipper, ungachaza uchungechunge lwezinyathelo ezichaza ukuhlukaniswa kwe-replicas phakathi kokuthunyelwa kwangaphambilini nokwamanje kanye nevolumu yethrafikhi engenayo.

Uma uphusha insiza kuqoqo, isilawuli seShipper sikhipha lolo shintsho ngokuqhubekayo kuwo wonke amaqoqo ahlanganisiwe.

Futhi, i-Shipper ilinganiselwe kakhulu.

Isibonelo, yamukela amashadi e-helm njengokufaka futhi ayisekeli izinsiza ze-vanilla.
Ngokuvamile, uShipper usebenza kanje.

Esikhundleni sokulethwa okujwayelekile, udinga ukudala insiza yohlelo lokusebenza efaka ishadi le-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

I-Shipper iyindlela enhle yokuphatha amaqoqo amaningi, kodwa ubudlelwano bayo obuseduze ne-Helm bungena kuphela endleleni.

Kuthiwani uma sonke sisuka ku-Helm siye ngokwezifiso noma ukaputeni?

Thola kabanzi mayelana noShipper nefilosofi yakhe ku lesi sitatimende esisemthethweni kwabezindaba.

Uma ufuna ukumba ikhodi, qonda endaweni yokugcina iphrojekthi esemthethweni.

Inketho yesi-3: ukuhlanganisa iqoqo “lomlingo”

I-Kubefed v2 kanye neShipper basebenza ne-cluster federal, ihlinzeka ngezinsiza ezintsha kumaqoqo ngencazelo yensiza yangokwezifiso.

Kodwa kuthiwani uma ungafuni ukubhala kabusha konke okulethwayo, i-StatefulSets, i-DaemonSets, njll. ukuze uhlanganise?

Ungalifaka kanjani iqoqo elikhona kumfelandawonye ngaphandle kokushintsha i-YAML?

i-multi-cluster-scheduler iphrojekthi ye-Admiraality, ephathelene nokuhlela umthwalo wemisebenzi kumaqoqo.

Kodwa esikhundleni sokuqhamuka nendlela entsha yokusebenzisana neqoqo futhi usonge izinsiza kuzincazelo zangokwezifiso, i-multi-cluster-scheduler ishumekwe kumjikelezo wempilo ojwayelekile we-Kubernetes futhi ibamba zonke izingcingo ezidala ama-pods.

I-pod ngayinye edaliwe ishintshwa ngokushesha nge-dummy.

ukusetshenziswa kwe-multi-cluster-scheduler ama-webhooks wokushintsha ukufinyelelaukuze ubambe ucingo futhi udale i-dummy pod engenzi lutho.

I-pod yasekuqaleni idlula komunye umjikelezo wokuhlela lapho, ngemva kokuvota yonke inhlangano, kwenziwa isinqumo sokubeka.

Ekugcineni, i-pod ihanjiswa kuqoqo eliqondiwe.

Ngenxa yalokho, une-pod eyengeziwe engenzi lutho, ivele ithathe isikhala.

Inzuzo ukuthi akuzange kudingeke ukuthi ubhale izinsiza ezintsha ukuze uhlanganise izinsiza.

Insiza ngayinye edala i-pod ilungele ukuhlanganiswa ngokuzenzakalela.

Kuyathakazelisa lokhu, ngoba ngokuzumayo unempahla esabalaliswe ezifundeni ezimbalwa, futhi awuzange uqaphele. Kodwa-ke, lokhu kuyingozi kakhulu, ngoba yonke into lapha incike kumlingo.

Kodwa ngenkathi uShipper ezama ukunciphisa kakhulu umthelela wokulethwa, i-multi-cluster-scheduler iphatha imisebenzi ejwayelekile futhi mhlawumbe iyifanele kangcono imisebenzi yeqoqo.

Ayinayo indlela yokulethwa kancane kancane ethuthukisiwe.

Okuningi mayelana ne-multi-cluster-scheduler kungatholakala kokuthi ikhasi eliyinqolobane elisemthethweni.

Uma ufuna ukufunda mayelana ne-multi-cluster-scheduler esebenzayo, i-Admiralty inakho ukusetshenziswa okuthakazelisayo ne-Argo - ukuhamba komsebenzi, imicimbi, i-CI kanye ne-CD Kubernetes.

Amanye amathuluzi nezixazululo

Ukuxhuma nokuphatha amaqoqo amaningi kuwumsebenzi oyinkimbinkimbi, futhi asikho isixazululo sasemhlabeni wonke.

Uma ungathanda ukuhlola lesi sihloko ngokuqhubekayo, nazi ezinye izinsiza:

Yilokho kuphela okwanamuhla

Siyabonga ngokufunda kuze kube sekugcineni!

Uma wazi ukuthi ungaxhuma kanjani amaqoqo amaningi ngokuphumelelayo, Sitshele.

Sizongeza indlela yakho kuzixhumanisi.

Sibonga ngokukhethekile uChris Nesbitt-Smith (UChris Nesbitt-Smith) kanye noVincent de Sme (UVincent De Smet) (unjiniyela onokwethenjelwa ku swatmobile.io) ngokufunda isihloko nokwabelana ngolwazi oluwusizo mayelana nendlela umfelandawonye osebenza ngayo.

Source: www.habr.com

Engeza amazwana