Leabhar “Kubernetes for DevOps”

Leabhar “Kubernetes for DevOps” Halo, luchd-còmhnaidh Khabro! Tha Kubernetes mar aon de na prìomh eileamaidean de eag-shiostam sgòthan an latha an-diugh. Tha an teicneòlas seo a’ toirt seachad earbsachd, scalability agus tapachd gu virtualization container. Bidh John Arundel agus Justin Domingus a’ bruidhinn air eag-shiostam Kubernetes agus a’ toirt a-steach fuasglaidhean dearbhte do dhuilgheadasan làitheil. Ceum air cheum, togaidh tu an tagradh dùthchasach sgòthan agad fhèin agus cruthaichidh tu am bun-structar gus taic a thoirt dha, stèidhichidh tu àrainneachd leasachaidh agus loidhne-phìoban cleachdadh leantainneach a chuidicheas tu fhad ‘s a bhios tu ag obair air na h-ath thagraidhean agad.

• Tòisich le soithichean agus Kubernetes bhon bhun-stèidh: chan eil feum air eòlas sònraichte gus an cuspair ionnsachadh. • Ruith na cruinneachaidhean agad fhèin no tagh seirbheis Kubernetes air a stiùireadh bho Amazon, Google, msaa. • Cleachd Kubernetes gus cearcall-beatha shoithichean agus caitheamh ghoireasan a riaghladh. • Leasaich cruinneachaidhean stèidhichte air cosgais, coileanadh, fulangas, cumhachd agus so-ruigsinneachd. • Ionnsaich na h-innealan as fheàrr gus na tagraidhean agad a leasachadh, a dhearbhadh agus a chleachdadh. • Cleachd cleachdaidhean gnìomhachais gnàthach gus dèanamh cinnteach à tèarainteachd agus smachd. • Cuir an gnìomh prionnsapalan DevOps air feadh a’ chompanaidh agad gus an urrainn do sgiobaidhean leasachaidh a bhith nas sùbailte, nas luaithe agus nas èifeachdaiche.

Cò dha a tha an leabhar?

Tha an leabhar nas buntainniche do luchd-obrach roinnean rianachd le uallach airson frithealaichean, tagraidhean agus seirbheisean, a bharrachd air luchd-leasachaidh a tha an sàs ann a bhith a’ togail seirbheisean sgòthan ùra no ag imrich thagraidhean a tha ann mar-thà gu Kubernetes agus an sgòth. Na gabh dragh, chan fheum fios a bhith agad mar a dh’ obraicheas tu le Kubernetes no soithichean - ionnsaichidh sinn a h-uile dad dhut.

Lorgaidh luchd-cleachdaidh eòlach Kubernetes mòran luach cuideachd, le còmhdach domhainn air cuspairean leithid RBAC, cleachdadh leantainneach, riaghladh dàta mothachail, agus faicsinneachd. Tha sinn an dòchas gum bi rudeigin inntinneach ann dhut gu cinnteach air duilleagan an leabhair, ge bith dè na sgilean agus an eòlas a th’ agad.

Dè na ceistean a tha an leabhar a’ freagairt?

Fhad ‘s a bha sinn a’ dealbhadh agus a ’sgrìobhadh an leabhair, bheachdaich sinn air teicneòlas sgòthan agus Kubernetes leis na ceudan de dhaoine, a’ bruidhinn ri stiùirichean gnìomhachais agus eòlaichean a bharrachd air luchd-tòiseachaidh iomlan. Gu h-ìosal tha ceistean taghte a bu mhath leotha fhaicinn air am freagairt san fhoillseachadh seo.

  • “Tha ùidh agam carson a bu chòir dhut ùine a chaitheamh air an teicneòlas seo. Dè na duilgheadasan a chuidicheas e mi fhìn agus an sgioba agam fhuasgladh?"
  • “Tha coltas inntinneach air Kubernetes, ach tha cnap-starra gu math àrd air faighinn a-steach. Chan eil e doirbh eisimpleir shìmplidh ullachadh, ach tha tuilleadh rianachd agus deasbaid eagallach. Bu mhath leinn comhairle earbsach fhaighinn air mar a bhios daoine a’ riaghladh cruinneachaidhean Kubernetes san fhìor shaoghal agus dè na duilgheadasan a tha romhainn."
  • “Bhiodh comhairle cuspaireil feumail. Tha eag-shiostam Kubernetes a’ toirt cus roghainnean dha sgiobaidhean ùra airson taghadh. Nuair a tha grunn dhòighean ann air an aon rud a dhèanamh, ciamar a tha fios agad dè am fear as fheàrr? Ciamar a dhèanamh roghainn?

