Otu esi jikọọ ụyọkọ Kubernetes na ebe data dị iche iche

Otu esi jikọọ ụyọkọ Kubernetes na ebe data dị iche iche
Nabata na usoro mmalite ngwa ngwa Kubernetes anyị. Nke a bụ kọlụm oge niile nwere ajụjụ kacha atọ ụtọ anyị na-enweta n'ịntanetị yana na nkuzi anyị. Ọkachamara Kubernetes zara.

Ọkachamara taa bụ Daniel Polenchik (Daniele Polencic). Daniel na-arụ ọrụ dị ka onye nkuzi na onye nrụpụta ngwanrọ na Mụta8s.

Ọ bụrụ na ịchọrọ azịza ajụjụ gị na post na-esote, kpọtụrụ anyị site na email ma ọ bụ Twitter: @learnk8s.

Agbaghara m posts ndị gara aga? Chọta ha ebe a.

Otu esi ejikọta ụyọkọ Kubernetes na ebe data dị iche iche?

Na nkenke: Kubefed v2 na-abịa ngwa ngwa, m na-akwadokwa ịgụ banyere ya Ppergbọ mmiri и oru ngo nke otutu-ụyọkọ-nhazi.

Ọtụtụ mgbe, a na-emegharị akụrụngwa ma kesaa n'ofe mpaghara dị iche iche, ọkachasị na gburugburu ebe a na-achịkwa.

Ọ bụrụ na otu mpaghara adịghị, a na-ebugharị okporo ụzọ gaa na nke ọzọ ka ịzenarị nkwụsị.

Site na Kubernetes, ị nwere ike iji usoro yiri ya wee kesaa ibu ọrụ n'ofe mpaghara dị iche iche.

Ị nwere ike ịnwe otu ụyọkọ ma ọ bụ karịa kwa otu, mpaghara, gburugburu ebe obibi, ma ọ bụ ngwakọta nke ihe ndị a.

Enwere ike ịkwado ụyọkọ gị n'ígwé ojii dị iche iche na n'ime ụlọ.

Mana kedu ka ị ga-esi eme atụmatụ akụrụngwa maka mgbasa mpaghara dị otú ahụ?
Ịkwesịrị ịmepụta otu nnukwu ụyọkọ maka ọtụtụ gburugburu igwe ojii n'otu netwọk?
Ma ọ bụ nwee ọtụtụ obere ụyọkọ wee chọta ụzọ ijikwa ma mekọrịta ha?

Otu ụyọkọ ndu

Ịmepụta otu ụyọkọ n'elu otu netwọk adịghị mfe.

Were ya na ị nwere ihe mberede, njikọta n'etiti ngalaba ụyọkọ efuola.

Ọ bụrụ na ị nwere otu ihe nkesa nna ukwu, ọkara nke ihe onwunwe agaghị enwe ike ịnweta iwu ọhụrụ n'ihi na ha agaghị enwe ike ịkpọtụrụ nna ukwu ahụ.

Ma n'otu oge ahụ ị nwere tebụl ụzọ ụgbọ ala ochie (kube-proxy enweghị ike ibudata nke ọhụrụ) yana enweghị mgbakwunye mgbakwunye (kubelet enweghị ike ịrịọ mmelite).

Iji mee ka ihe ka njọ, ọ bụrụ na Kubernetes ahụghị ọnụ ọnụ, ọ na-egosi ya dị ka nwa mgbei ma kesaa pods ndị na-efu efu na ọnụ ndị dị adị.

N'ihi ya, ị nwere okpukpu abụọ karịa pọd.

Ọ bụrụ na ị na-eme otu ihe nkesa nna ukwu maka mpaghara ọ bụla, a ga-enwe nsogbu na nkwekọrịta nkwekọrịta na nchekwa data wdgd. (ihe ruru. ed. - N'ezie, nchekwa data etcd ekwesịghị ịdị na sava nna ukwu. Enwere ike ịgba ya na otu sava dị iche n'otu mpaghara. N'ezie, n'otu oge ahụ na-enweta ebe ọdịda nke ụyọkọ ahụ. Ma ngwa ngwa.)

wdgd eji raft algọridimiji kparịta uru tupu ịde ya na diski.
Ya bụ, ọtụtụ ikpe ga-erute nkwekọ tupu e dee steeti ahụ na wdg.

Ọ bụrụ na nkwụsịtụ n'etiti ihe atụ etcd na-abawanye nke ukwuu, dị ka ọ dị na atọ etcd na mpaghara dị iche iche, ọ na-ewe ogologo oge iji kparịta uru ma dee ya na diski.
Nke a pụtara na ndị njikwa Kubernetes.

Onye njikwa njikwa chọrọ oge ka ukwuu iji mụta maka mgbanwe wee dee nzaghachi na nchekwa data.

Ma ebe ọ bụ na ọ dịghị otu onye njikwa, ma ọtụtụ, mmeghachi omume yinye na-arụpụta na ụyọkọ dum na-amalite ịrụ ọrụ nke ukwuu nwayọọ nwayọọ.

