Maitiro ekubatanidza Kubernetes masumbu munzvimbo dzakasiyana dze data

Maitiro ekubatanidza Kubernetes masumbu munzvimbo dzakasiyana dze data
Tikugashirei kune yedu Kubernetes Quick Start series. Iyi koramu yenguva dzose ine mibvunzo inonakidza yatinowana pamhepo uye mukudzidziswa kwedu. Kubernetes nyanzvi inopindura.

Nhasi nyanzvi ndiDaniel Polenchik (Daniele Polencic) Daniel anoshanda semurairidzi uye mugadziri wesoftware pa Learnk8s.

Kana iwe uchida kuti mubvunzo wako upindurwe mune inotevera positi, taura nesu neemail kana Twitter: @learnk8s.

Wakapotsa zvapfuura? Zvitsvage pano.

Maitiro ekubatanidza Kubernetes masumbu munzvimbo dzakasiyana dze data?

Pfupi: Kubefed v2 inouya munguva pfupi, uye ndinokurudzirawo kuverenga pamusoro Shipper ΠΈ Multi-cluster-scheduler project.

Kazhinji, zvivakwa zvinodzokororwa uye kugoverwa kumatunhu akasiyana, kunyanya munzvimbo dzakadzorwa.

Kana imwe dunhu isipo, traffic inoendeswa kune imwe kudzivirira kukanganisa.

NeKubernetes, unogona kushandisa zano rakafanana uye kugovera mabasa munzvimbo dzakasiyana.

Iwe unogona kuve neboka rimwe kana akawanda pachikwata, dunhu, nharaunda, kana musanganiswa wezvinhu izvi.

Masumbu ako anogona kutambirwa mumakore akasiyana uye pane-nzvimbo.

Asi unoronga sei zvivakwa zvekupararira kwenzvimbo kwakadaro?
Iwe unofanirwa kugadzira sumbu rimwe rakakura kune akati wandei makore nharaunda pamusoro penetiweki imwe chete?
Kana kuti uve nemasumbu mazhinji madiki uye uwane nzira yekudzora nekuawiriranisa?

Rimwe boka rehutungamiri

Kugadzira sumbu rimwe pamusoro penetiweki imwe hazvisi nyore.

Fungidzira iwe waita tsaona, kubatana pakati pezvikamu zvemasumbu kwarasika.

Kana iwe uine imwe master server, hafu yezviwanikwa haizokwanise kugamuchira mirairo mitsva nekuti ivo havazokwanise kubata tenzi.

Uye panguva imwe chete une matafura ekare ekufambisa (kube-proxy haigone kurodha matsva) uye hapana mamwe mapodhi (kubelet haigone kukumbira zvigadziriso).

Kuita kuti zvinhu zvinyanye kuoma, kana Kubernetes asingaone node, inoiratidza senherera uye inogovera mapodhi asipo kumanodhi aripo.

Nekuda kweizvozvo, une mapodhi akapetwa kaviri.

Kana iwe ukagadzira imwe master server yedunhu rega rega, pachave nematambudziko neagorithm yekubvumirana mune etcd dhatabhesi. (approx. ed. - Muchokwadi, iyo etcd dhatabhesi haifanirwe kunge iri pane master maseva. Inogona kuitiswa paboka rakasiyana remaseva munzvimbo imwechete. Ichokwadi, panguva imwe chete kuwana nzvimbo yekukundikana kwesumbu. Asi nokukurumidza.)

etcd inoshandisa raft algorithmkutaurirana kukosha usati wanyora kune diski.
Kureva kuti, ruzhinji rwezviitiko zvinofanirwa kusvika pakubvumirana nyika isati yanyorerwa kune etcd.

Kana iyo latency pakati etcd zviitiko zvichiwedzera zvakanyanya, sezvazvakaita kune matatu etcd zviitiko munzvimbo dzakasiyana, zvinotora nguva yakareba kutaurirana kukosha uye kuinyorera ku diski.
Izvi zvinoratidzwa muKubernetes controllers.

Mutungamiriri maneja anoda nguva yakawanda yekudzidza nezve shanduko uye kunyora mhinduro kune database.

Uye sezvo pasina mutongi mumwe, asi akati wandei, chain reaction inobuda uye cluster yese inotanga kushanda zvishoma nezvishoma.