Agus is dòcha an fheadhainn as cudromaiche de na ceistean uile:

  • “Ciamar as urrainn dhomh Kubernetes a chleachdadh gun a bhith a’ cur dragh air a ’chompanaidh agam?”

Earrann. Configuration agus nithean dìomhair

Tha an comas air loidsig tagradh Kubernetes a sgaradh bhon rèiteachadh aige (is e sin, bho luachan no suidheachadh sam bith a dh’ fhaodadh atharrachadh thar ùine) glè fheumail. Mar as trice bidh luachan rèiteachaidh a’ toirt a-steach suidheachaidhean a tha sònraichte don àrainneachd, seòlaidhean DNS seirbheis treas-phàrtaidh, agus teisteanasan dearbhaidh.

Gu dearbh, faodar seo uile a chuir gu dìreach sa chòd, ach chan eil an dòigh-obrach seo sùbailte gu leòr. Mar eisimpleir, le bhith ag atharrachadh luach rèiteachaidh dh'fheumadh tu an còd agad a thogail agus a chleachdadh a-rithist. B’ e fuasgladh fada na b’ fheàrr an rèiteachadh a sgaradh bhon chòd agus a leughadh bho fhaidhle no caochladairean àrainneachd.

Tha Kubernetes a’ toirt seachad grunn dhòighean eadar-dhealaichte airson rèiteachadh a riaghladh. An toiseach, faodaidh tu luachan a thoirt don tagradh tro chaochladairean àrainneachd a tha air an sònrachadh ann an sònrachadh còmhdach pod (faic “Caochlaidhean Àrainneachd” air duilleag 192). San dàrna àite, faodar dàta rèiteachaidh a stòradh gu dìreach ann an Kubernetes a’ cleachdadh ConfigMap agus nithean dìomhair.

Anns a’ chaibideil seo, bidh sinn a’ sgrùdadh nan nithean sin gu mionaideach agus a’ coimhead air cuid de dhòighean-obrach practaigeach airson a bhith a’ riaghladh rèiteachadh agus dàta mothachail a’ cleachdadh tagradh demo.

Ag ùrachadh shligean pod nuair a dh'atharraicheas an rèiteachadh

Smaoinich gu bheil cleachdadh agad sa bhuidheann agad agus gu bheil thu airson cuid de luachan atharrachadh anns a ConfigMap. Ma chleachdas tu an clàr Helm (faic “Helm: Manaidsear Pasgan airson Kubernetes” air duilleag 102), faodaidh tu atharrachadh rèiteachaidh a lorg gu fèin-ghluasadach agus na sligean pod agad ath-luchdachadh ann an aon chleas sgiobalta. Cuir an nota a leanas ris an t-sònrachadh cleachdadh agad:

checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
       | sha256sum }}

Anns an teamplaid cleachdadh a-nis tha seic de pharamadairean rèiteachaidh: ma thèid na paramadairean atharrachadh, thèid an t-suim ùrachadh. Ma ruitheas tu ùrachadh stiùir, lorgaidh Helm gu bheil an sònrachadh cleachdadh air atharrachadh agus ath-thòisichidh e a h-uile slige pod.

Dàta mothachail ann an Kubernetes

Tha fios againn mu thràth gu bheil an nì ConfigMap a’ toirt seachad inneal sùbailte airson a bhith a’ stòradh agus a’ faighinn cothrom air dàta rèiteachaidh ann am brabhsair. Ach, tha fiosrachadh mothachail agus mothachail aig a’ mhòr-chuid de thagraidhean, leithid faclan-faire no iuchraichean API. Faodar a stòradh cuideachd ann an ConfigMap, ach chan eil am fuasgladh seo air leth freagarrach.