etcd dị nnọọ latency mmetụta na Akwụkwọ gọọmentị na-akwado iji SSD kama draịva siri ike mgbe niile.

Ugbu a enweghị ezigbo ihe atụ nke nnukwu netwọkụ maka otu ụyọkọ.

N'ụzọ bụ isi, ndị mmepe na otu SIG-ụyọkọ na-anwa ịchọpụta ka ha ga-esi hazie ụyọkọ otu ụzọ Kubernetes na-ahazi arịa.

Nhọrọ 1: ụyọkọ federation na kubefed

Nzaghachi gọọmentị sitere na SIG-ụyọkọ - kubefed2, ụdị ọhụrụ nke onye ahịa na onye ọrụ kube federation mbụ.

Maka oge mbụ, anyị gbalịrị ijikwa nchịkọta ụyọkọ dị ka otu ihe na-eji ngwá ọrụ federation kube.

Mmalite ahụ dị mma, mana n'ikpeazụ kube federation aghọghị onye ewu ewu n'ihi na ọ kwadoghị ihe niile.

Ọ kwadoro nnyefe na ọrụ akwadoro, mana ọ bụghị StatefulSets, dịka ọmụmaatụ.
Ọzọkwa, a na-ekesa nhazi nke federation n'ụdị nkọwa na ọ dịghị agbanwe agbanwe.

Cheedị ka ị ga-esi kọwaa nkewa oyiri maka ụyọkọ ọ bụla na gọọmentị site na iji naanị nkọwa.

Ọ bụ ọgbaghara zuru oke.

SIG-cluster rụrụ ọtụtụ ọrụ mgbe kubefed v1 wee kpebie ịbịaru nsogbu ahụ site n'akụkụ dị iche.

Kama nkọwa, ha kpebiri ịhapụ onye njikwa etinyere na ụyọkọ. Enwere ike ịhazi ya site na iji nkọwapụta akụrụngwa omenala (CRDs).

Maka akụrụngwa ọ bụla ga-abụ akụkụ nke gọọmentị etiti, ị nwere nkọwa CRD omenala nwere ngalaba atọ:

  • nkọwa ọkọlọtọ nke akụrụngwa, dịka ọmụmaatụ ntinye;
  • ngalaba placement, ebe ị na-akọwa otú a ga-esi kesaa ihe onwunwe na gọọmenti;
  • ngalaba override, ebe maka otu akụrụngwa ị nwere ike wezuga ibu na paramita site na ntinye.

Nke a bụ ihe atụ nke nnyefe jikọtara ọnụ yana ntinye na ngalaba kwachie.

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

Dịka ị na-ahụ, a na-ekesa ihe ndị ahụ na ụyọkọ abụọ: cluster1 и cluster2.

Ụyọkọ nke mbụ na-enye mbipute atọ, ma edobere nke abụọ ka ọ bụrụ 5.

Ọ bụrụ na ịchọrọ njikwa karịa ọnụọgụ nke oyiri, kubefed2 na-enye ihe ọhụrụ ReplicaSchedulingPreference ebe enwere ike ibugharị ihe oyiri:

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

Ihe owuwu CRD na API adịbeghị nke ọma, yana ọrụ na-arụsi ọrụ ike na-aga n'ihu na ebe nchekwa ọrụ gọọmentị.

Leba anya na kubefed2, mana cheta na ọ kabeghị mma maka mmepụta.

Mụtakwuo maka kubefed2 site na akwụkwọ akụkọ gbasara kubefed2 na blọọgụ gbasara Kubernetes na in ebe nchekwa ọrụ nke kubefed.

Nhọrọ 2: ijikọta ụyọkọ na ụdị Booking.com

Ndị mmepe nke Booking.com arụghị ọrụ na kubefed v2, mana ha bịara na Shipper - onye na-arụ ọrụ maka nnyefe na ọtụtụ ụyọkọ, n'ọtụtụ mpaghara na n'ọtụtụ igwe ojii.

Ppergbọ mmiri dịtụ ka kubefed2.

Ngwa abụọ a na-enye gị ohere ịhazi atụmatụ ntinye ọtụtụ ụyọkọ gị (nke a na-eji ụyọkọ na ọnụọgụ ole ha nwere).

Ma Ebumnuche Shipper bụ ibelata ohere nke njehie n'oge nnyefe.

Na Shipper, ị nwere ike ịkọwa usoro usoro na-akọwa nkewa nke oyiri n'etiti mbugharị gara aga na nke ugbu a yana olu nke okporo ụzọ na-abata.

Mgbe ị na-ebugharị akụrụngwa gaa na ụyọkọ, onye na-ahụ maka ụgbọ mmiri na-atụgharị mgbanwe ahụ n'ụyọkọ niile ejikọtara.

Ọzọkwa, Shipper dị oke oke.

