Mokhoa oa ho hokahanya lihlopha tsa Kubernetes litsing tse fapaneng tsa data

Mokhoa oa ho hokahanya lihlopha tsa Kubernetes litsing tse fapaneng tsa data
Rea u amohela letotong la rona la Kubernetes Quick Start. Ena ke kholomo e tloaelehileng e nang le lipotso tse khahlisang haholo tseo re li fumanang marang-rang le lithupelong tsa rona. Setsebi sa Kubernetes se araba.

Setsebi sa kajeno ke Daniel Polenchik (Daniele Polencic). Daniel o sebetsa e le morupeli le moqapi oa software ho Ithute8s.

Haeba u batla hore potso ea hau e arajoe posong e latelang, ikopanye le rona ka lengolo-tsoibila kapa Twitter: @learnk8s.

U fositse tse fetileng? Li fumane mona.

Mokhoa oa ho hokahanya lihlopha tsa Kubernetes litsing tse fapaneng tsa data?

Ka bokhutšoanyane: Kubefed v2 e tla haufinyane, hape ke khothaletsa ho bala ka Sekepe и projeke ya dihlopha tse ngata.

Hangata, meaho ea ts'ebetso ea phetoa le ho ajoa libakeng tse fapaneng, haholo libakeng tse laoloang.

Haeba sebaka se seng se sa fumanehe, sephethephethe se fetisetsoa ho se seng ho qoba litšitiso.

Ka Kubernetes, o ka sebelisa leano le ts'oanang mme oa aba mesebetsi e mengata libakeng tse fapaneng.

U ka ba le sehlopha se le seng kapa ho feta ka sehlopha, sebaka, tikoloho, kapa motsoako oa likarolo tsena.

Lihlopha tsa hau li ka amoheloa ka har'a maru le libakeng tse fapaneng.

Empa u rera mekhoa ea motheo joang bakeng sa ho hasana ha libaka tse joalo?
Na u hloka ho theha sehlopha se le seng se seholo bakeng sa libaka tse ngata tsa maru holim'a marang-rang a le mong?
Kapa na u na le lihlopha tse ngata tse nyenyane 'me u fumane mokhoa oa ho li laola le ho li hokahanya?

Sehlopha se le seng sa boetapele

Ho theha sehlopha se le seng holim'a marang-rang a le mong ha ho bonolo hakaalo.

Ak'u nahane u hlahetsoe ke kotsi, khokahanyo lipakeng tsa lihlopha tsa lihlopha e lahlehile.

Haeba u na le seva se le seng sa master, halofo ea lisebelisoa e ke ke ea khona ho fumana litaelo tse ncha hobane li ke ke tsa khona ho ikopanya le monghali.

Mme ka nako e ts'oanang o na le litafole tsa khale tsa ho tsamaisa (kube-proxy ha e khone ho khoasolla tse ncha) mme ha ho li-pods tse ling (kubelet e ke ke ea kopa lintlafatso).

Ho mpefatsa boemo le ho feta, haeba Kubernetes e sa bone node, e e tšoaea e le khutsana 'me e aba li-pods tse sieo ho li-node tse teng.

Ka lebaka leo, o na le li-pods tse habeli.

Haeba u etsa seva e le 'ngoe ea master sebakeng se seng le se seng, ho tla ba le mathata ka algorithm ea tumellano ho database ea etcd. (hoo e ka bang. ed. - Ebile, database ea etcd ha ea tlameha ho beoa ho li-server tse kholo. E ka tsamaisoa ho sehlopha se arohaneng sa li-server sebakeng se le seng. 'Nete, ka nako e ts'oanang ho fumana ntlha ea ho hlōleha ha sehlopha. Empa kapele.)

joalo-joalo lisebelisoa raft algorithmho buisana ka boleng pele o e ngolla disk.
Ke hore, boholo ba maemo a tlameha ho fihlela tumellano pele mmuso o ka ngolloa joalo-joalo.

Haeba latency lipakeng tsa joalo-joalo e eketseha haholo, joalo ka ha ho le joalo ka makhetlo a mararo etcd libakeng tse fapaneng, ho nka nako e telele ho buisana ka boleng le ho e ngolla disk.
Sena se bonahala ho balaoli ba Kubernetes.

Mookameli oa molao o hloka nako e eketsehileng ea ho ithuta ka phetoho le ho ngola karabo ho database.

Mme kaha ha ho na molaoli a le mong, empa tse 'maloa, sephetho sa ketane mme sehlopha sohle se qala ho sebetsa butle haholo.

etcd ke latency sensitive hoo Litokomane tsa molao li khothaletsa ho sebelisa li-SSD sebakeng sa li-hard drive tse tloaelehileng.

