Boky "Kubernetes ho an'ny DevOps"

Boky "Kubernetes ho an'ny DevOps" Salama ry mponina ao Khabro! Kubernetes dia iray amin'ireo singa fototra amin'ny tontolon'ny rahona maoderina. Ity teknôlôjia ity dia manome fahatokisana, scalability ary faharetana amin'ny virtoaly container. John Arundel sy Justin Domingus dia miresaka momba ny tontolo iainana Kubernetes ary manolotra vahaolana voaporofo amin'ny olana andavanandro. Isaky ny dingana, dia hanangana ny rindranasa rahonao manokana ianao ary hamorona fotodrafitrasa hanohanana azy, hanangana tontolo fampandrosoana ary fantsona fandefasana mitohy izay hanampy anao rehefa miasa amin'ny rindranasa manaraka ianao.

• Manomboha amin'ny kaontenera sy Kubernetes amin'ny fototra: tsy mila traikefa manokana hianarana ny lohahevitra. • Mandehana ny vondronao manokana na mifidiana serivisy Kubernetes voatanisa avy amin'ny Amazon, Google, sns. • Mampiasà Kubernetes hitantana ny tsingerin'ny fiainan'ny kaontenera sy ny fanjifana loharanon-karena. • Amboary ny cluster mifototra amin'ny vidiny, ny fahombiazany, ny faharetana, ny hery ary ny scalability. • Mianara ny fitaovana tsara indrindra hamolavolana, hizaha toetra ary hampiasa ny fampiharanao. • Ampiasao ny fomba fanao amin'ny indostria ankehitriny mba hiantohana ny fiarovana sy ny fanaraha-maso. • Ampiharo ny fitsipiky ny DevOps manerana ny orinasanao mba hahafahan'ny ekipan'ny fampandrosoana miasa amin'ny fomba mora kokoa, haingana ary mahomby.

Ho an'iza ilay boky?

Ny boky dia manan-danja indrindra ho an'ny mpiasan'ny sampan-draharaham-pitantanana tompon'andraikitra amin'ny lohamilina, fampiharana ary serivisy, ary koa ho an'ny mpamorona tafiditra amin'ny fananganana serivisy rahona vaovao na mifindra monina amin'ny Kubernetes sy ny rahona. Aza manahy, tsy mila mahafantatra ny fomba fiasa miaraka amin'ny Kubernetes na container ianao - hampianatra anao ny zava-drehetra izahay.

Ireo mpampiasa Kubernetes za-draharaha dia hahita sanda be dia be ihany koa, miaraka amin'ny fandrakofana lalina ny lohahevitra toy ny RBAC, ny fametrahana tsy tapaka, ny fitantanana angon-drakitra saro-pady ary ny fanaraha-maso. Manantena izahay fa ny pejin'ny boky dia tena ahitana zavatra mahaliana ho anao, na inona na inona fahaiza-manao sy traikefa.

Fanontaniana inona no valian’ilay boky?

Teo am-panomanana sy nanoratra ilay boky dia niresaka momba ny teknolojia rahona sy ny Kubernetes niaraka tamin'olona an-jatony izahay, niresaka tamin'ireo mpitarika ny indostria sy ny manam-pahaizana ary koa ireo vaovao tanteraka. Ireto ambany ireto ny fanontaniana voafantina tian'izy ireo hovaliana ato amin'ity boky ity.

  • “Liana aho hoe nahoana ianao no tokony handany fotoana amin'ity teknolojia ity. Inona avy ireo olana hanampy ahy sy ny ekipako hamahana izany?”
  • “Toa mahaliana ny Kubernetes, saingy manana sakana avo be amin'ny fidirana. Ny fanomanana ohatra tsotra dia tsy sarotra, fa ny fitantanana fanampiny sy ny debugging dia mampatahotra. Te-hahazo torohevitra azo itokisana izahay momba ny fomba hitantanan'ny olona ny cluster Kubernetes amin'ny tontolo tena izy sy ny olana mety ho tojo anay. "
  • “Mety hahasoa ny torohevitra mahasoa. Ny ecosystem Kubernetes dia manome safidy maro ho an'ny ekipa vaovao azo isafidianana. Rehefa misy fomba maromaro hanaovana zavatra mitovy, ahoana no ahafantaranao hoe iza no tsara indrindra? Ahoana no hanaovana safidy?

Ary angamba ny tena manan-danja amin'ny fanontaniana rehetra:

  • “Ahoana no ahafahako mampiasa Kubernetes nefa tsy manelingelina ny orinasako?”

Sombiny. Configuration sy zavatra miafina