Dịka ọmụmaatụ, ọ na-anabata chaatị hel dị ka ntinye na anaghị akwado vanilla akụrụngwa.
N'ozuzu, Shipper na-arụ ọrụ dị ka nke a.

Kama nnyefe ọkọlọtọ, ịkwesịrị ịmepụta akụrụngwa ngwa nke gụnyere eserese 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 bụ ezigbo nhọrọ maka ijikwa ọtụtụ ụyọkọ, mana mmekọrịta chiri anya ya na Helm na-ebute ụzọ.

Kedu ihe ma ọ bụrụ na anyị niile si Helm gbanwee hazie ma ọ bụ onyeisi agha?

Chọpụta ihe gbasara Shipper na nkà ihe ọmụma ya na ntọhapụ mgbasa ozi gọọmentị a.

Ọ bụrụ na ịchọrọ itinye koodu ahụ, isi na ebe nchekwa oru ngo.

Nhọrọ 3: ijikọ ụyọkọ "anwansi".

Kubefed v2 na Shipper na-arụ ọrụ na ụyọkọ ụyọkọ, na-enye akụrụngwa ọhụrụ maka ụyọkọ site na nkọwa akụrụngwa omenala.

Mana gịnị ma ọ bụrụ na ịchọghị idegharị nnyefe niile, StatefulSets, DaemonSets, wdg ka ijikọ?

Otu esi etinye ụyọkọ dị na gọọmentị na-agbanweghị YAML?

multi-cluster-scheduler bụ ọrụ Admirality, nke na-ahụ maka ịhazi oge ọrụ na ụyọkọ.

Mana kama iwepụta ụzọ ọhụrụ iji soro ụyọkọ na kechie akụrụngwa na nkọwa omenala, multi-cluster-scheduler agbakwunyere na usoro ndụ Kubernetes ọkọlọtọ ma na-egbochi oku niile na-emepụta pọd.

A na-edochi pọd ọ bụla e kere eke ozugbo na dummy.

eji otutu-ụyọkọ-nhazi oge webhooks maka nnweta mgbanweigbochi oku a wee mepụta pọọdụ na-adịghị arụ ọrụ.

Pod mbụ ahụ na-aga n'usoro nhazi ọzọ ebe, mgbe emechara ntuli aka nke gọọmentị niile, a na-eme mkpebi ntinye.

N'ikpeazụ, a na-ebuga pọd ahụ n'ụyọkọ ezubere iche.

N'ihi ya, ị nwere mgbakwunye pọd nke na-adịghị eme ihe ọ bụla, na-ewe naanị ohere.

Uru ya bụ na ịgaghị ede akụrụngwa ọhụrụ iji jikọta akụrụngwa.

Akụrụngwa ọ bụla na-emepụta pọd dị njikere na-akpaghị aka ka ejikọta ya.

Nke a na-adọrọ mmasị, n'ihi na na mberede, ị nwere akụrụngwa kesara n'ọtụtụ mpaghara, ma ị hụghị. Agbanyeghị, nke a dị oke egwu, n'ihi na ihe niile ebe a dabere na anwansi.

Mana ka Shipper na-anwa ibelata mmetụta mbufe, ọtụtụ-ụyọkọ-nhazi oge na-arụ ọrụ ndị ọzọ n'ozuzu yana ikekwe dabara adaba maka ọrụ batch.

Ọ nweghị usoro nnyefe ji nwayọọ nwayọọ dị elu.

Enwere ike ịhụ ihe ndị ọzọ gbasara usoro nhazi ọtụtụ ụyọkọ na ibe ebe nchekwa.

Ọ bụrụ na ịchọrọ ịgụ gbasara multi-cluster-scheduler na-arụ ọrụ, Admiralty nwere na-akpali ojiji ikpe na Argo - usoro ọrụ, ihe omume, CI na CD Kubernetes.

Ngwá ọrụ ndị ọzọ na ngwọta

Ijikọ na ijikwa ọtụtụ ụyọkọ bụ ọrụ dị mgbagwoju anya, ọ nweghịkwa ngwọta zuru ụwa ọnụ.

Ọ bụrụ na ịchọrọ inyocha isiokwu a n'ihu, ebe a bụ ụfọdụ akụrụngwa:

Nke ahụ bụ maka taa

Daalụ maka ịgụ akwụkwọ ruo ọgwụgwụ!

Ọ bụrụ na ị maara ka esi jikọọ ọtụtụ ụyọkọ nke ọma, gwa anyị.

Anyị ga-agbakwunye usoro gị na njikọ.

Ekele pụrụiche dịrị Chris Nesbitt-Smith (Chris Nesbitt-Smithna Vincent de Sme (Vincent De Smet) ( Injinia ntụkwasị obi na swatmobile.io) maka ịgụ akụkọ ahụ na ịkekọrịta ozi bara uru gbasara otu gọọmenti na-arụ ọrụ.

isi: www.habr.com

Tinye a comment