Hona joale ha ho na mehlala e metle ea marang-rang a maholo bakeng sa sehlopha se le seng.

Ha e le hantle, sechaba sa nts'etsopele le sehlopha sa SIG-cluster se leka ho fumana mokhoa oa ho hlophisa lihlopha ka tsela e ts'oanang ea lijana tsa Kubernetes.

Khetho ea 1: mokhatlo oa lihlopha o nang le kubefed

Karabo ea semmuso ho tsoa ho SIG-cluster - kubefed2, mofuta o mocha oa moreki oa mantlha oa kubefederation le opareitara.

Ka lekhetlo la pele, re lekile ho laola pokello ea lihlopha e le ntho e le 'ngoe re sebelisa sesebelisoa sa kube federation.

Tšimoloho e ne e le ntle, empa qetellong mokhatlo oa kube federation ha oa ka oa tsebahala hobane o ne o sa tšehetse lisebelisoa tsohle.

E tšehelitse lits'ebeletso le lits'ebeletso tse kopaneng, empa eseng StatefulSets, mohlala.
Hape, tlhophiso ea mokhatlo e ne e fetisoa ka mokhoa oa litlhaloso 'me e ne e sa fetohe.

Ak'u inahanele hore na u ka hlalosa joang karohano ea replica bakeng sa sehlopha se seng le se seng sa mokhatlo o sebelisa litlhaloso feela.

E ne e le tlhakatlhakano e e feletseng.

SIG-cluster e entse mosebetsi o mongata ka mor'a hore e befed v1 mme e nkile qeto ea ho atamela bothata ka tsela e fapaneng.

Ho e-na le litlhaloso, ba ile ba etsa qeto ea ho lokolla molaoli o kentsoeng ka lihlopha. E ka etsoa ka mokhoa o ikhethileng ho sebelisoa Custom Resource Definitions (CRDs).

Bakeng sa sesebelisoa se seng le se seng seo e tla ba karolo ea mokhatlo, o na le tlhaloso ea tloaelo ea CRD e nang le likarolo tse tharo:

  • tlhaloso e tlwaelehileng ya mohlodi, mohlala phepelo;
  • karolong placement, moo o hlalosang hore na mohlodi o tla abuwa jwang mokgatlong;
  • karolong override, moo bakeng sa mohloli o itseng o ka fetisa boima le litekanyetso ho tloha ho behoa.

Mona ke mohlala oa thomello e kopaneng e nang le likarolo tsa ho beha le ho hlakola.

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

Joalokaha u ka bona, phepelo e ajoa ka lihlopha tse peli: cluster1 и cluster2.

Sehlopha sa pele se fana ka likopi tse tharo, 'me sa bobeli se behiloe ho 5.

Haeba o hloka taolo e eketsehileng holim'a palo ea likopi, kubefed2 e fana ka ntho e ncha ea ReplicaSchedulingPreference moo likopi li ka lekanngoang:

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

Sebopeho sa CRD le API ha li so lokisoe, 'me mosebetsi o sebetsang o ntse o tsoela pele sebakeng sa polokelo ea projeke ea semmuso.

Ela hloko kubefed2, empa hopola hore ha e so loketse tlhahiso.

Ithute haholoanyane ka kubefed2 ho tloha sengoloa sa semmuso mabapi le kubefed2 ka blog ka Kubernetes le ho polokelo ea semmuso ea projeke ea kubefed.

Khetho ea 2: ho kopanya lihlopha ka mokhoa oa Booking.com

Bahlahisi ba Booking.com ha ba ka ba sebetsa ho kubefed v2, empa ba ile ba tla le Shipper - opereishene ea ho tsamaisa lihlopha tse 'maloa, libakeng tse' maloa le marung a 'maloa.

Sekepe e batla e tšoana le kubefed2.

Lisebelisoa tsena ka bobeli li u lumella ho etsa leano la hau la ho tsamaisa lihlopha tse ngata (tse sebelisoang ke lihlopha le hore na li na le likopi tse kae).

empa Sepheo sa Shipper ke ho fokotsa kotsi ea liphoso nakong ea ho pepa.

Ho Shipper, o ka hlalosa letoto la mehato e hlalosang karohano ea likopi lipakeng tsa thomello e fetileng le ea hajoale le bongata ba sephethephethe se kenang.

Ha o sutumelletsa sesebelisoa ho sehlopha, molaoli oa Shipper o eketsa phetoho eo ho lihlopha tsohle tse kopaneng.

Hape, Shipper e fokola haholo.