Tena ilaina ny fahafahana manasaraka ny lojikan'ny fampiharana Kubernetes amin'ny firafiny (izany hoe, amin'ny soatoavina rehetra mety hiova rehefa mandeha ny fotoana). Ny sandan'ny config dia matetika ahitana fika manokana momba ny tontolo iainana, adiresy DNS serivisy an'ny antoko fahatelo, ary fahazoan-dàlana fanamarinana.

Mazava ho azy, izany rehetra izany dia azo apetraka mivantana ao amin'ny kaody, saingy io fomba fiasa io dia tsy ampy. Ohatra, ny fanovana ny sandan'ny fandrindrana dia mitaky anao hanangana sy hametraka indray ny kaody. Ny vahaolana tsara kokoa dia ny manasaraka ny fandrindrana amin'ny kaody ary mamaky azy amin'ny rakitra na fari-piainana.

Ny Kubernetes dia manome fomba maro samihafa hitantana ny fikirakirana. Voalohany, azonao atao ny mampita ny soatoavina amin'ny fampiharana amin'ny alàlan'ny fari-piainan'ny tontolo iainana voatondro ao amin'ny fanoritsoritana pod wrapper (jereo ny “Environment Variables” ao amin'ny pejy 192). Faharoa, azo tehirizina mivantana ao amin'ny Kubernetes ny angon-drakitra fanamafisana amin'ny fampiasana zavatra ConfigMap sy Secret.

Ato amin'ity toko ity dia mandinika amin'ny antsipiriany ireo zavatra ireo isika ary mijery fomba azo ampiharina amin'ny fitantanana ny fikirakirana sy ny angona saro-pady amin'ny fampiasana fampiharana demo.

Fanavaozana ny akorandriaka pod rehefa miova ny fanovana

Alaivo sary an-tsaina hoe manana fametrahana ao amin'ny cluster ianao ary te hanova soatoavina sasany ao amin'ny ConfigMap. Raha mampiasa ny sarin'ny Helm ianao (jereo ny “Helm: Package Manager for Kubernetes” ao amin'ny pejy 102), dia azonao atao ny mamantatra avy hatrany ny fiovan'ny fandrindrana ary mamerina mamerina ny akorandriaka pod anao amin'ny fitaka tsara. Ampio ity fanamarihana manaraka ity amin'ny famaritana ny fametrahanao:

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

Ny môdelin'ny fanaparitahana izao dia misy santionany amin'ny masontsivana fanitsiana: raha ovaina ny masontsivana dia havaozina ny vola. Raha manao fanavaozana helm ianao, dia ho hitan'i Helm fa niova ny famaritana ny fametrahana ary hamerina ny akorandriaka pod rehetra.

Angona saropady ao amin'ny Kubernetes

Efa fantatsika fa ny zavatra ConfigMap dia manome mekanika mora azo amin'ny fitehirizana sy fidirana amin'ny angon-drakitra fanamafisana ao anaty cluster. Na izany aza, ny ankamaroan'ny fampiharana dia manana fampahalalana saro-pady sy saro-pady, toy ny tenimiafina na fanalahidin'ny API. Azo tehirizina ao amin'ny ConfigMap ihany koa izy io, saingy tsy mety io vahaolana io.

Fa kosa, Kubernetes dia manolotra karazana zavatra manokana natao hitahirizana angona saro-pady: Secret. Manaraka, andeha hojerentsika ohatra ny fomba azo ampiasana an'io zavatra io amin'ny fampiharana demo.

Hanombohana, jereo ny fanehoana Kubernetes momba ny zava-miafina (jereo hello-secret-env/k8s/secret.yaml):

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

Amin'ity ohatra ity, ny fanalahidy manokana magicWord dia xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)). Ny teny xyzzy amin'ny ankapobeny dia tena ilaina amin'ny tontolon'ny solosaina. Mitovy amin'ny ConfigMap, azonao atao ny mitahiry fanalahidy sy soatoavina maro ao anaty zavatra miafina. Eto, ho an'ny fahatsorana, dia tsy mampiasa afa-tsy mpivady manan-danja iray isika.

Mampiasa zava-miafina ho toy ny fari-piainan'ny tontolo iainana

Tahaka ny ConfigMap, ny zavatra miafina dia azo atao ao amin'ny fitoeran-javatra toy ny fari-piainan'ny tontolo iainana na toy ny rakitra ao amin'ny kapilany. Amin'ity ohatra manaraka ity, dia hanendry fari-piainana manodidina ny sanda avy amin'ny Secret isika:

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

Ampandehano ao amin'ny tahiry demo ity baiko manaraka ity mba hampiharana ny manifests:

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