An àite sin, tha Kubernetes a’ tabhann seòrsa sònraichte de nì a chaidh a dhealbhadh gus dàta mothachail a stòradh: Dìomhair. An ath rud, leig dhuinn sùil a thoirt air eisimpleir de mar a ghabhas an rud seo a chleachdadh san tagradh demo againn.

Gus tòiseachadh, thoir sùil air an taisbeanadh Kubernetes airson an nì Dhìomhair (faic hello-secret-env/k8s/secret.yaml):

apiVersion: v1
kind: Secret
metadata:
    name: demo-secret
stringData:
    magicWord: xyzzy

San eisimpleir seo, is e xyzzy an iuchair phrìobhaideach magicWord (en.wikipedia.org/wiki/Xyzzy_(computing)). Tha am facal xyzzy sa chumantas glè fheumail ann an saoghal choimpiutairean. Coltach ri ConfigMap, faodaidh tu grunn iuchraichean agus luachan a stòradh ann an nì Dìomhair. An seo, airson sìmplidheachd, cha bhith sinn a’ cleachdadh ach aon phaidhir luach-iuchrach.

A’ cleachdadh Rudan Dìomhair mar Chaochlaidhean Àrainneachd

Coltach ri ConfigMap, faodar an rud Dìomhair a thoirt seachad sa bhogsa mar chaochladairean àrainneachd no mar fhaidhle air an diosc aige. San eisimpleir a leanas, sònraichidh sinn caochladair àrainneachd ris an luach bho Secret:

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-env
          ports:
             - containerPort: 8888
          env:
             - name: GREETING
               valueFrom:
               secretKeyRef:
                  name: demo-secret
                  key: magicWord

Ruith an àithne a leanas anns an stòr demo gus na manifestos a chuir an sàs:

kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created

Mar a bha roimhe, cuir air adhart am port ionadail chun an cleachdadh gus an toradh fhaicinn sa bhrobhsair agad:

kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888

Nuair a dh'fhosglas tu seòladh localhost: 9999/ bu chòir dhut na leanas fhaicinn:

The magic word is "xyzzy"

A 'sgrìobhadh Rudan Dìomhair gu Faidhlichean

San eisimpleir seo, cuiridh sinn an rud dìomhair ris a’ ghobhar mar fhaidhle. Tha an còd suidhichte ann am pasgan hello-secret-file an stòr demo.

Gus Secret a cheangal mar fhaidhle, cleachdaidh sinn an cleachdadh a leanas:

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-file
          ports:
              - containerPort: 8888
          volumeMounts:
              - name: demo-secret-volume
                mountPath: "/secrets/"
                readOnly: true
   volumes:
      - name: demo-secret-volume
        secret:
           secretName: demo-secret

Mar a tha san fho-earrann “A’ cruthachadh faidhlichean rèiteachaidh bho nithean ConfigMap ”air td. 240, bidh sinn a’ cruthachadh tomhas-lìonaidh (sa chùis seo demo-secret-volume) agus ga chuir suas chun ghobhar anns an roinn VolumeMounts den t-sònrachadh. Is e an raon mountPath / dìomhaireachdan, agus mar sin cruthaichidh Kubernetes aon fhaidhle sa phasgan seo airson gach paidhir iuchair / luach a tha air a mhìneachadh san nì dìomhair.

Anns an eisimpleir againn, cha do mhìnich sinn ach aon phaidhir luach-iuchrach ris an canar magicWord, agus mar sin cruthaichidh am foillseachadh aon fhaidhle / dìomhaireachdan / magicWord le leughadh a-mhàin le dàta mothachail anns a’ ghobhar.

Ma chuireas tu am follaiseach seo an sàs san aon dòigh ris an eisimpleir roimhe, bu chòir dhut an aon toradh fhaighinn:

The magic word is "xyzzy"

Leughadh Rudan Dìomhair