etcd iri latency sensitive zvekuti Zvinyorwa zvepamutemo zvinokurudzira kushandisa maSDD panzvimbo yenguva dzose hard drive.

Ikozvino hapana mienzaniso yakanaka yetiweki hombe yeboka rimwechete.

Chaizvoizvo, nharaunda yekuvandudza uye boka reSIG-sumbu riri kuyedza kufunga maitiro ekuronga masumbu nenzira imwecheteyo Kubernetes inoronga midziyo.

Sarudzo 1: mubatanidzwa wemapoka ane kubefed

Mhinduro yepamutemo kubva kuSIG-cluster - kubefed2, vhezheni itsva yepakutanga kubefederation mutengi uye opareta.

Kekutanga, takaedza kubata muunganidzwa wemasumbu sechinhu chimwe chete tichishandisa kube federation chishandiso.

Kutanga kwaive kwakanaka, asi mukupedzisira kube federation haina kuzombozivikanwa nekuti yaisatsigira zvese zviwanikwa.

Iyo yakatsigira kuburitswa kwemubatanidzwa uye masevhisi, asi kwete StatefulSets, semuenzaniso.
Zvakare, iyo federation kumisikidzwa yakafambiswa nenzira yezvinyorwa uye yakanga isingachinjiki.

Fungidzira kuti iwe ungatsanangura sei replica partition yeboka rega rega mumubatanidzwa uchishandisa zvirevo chete.

Yakanga iri nyonga nyonga.

SIG-cluster yakaita basa rakawanda mushure mekubefed v1 uye yakafunga kutarisana nedambudziko kubva kune imwe kona.

Panzvimbo pezvinyorwa, vakasarudza kusunungura controller iyo yakaiswa pamasumbu. Inogona kugadzirwa uchishandisa Custom Resource Definitions (CRDs).

Kune yega yega sosi inove chikamu chemubatanidzwa, une tsika yeCRD tsananguro ine zvikamu zvitatu:

  • tsananguro yakajairika yechishandiso, semuenzaniso kutumirwa;
  • chidimbu placement, kwaunotsanangura kuti sosi yacho ichagovewa sei mumubatanidzwa;
  • chidimbu override, uko kune chaiyo sosi iwe unogona kukurira huremu uye paramita kubva pakuiswa.

Heino muenzaniso wekusanganiswa kwekutumira nekuisa uye kudarika zvikamu.

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

Sezvauri kuona, kugoverwa kunogoverwa mumasumbu maviri: cluster1 ΠΈ cluster2.

Boka rekutanga rinopa zvirevo zvitatu, uye rechipiri rakaiswa ku5.

Kana iwe uchida humwe hutongi pamusoro pehuwandu hwema replicas, kubefed2 inopa chinhu chitsva ReplicaSchedulingPreference chinhu uko replicas inogona kuyerwa:

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

Iyo CRD chimiro uye API haisati yanyatso gadzirira, uye basa rinoshanda riri kuenderera mberi mune yepamutemo purojekiti repository.

Ramba wakatarisa kubefed2, asi yeuka kuti haisati yave yakakodzera kugadzirwa.

Dzidza zvakawanda nezve kubefed2 kubva chinyorwa chepamutemo nezve kubefed2 mu blog nezve Kubernetes uye mukati chinzvimbo chepamutemo cheiyo kubefed chirongwa.

Sarudzo yechipiri: kusanganisa masumbu muBooking.com maitiro

Vagadziri veBooking.com havana kushanda pakubefed v2, asi vakauya neShipper - mushandisi wekutumira pamasumbu akati wandei, mumatunhu akati wandei uye mumakore akati wandei.

Shipper zvakada kufanana ne kubefed2.

Zvishandiso zvese zviri zviviri zvinokutendera kuti ugadzirise yako-multi-cluster deployment strategy (iyo masumbu anoshandiswa uye kuti vangani replicas vanayo).

asi Chinangwa cheShipper ndechekuderedza njodzi yekukanganisa panguva yekuendesa.

MuShipper, unogona kutsanangura nhevedzano yematanho anotsanangura kupatsanurwa kwe replicas pakati peyakare uye yazvino kutumirwa uye huwandu hweinouya traffic.

Paunosundira sosi kune sumbu, iyo Shipper controller inowedzera kuburitsa iyo shanduko kune ese akabatana masumbu.

Zvakare, Shipper ishoma.