Toy ny teo aloha, ampidiro ny seranan-tsambo eo an-toerana amin'ny fametrahana mba hahitana ny vokatra ao amin'ny navigateur:

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

Rehefa manokatra adiresy localhost:9999/ tokony ho hitanao ireto manaraka ireto:

The magic word is "xyzzy"

Manoratra zavatra miafina amin'ny rakitra

Amin'ity ohatra ity, hametahana ny zavatra miafina amin'ny fitoeran-javatra ho rakitra. Ny kaody dia hita ao amin'ny lahatahiry hello-secret-file an'ny tahiry demo.

Mba hampifandraisana ny Secret ho toy ny rakitra, dia hampiasa ity fametrahana manaraka ity izahay:

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

Toy ny ao amin'ny fizarana "Mamorona rakitra fanamafisana avy amin'ny zavatra ConfigMap" eo amin'ny p. 240, mamorona boky isika (amin'ity tranga ity, demo-secret-volume) ary apetaho amin'ny fitoeran-javatra ao amin'ny fizarana volumeMounts amin'ny famaritana. Ny saha mountPath dia / tsiambaratelo, noho izany dia hamorona rakitra iray ao amin'ity lahatahiry ity i Kubernetes ho an'ny mpivady fanalahidy / sanda tsirairay voafaritra ao amin'ny zava-miafina.

Ao amin'ny ohatra ataontsika, dia namaritra marika tokana tokana antsoina hoe magicWord izahay, noho izany dia hamorona rakitra / tsiambaratelo / magicWord tokana miaraka amin'ny angona saro-pady ao anaty fitoeran-javatra ilay manifest.

Raha toa ianao ka mampihatra ity fanehoana ity amin'ny fomba mitovy amin'ny ohatra teo aloha, dia tokony hahazo vokatra mitovy ianao:

The magic word is "xyzzy"

Famakiana zavatra miafina

Ao amin'ny fizarana teo aloha, nampiasa ny baiko famaritana kubectl izahay mba hampisehoana ny votoatin'ny ConfigMap. Afaka manao toy izany koa ve ny Secret?

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

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

Data
====
magicWord: 5   bytes

Mariho fa ny angon-drakitra mihitsy no tsy aseho. Ny zavatra miafina ao amin'ny Kubernetes dia karazana Opaque, izay midika fa tsy hita ao amin'ny kubectl mamaritra ny vokatra, ny fidirana amin'ny log, na ny terminal ny atiny, ka tsy afaka manambara tsy nahy ny vaovao saro-pady.

Raha hijerena dikan-teny YAML misy kaody saro-pady, ampiasao ny baiko kubectl get:

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

base64

Inona no atao hoe eHl6enk=, hafa tanteraka amin'ny sandantsika tany am-boalohany? Raha ny marina dia zavatra miafina ity, aseho amin'ny famandrihana base64. Base64 dia tetika handrafetana angon-drakitra mimari-droa tsy misy dikany ho andian-tsoratra.

Satria ny fampahalalam-baovao saro-pady dia mety ho mimari-droa fa tsy mivoaka (toy ny tranga amin'ny fanalahidin'ny TLS), ny zavatra miafina dia voatahiry amin'ny endrika base64 foana.

Ny lahatsoratra beHl6enk= dia ny dikan-teny voadika base64 amin'ny teny miafina xyzzy. Azonao atao ny manamarina izany amin'ny alàlan'ny fampandehanana ny baiko base64 -decode ao amin'ny terminal:

echo "eHl6enk=" | base64 --decode
xyzzy

Noho izany, raha miaro anao amin'ny famoahana tsy nahy ny angon-drakitra saro-pady ao amin'ny terminal na rakitra log ny Kubernetes, raha namaky ny fahazoan-dàlana tamin'ny zavatra miafina ao amin'ny namespace manokana ianao, dia mety ho base64ed izany data izany ary avy eo voadika.

Raha toa ianao ka mila base64 mandika lahatsoratra sasany (ohatra, mametraka azy ao anaty tsiambaratelo), ampiasao ny baiko base64 tsy misy adihevitra:

echo xyzzy | base64
eHl6enkK

Fidirana amin'ny zavatra miafina