Anns an earrann roimhe seo, chleachd sinn an àithne tuairisgeul kubectl gus susbaint ConfigMap a thaisbeanadh. An urrainnear an aon rud a dhèanamh le Secret?

kubectl describe secret/demo-secret
Name:          demo-secret

Namespace:      default
Labels:             <none>
Annotations:
Type:               Opaque

Data
====
magicWord: 5   bytes

Thoir an aire nach eil an dàta fhèin air a thaisbeanadh. Tha nithean dìomhair ann an Kubernetes de sheòrsa Neo-shoilleir, a tha a’ ciallachadh nach eil an susbaint aca air a nochdadh ann an kubectl thoir cunntas air toradh, inntrigidhean loga, no an inneal-crìochnachaidh, ga dhèanamh do-dhèanta fiosrachadh mothachail fhoillseachadh gun fhiosta.

Gus sùil a thoirt air dreach còd YAML de dhàta mothachail, cleachd an àithne kubectl get:

kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
   magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque

base64

Dè a th’ ann an eHl6enk=, gu tur eadar-dhealaichte bhon luach tùsail againn? Is e rud dìomhair a tha seo, air a riochdachadh ann an còdachadh base64. Is e sgeama a th’ ann am Base64 airson dàta dà-chànanach neo-riaghailteach a chòdachadh mar shreath de charactaran.

Leis gum faod fiosrachadh mothachail a bhith dà-chànanach agus gun a bhith air a thoirt a-mach (mar a tha fìor le iuchair crioptachaidh TLS), bidh nithean dìomhair an-còmhnaidh air an stòradh ann an cruth base64.

Is e an teacsa beHl6enk= an dreach còdaichte base64 den fhacal dìomhair againn xyzzy. Faodaidh tu seo a dhearbhadh le bhith a’ ruith an àithne base64 -decode anns a’ chrìoch:

echo "eHl6enk=" | base64 --decode
xyzzy

Mar sin, fhad ‘s a tha Kubernetes gad dhìon bho bhith a’ cuir a-mach dàta mothachail gun fhiosta anns na faidhlichean crìche no log, ma tha thu air ceadan a leughadh air nithean Dìomhair ann an àite ainm sònraichte, faodar an dàta sin a bhunait 64 agus an uairsin a chòdachadh.

Ma dh’ fheumas tu base64 cuid de theacsa a chòdachadh (mar eisimpleir, airson a chuir ann an Dìomhair), cleachd an àithne base64 gun argamaidean:

echo xyzzy | base64
eHl6enkK

A’ faighinn cothrom air Rudan Dìomhair

Cò as urrainn nithean dìomhair a leughadh agus a dheasachadh? Tha seo air a dhearbhadh le RBAC, inneal smachd ruigsinneachd (bruidhnidh sinn mu dheidhinn gu mionaideach anns an fho-earrann “Ro-ràdh gu Smachd Ruigsinneachd Stèidhichte air Dreuchd” air duilleag 258). Ma tha thu a’ ruith brabhsair aig nach eil RBAC no nach eil comasach, tha na nithean Dìomhair agad uile rim faighinn le luchd-cleachdaidh agus soithichean (mìnichidh sinn nas fhaide air adhart nach bu chòir cruinneachaidhean toraidh a bhith agad às aonais RBAC).

Crioptachadh dàta fulangach

Dè mu dheidhinn an fheadhainn aig a bheil cothrom air an stòr-dàta msaa far a bheil Kubernetes a’ stòradh a h-uile fiosrachadh? An urrainn dhaibh dàta mothachail a leughadh gun chead nithean dìomhair a leughadh tron ​​API?

Bho dhreach 1.7, tha Kubernetes a’ toirt taic do chrioptachadh dàta fulangach. Tha seo a’ ciallachadh gu bheil fiosrachadh mothachail am broinn msaa air a stòradh air a chrioptachadh air diosc agus nach gabh a leughadh eadhon leis an fheadhainn aig a bheil cothrom dìreach air an stòr-dàta. Gus a dhì-chrioptachadh, feumaidh tu iuchair nach eil ach aig an t-seirbheisiche Kubernetes API. Ann am buidheann a tha air a rèiteachadh gu ceart, bu chòir crioptachadh fulangach a bhith air a chomasachadh.