Somuenzaniso, inogamuchira machati ehelm sekuisa uye haitsigire vanilla zviwanikwa.
Kazhinji, Shipper anoshanda seizvi.

Panzvimbo pekutumira kwakajairwa, iwe unofanirwa kugadzira chishandiso chekushandisa chinosanganisira Helm chati:

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 isarudzo yakanaka yekubata akawanda masumbu, asi hukama hwayo hwepedyo neHelm hunongopinda munzira.

Ko kana isu tese tikachinja kubva kuHelm kuenda customize kana mutungamiri?

Tsvaga zvimwe nezve Shipper uye huzivi hwayo pa iyi official press release.

Kana iwe uchida kuchera mukodhi, tungamira kunzvimbo yepamutemo yeprojekiti.

Sarudzo 3: "mashiripiti" kubatanidza sumbu

Kubefed v2 uye Shipper inoshanda necluster federation, ichipa zviwanikwa zvitsva kumasumbu kuburikidza netsika resource dudziro.

Asi ko kana iwe usingade kunyorazve zvese zvinotumirwa, StatefulSets, DaemonSets, nezvimwe kuti ubatanidze?

Nzira yekubatanidza sei sumbu riripo mumubatanidzwa pasina kuchinja YAML?

multi-cluster-scheduler chirongwa cheAdmiralty, iyo inobata nekuronga mitoro yebasa pamasumbu.

Asi pachinzvimbo chekuuya nenzira nyowani yekudyidzana neboka uye nekuputira zviwanikwa mumatsanangudzo etsika, multi-cluster-scheduler yakanyudzwa mune yakajairwa Kubernetes lifecycle uye inobata mafoni ese anogadzira pods.

Imwe neimwe yakagadzirwa pod inotsiviwa pakarepo ne dummy.

multi-cluster-scheduler inoshandisa webhooks yekuwana shandukokubata kufona uye kugadzira isina basa dummy pod.

Iyo podhi yepakutanga inoenda neimwe kutenderera kwekuronga uko, mushure mekuvhota mubatanidzwa wese, sarudzo yekuisa inoitwa.

Pakupedzisira, iyo pod inounzwa kune inotarirwa sumbu.

Nekuda kweizvozvo, iwe une imwe pod isingaite chinhu, inongotora nzvimbo.

Chakanakira ndechekuti waisafanirwa kunyora zviwanikwa zvitsva kusanganisa zvekushandisa.

Imwe neimwe sosi inogadzira pod inongogadzirira kubatanidzwa.

Izvi zvinonakidza, nekuti kamwe-kamwe une zvekushandisa zvakagoverwa kumatunhu akati wandei, uye hauna kana kumbozviona. Nekudaro, izvi zvine njodzi, nekuti zvese pano zvinotsamira pamashiripiti.

Asi nepo Shipper ari kuyedza kunyanya kudzikisira kukonzeresa kwekutakura, akawanda-masumbu-mugadziri anobata mamwe mabasa akajairwa uye pamwe anokodzera zvirinani mabasa ebatch.

Haina yepamberi zvishoma nezvishoma yekuburitsa michina.

Zvimwe pamusoro pe-multi-cluster-scheduler inogona kuwanikwa pa official repository peji.

Kana iwe uchida kuverenga nezve-multi-cluster-scheduler mukuita, Admiralty ine inonakidza yekushandisa kesi neArgo - mafambiro ebasa, zviitiko, CI uye CD Kubernetes.

Zvimwe zvishandiso uye mhinduro

Kubatanidza uye kutonga masumbu akawanda ibasa rakaoma, uye hapana mhinduro yepasirese.

Kana iwe uchida kuongorora nyaya iyi zvakare, hezvino zvimwe zvekushandisa:

Ndizvo zvanhasi chete

Ndinokutendai nekuverenga kusvika kumagumo!

Kana iwe uchiziva nzira yekubatanidza akawanda masumbu zvinobudirira, tiudze.

Isu tichawedzera nzira yako kune zvinongedzo.

Kutenda kwakakosha kuna Chris Nesbitt-Smith (Chris Nesbitt-Smith) naVincent de Sme (Vincent De Smet) (kuvimbika mainjiniya mukati swatmobile.io) yekuverenga chinyorwa uye kugovera ruzivo rwakakosha nezve mashandiro anoita mubatanidzwa.

Source: www.habr.com

Voeg