Ka mohlala, e amohela lichate tsa helm e le ho kenya letsoho 'me ha e tšehetse lisebelisoa tsa vanilla.
Ka kakaretso, Shipper e sebetsa tjena.

Sebakeng sa ho fana ka mokhoa o tloaelehileng, o hloka ho theha sesebelisoa sa kopo se kenyelletsang chate ea 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 ke khetho e ntle ea ho laola lihlopha tse ngata, empa kamano ea eona e haufi le Helm e kena tseleng feela.

Ho thoe'ng haeba bohle re tloha Helm ho ea Customize kapa mokaptene?

Fumana ho eketsehileng ka Shipper le filosofi ea eona ho phatlalatso ena ea semmuso ea boralitaba.

Haeba u batla ho cheka khoutu, leba polokelong ea projeke ea semmuso.

Khetho ea 3: ho kopanya lihlopha tsa "magic".

Kubefed v2 le Shipper li sebetsa le mokhatlo oa lihlopha, ho fana ka lisebelisoa tse ncha ho lihlopha ka tlhaloso ea lisebelisoa tsa moetlo.

Empa ho thoe'ng haeba u sa batle ho ngola thepa eohle, StatefulSets, DaemonSets, joalo-joalo ho kopanya?

U ka kenyelletsa sehlopha se seng se le teng joang mokhatlong o kopaneng ntle le ho fetola YAML?

multi-cluster-scheduler ke projeke ea Admirarity, e sebetsanang le ho hlophisa meroalo ea mesebetsi ka lihlopha.

Empa ho e-na le ho hlahisa mokhoa o mocha oa ho sebelisana le sehlopha le ho phuthela lisebelisoa ka litlhaloso tse tloaelehileng, lihlopha tse ngata tsa lihlopha li kenngoa ka mokhoa o tloaelehileng oa bophelo ba Kubernetes 'me o thibela mehala eohle e etsang li-pods.

Pod e 'ngoe le e' ngoe e bōpiloeng e nkeloa sebaka hang-hang ka dummy.

mefuta e mengata ea li-scheduler li-webhooks bakeng sa phetoho ea phihlelloho thibela call le ho etsa dummy pod e sa sebetseng.

Pod ea mantlha e feta potolohong e 'ngoe ea moralo moo, ka mor'a ho khetha mokhatlo oohle, ho etsoa qeto ea ho bea.

Qetellong, pod e isoa sehlopheng sa sepheo.

Ka lebaka leo, u na le pod e eketsehileng e sa etse letho, e nka sebaka feela.

Molemo ke hore ha oa ka oa tlameha ho ngola lisebelisoa tse ncha ho kopanya lisebelisoa.

Sesebediswa se seng le se seng se etsang pod se itokiseditse ho kopanngwa.

Sena sea khahla, hobane ka tšohanyetso u na le lisebelisoa tse ajoang libakeng tse 'maloa,' me ha ua ka ua elelloa. Leha ho le joalo, sena se kotsi haholo, hobane ntho e 'ngoe le e' ngoe mona e itšetlehile ka boselamose.

Empa leha Shipper a ntse a leka ho fokotsa tšusumetso ea ho tsamaisoa, li-multi-cluster-scheduler li sebetsana le mesebetsi e akaretsang mme mohlomong e loketse mesebetsi ea batch.

Ha e na mokhoa o tsoetseng pele oa ho fana butle-butle.

Lintlha tse ling mabapi le multi-cluster-scheduler li ka fumanoa ho leqephe la polokelo ea semmuso.

Haeba u batla ho bala ka li-multi-cluster-scheduler tse sebetsang, Admiralty e na le eona kesi e khahlisang ea tšebeliso le Argo - mesebetsi, liketsahalo, CI le CD Kubernetes.

Lisebelisoa tse ling le litharollo

Ho kopanya le ho laola lihlopha tse ngata ke mosebetsi o rarahaneng, 'me ha ho na tharollo ea bokahohle.

Haeba u ka rata ho hlahloba sehlooho sena ho ea pele, lisebelisoa tse ling ke tsena:

Ke phetho bakeng sa kajeno

Kea leboha ha u bala ho fihlela qetellong!

Haeba u tseba ho hokahanya lihlopha tse ngata ka katleho, re bolelle.

Re tla eketsa mokhoa oa hau ho lihokela.

Ke leboha haholo Chris Nesbitt-Smith (Chris Nesbitt-Smith) le Vincent de Sme (Vincent De Smet) (moenjiniere oa ho tšepahala ho swatmobile.io) bakeng sa ho bala sengoloa le ho arolelana leseli la bohlokoa mabapi le hore na mokhatlo o sebetsa joang.

Source: www.habr.com

Eketsa ka tlhaloso