Faodaidh tu faighinn a-mach a bheil crioptachadh fulangach ag obair anns a’ bhuidheann agad san dòigh seo:

kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
        --experimental-encryption-provider-config=...

Mura faic thu a’ bhratach experimental-encryption-provider-config, chan eil crioptachadh fulangach air a chomasachadh. Nuair a bhios tu a’ cleachdadh Google Kubernetes Engine no seirbheisean riaghlaidh Kubernetes eile, tha an dàta agad air a chrioptachadh le bhith a’ cleachdadh inneal eile, agus mar sin cha bhith am bratach an làthair. Thoir sùil leis an neach-reic Kubernetes agad gus faicinn a bheil susbaint etcd air a chrioptachadh.

A’ stòradh dàta dìomhair

Tha cuid de ghoireasan Kubernetes ann nach bu chòir a thoirt air falbh bhon bhuidheann gu bràth, leithid nithean dìomhair a tha gu math mothachail. Faodaidh tu goireas a dhìon bho bhith air a sguabadh às le bhith a’ cleachdadh nota a thug manaidsear an Helm seachad:

kind: Secret
metadata:
    annotations:
        "helm.sh/resource-policy": keep

Ro-innleachdan Riaghladh Rud Dìomhair

Anns an eisimpleir bhon earrann roimhe seo, chaidh dàta mothachail a dhìon bho ruigsinneachd gun chead dìreach às deidh a bhith air a stòradh sa bhuidheann. Ach ann am faidhlichean follaiseach bha iad air an stòradh mar theacsa shìmplidh.

Cha bu chòir dhut fiosrachadh dìomhair a chuir ann am faidhlichean a tha fo smachd dreach. Ciamar as urrainn dhut am fiosrachadh seo a riaghladh agus a stòradh gu tèarainte mus cuir thu a-steach e don bhuidheann Kubernetes agad?

Faodaidh tu innealan no ro-innleachdan sam bith a thaghadh airson làimhseachadh dàta mothachail anns na tagraidhean agad, ach feumaidh tu fhathast co-dhiù na ceistean a leanas a fhreagairt.

  • Càite am bu chòir dàta mothachail a bhith air a stòradh gus am bi e gu math ruigsinneach?
  • Mar a nì thu dàta mothachail ruigsinneach dha na tagraidhean gnìomhach agad?
  • Dè a bu chòir tachairt dha na h-aplacaidean agad nuair a chuireas tu an àite no a dheasaicheas tu dàta mothachail?

Mu na h-ùghdaran

Iain Arundel na chomhairliche le 30 bliadhna de eòlas ann an gnìomhachas a’ choimpiutair. Tha e air grunn leabhraichean a sgrìobhadh agus ag obair le mòran chompanaidhean à diofar dhùthchannan, a’ toirt comhairle dhaibh air bun-structar dùthchasach sgòthan agus Kubernetes. Anns an ùine shaor aige, is toil leis a bhith a’ surfadh, tha e na shealgair daga math, agus bidh e a’ cluich a’ phiàna mar neo-dhreuchdail. A’ fuireach ann am bothan-sìthe anns a’ Chòrn, Sasainn.

Justin Domingus - innleadair rianachd shiostaman ag obair ann an àrainneachd DevOps le Kubernetes agus teicneòlasan sgòthan. Is toil leis a bhith a’ caitheamh ùine a-muigh, ag òl cofaidh, a’ crùbadh, agus a’ suidhe aig a’ choimpiutair. A’ fuireach ann an Seattle, Washington, le cat mìorbhaileach agus bean is caraid as fheàrr buileach, Adrienne.

» Gheibhear barrachd fiosrachaidh mun leabhar aig làrach-lìn foillsichear
» Clàr-innse
» Cuibhreann

Airson Khabrozhiteley lasachadh 25% a’ cleachdadh coupon - Kubernetes

Nuair a thèid dreach pàipeir den leabhar a phàigheadh, thèid leabhar eileagtronaigeach a chuir air post-d.

Source: www.habr.com

Cuir beachd ann