Iza no afaka mamaky sy manova zavatra miafina? Ny RBAC no mamaritra izany, rafitra fanaraha-maso ny fidirana (hodinihintsika amin'ny antsipiriany ao amin'ny fizarana "Fampidirana ny Fanaraha-maso ny fidirana amin'ny anjara andraikitra" ao amin'ny pejy 258). Raha toa ianao ka mitantana kluster tsy manana RBAC na tsy mandeha, ny zavatra miafina rehetra dia azon'ny mpampiasa sy ny kaontenera rehetra (hazavainay any aoriana fa tsy tokony hanana cluster famokarana tsy misy RBAC ianao).

Fanafenana data passive

Ahoana ny amin'ireo izay afaka miditra amin'ny angon-drakitra etcd izay itehirizan'i Kubernetes ny mombamomba azy rehetra? Afaka mamaky angon-drakitra saro-pady ve izy ireo nefa tsy mahazo alalana hamaky zavatra miafina amin'ny alàlan'ny API?

Hatramin'ny dikan-1.7, Kubernetes dia manohana ny fanafenana angon-drakitra passive. Midika izany fa ny fampahalalana saro-pady ao anaty etcd dia voatahiry ao anaty kapila ary tsy azo vakina na dia ireo manana fidirana mivantana amin'ny tahiry aza. Mba hamongorana azy dia mila fanalahidy izay ny mpizara Kubernetes API ihany no manana. Ao amin'ny kluster voarindra tsara dia tokony alefa ny encryption passive.

Azonao atao ny manamarina raha miasa ao amin'ny cluster anao ny encryption passive toy izao:

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

Raha tsy hitanao ny saina experimental-encryption-provider-config dia tsy mandeha ny encryption passive. Rehefa mampiasa Google Kubernetes Engine na serivisy fitantanana Kubernetes hafa, ny angonao dia voarakotra amin'ny alalan'ny rafitra hafa, ka tsy hisy ny saina. Hamarino amin'ny mpivarotra Kubernetes anao raha toa ka misy encryption ny atiny etcd.

Mitahiry angona tsiambaratelo

Misy loharanon-karena Kubernetes izay tsy tokony esorina mihitsy ao amin'ny cluster, toy ny zavatra miafina saro-pady. Azonao atao ny miaro loharano tsy ho voafafa amin'ny alàlan'ny fanamarihana nomen'ny mpitantana Helm:

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

Tetikady fitantanana zava-miafina

Ao amin'ny ohatra avy amin'ny fizarana teo aloha, ny angona saropady dia voaaro amin'ny fidirana tsy nahazoana alalana avy hatrany rehefa voatahiry ao amin'ny cluster. Fa amin'ny rakitra manifesana dia voatahiry ho lahatsoratra tsotra izy ireo.

Tsy tokony hametraka fampahalalana tsiambaratelo amin'ny rakitra izay ao amin'ny fifehezana dikan-teny. Ahoana no ahafahanao mitantana sy mitahiry ity fampahalalana ity alohan'ny hampiharana azy amin'ny cluster Kubernetes anao?

Azonao atao ny misafidy fitaovana na tetika hifehezana ny angona saro-pady ao amin'ny rindranasao, saingy mbola mila mamaly ireto fanontaniana manaraka ireto farafaharatsiny ianao.

  • Aiza no tokony hitehirizana angon-drakitra saro-pady mba ho mora azo?
  • Ahoana ny fomba hahatonga ny angona saro-pady ho azon'ny rindranasa mavitrika anao?
  • Inona no tokony hitranga amin'ny fampiharanao rehefa manolo na manova angona saro-pady ianao?

Momba ny mpanoratra

John Arundel dia mpanolo-tsaina manana traikefa 30 taona amin'ny indostrian'ny solosaina. Nanoratra boky maromaro izy ary niara-niasa tamin'ny orinasa maro avy amin'ny firenena samihafa, nanoro hevitra azy ireo momba ny fotodrafitrasa rahona sy ny Kubernetes. Amin'ny fotoam-pahalalany dia mankafy surf izy, mahay mitifitra poleta ary mitendry piano amin'ny maha mpilalao azy. Mipetraka ao amin'ny trano bongo angano any Cornwall, Angletera.

Justin Dominus - injeniera fitantanana rafitra miasa amin'ny tontolo DevOps miaraka amin'ny Kubernetes sy ny teknolojia rahona. Tiany ny mandany fotoana any ivelany, misotro kafe, mifoka foza, ary mipetraka eo amin’ny ordinatera. Mipetraka any Seattle, Washington, miaraka amin'ny saka mahafinaritra ary vady mahafinaritra kokoa ary namana tsara indrindra, Adrienne.

» Ny antsipiriany bebe kokoa momba ny boky dia azo jerena ao amin'ny tranokalan'ny mpanonta
» Lohahevitra misy
» ampahany

Ho an'ny Khabrozhiteley fihenam-bidy 25% amin'ny fampiasana tapakila - Kubernetes

Rehefa mandoa ny dikan-taratasy amin'ny taratasy dia misy boky elektronika halefa amin'ny mailaka.

Source: www.habr.com

Add a comment