Operators ho an'ny Kubernetes: ahoana ny fomba fampandehanana ny fampiharana amin'ny fanjakana

Ny olana amin'ny fampiharana ara-panjakana ao Kubernetes

Ny fanamafisana, ny fandefasana ary ny fampitomboana bebe kokoa ny fampiharana sy ny serivisy dia mora rehefa misy tranga voasokajy ho tsy misy fanjakana, i.e. tsy mitahiry data. Tsara ny mampandeha serivisy toy izany ao amin'ny Kubernetes, amin'ny fampiasana ny API mahazatra azy, satria ny zava-drehetra dia mitranga "tsy anaty boaty": araka ny fanamafisam-peo mahazatra, tsy misy fepetra manokana na majika.

Raha tsorina, raha handefa dika dimy fanampiny amin'ny backend ao amin'ny PHP/Ruby/Python ao anaty vondron-kaontenera iray, dia mila manangana mpizara vaovao in-5 ianao ary mandika ny loharano. Satria samy ao amin'ny sary ny kaody loharano sy ny sora-baventy init, ny fampitomboana ny fampiharana tsy misy fanjakana dia lasa fototra tanteraka. Araka ny fantatry ny mpankafy ny kaontenera sy ny maritrano microservice dia manomboka ny fahasarotana fampiharana stateful, i.e. miaraka amin'ny fikirizana angon-drakitra toy ny angon-drakitra sy ny cache (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra...). Izany dia mihatra amin'ireo rindrankajy izay mametraka tsy miankina ny kôlejy (ohatra, Percona XtraDB sy Cassandra), ary ny rindrambaiko izay mitaky fitaovana fitantanana misaraka (toy ny Redis, MySQL, PostgreSQL...).

Mipoitra ny fahasahiranana satria tsy ampy intsony ny kaody loharano sy ny fandefasana ny serivisy - mila manao dingana fanampiny ianao. Farafaharatsiny, kopia ny angona ary/na midira ao amin'ny cluster. Raha ny marimarina kokoa, ireo tolotra ireo dia mitaky fahatakarana ny fomba fampitomboana araka ny tokony ho izy, fanavaozana ary fanamboarana azy ireo tsy misy fahaverezan'ny angona na tsy fisiana vonjimaika. Ny fandraisana ireo filàna ireo dia antsoina hoe "fahalalana momba ny asa".

CoreOS Operators

Mba "fandaharana" fahalalana momba ny asa, tamin'ny faran'ny taona lasa ny tetikasa CoreOS nanaiky “kilasy rindrambaiko vaovao” ho an'ny sehatra Kubernetes - Operators (avy amin'ny teny anglisy “operation”, izany hoe “operation”).

Mpampiasa mampiasa sy manitatra ny fahaiza-manaon'ny Kubernetes (anisan'izany. StatefulSets, jereo ny fahasamihafana eto ambany) mamela ny manam-pahaizana DevOps manampy fahalalana momba ny asa amin'ny kaody fampiharana.

Ny tanjon'ny mpandraharaha - Omeo API ny mpampiasa izay ahafahanao mitantana sampan-draharaham-panjakana maro ao amin'ny kluster Kubernetes, tsy mieritreritra ny ao ambanin'ny saron-tava (inona no angon-drakitra sy ny tokony hatao amin'izany, inona ny baiko mbola tokony hotanterahina mba hitazonana ny cluster ). Raha ny marina, ny Opérateur dia natao hanatsotra ny asa miaraka amin'ny fampiharana ao anatin'ny cluster araka izay azo atao, manao automatique ny fanatanterahana ny asa fampandehanana izay tsy maintsy novahana tamin'ny tanana teo aloha.

Ahoana ny fiasan'ny Opérateurs

ReplicaSets Ny Kubernetes dia ahafahanao mamaritra ny isan'ny pods mandeha, ary ny mpanara-maso dia miantoka fa voatazona ny isany (amin'ny famoronana sy famafana pods). Miasa toy izany koa ny Opérateur iray, manampy andiana fahalalana fampandehanana amin'ny loharanon'ny Kubernetes mahazatra sy mpanara-maso izay ahafahanao manao hetsika fanampiny hanohanana ny isan'ny sampana fampiharana ilaina.

Ahoana no maha samy hafa azy amin'ny StatefulSets, natao ho an'ny rindranasa mitaky ny cluster mba hanome azy ireo loharanon-karena toy ny fitahirizana data na IP static? Ho an'ny fampiharana toy izany, ny Operator dia afaka mampiasa StatefulSets (fa tsy ReplicaSets) ho fototra, fanolorana automation fanampiny: Manaova ny hetsika ilaina raha sendra misy fianjerana, manao backup, manavao ny configuration, sns.

Ary noho izany, manao ahoana izany rehetra izany? Ny mpandraharaha dia daemon mpitantana izay:

  1. misoratra anarana amin'ny API hetsika ao amin'ny Kubernetes;
  2. mandray avy aminy angon-drakitra momba ny rafitra (momba ny ReplicaSets, pods, Services sy ny sisa.);
  3. mandray angona momba ny Loharanon'ny Antoko fahatelo (jereo ohatra etsy ambany);
  4. mamaly ny endrika/fiovana Loharanon'ny Antoko fahatelo (ohatra, hanova ny habeny, hanova ny dikan-teny, sy ny sisa);
  5. Mihetsika amin'ny fiovan'ny toetry ny rafitra (momba ny ReplicaSets, pods, Services sy ny sisa.);
  6. ny tena zavadehibe:
    1. miantso ny Kubernetes API hamorona izay rehetra ilainy (indray, ny azy ReplicaSets, pods, Services...),
    2. manao majika sasany (mba hanatsorana, azonao atao ny mieritreritra fa ny Operator dia miditra ao amin'ny pods ary miantso baiko, ohatra, hanatevin-daharana ny cluster na hanatsara ny format data rehefa manavao dikan-teny).

Operators ho an'ny Kubernetes: ahoana ny fomba fampandehanana ny fampiharana amin'ny fanjakana
Raha ny marina, araka ny hita amin'ny sary, fampiharana misaraka dia ampiana fotsiny amin'ny Kubernetes (a regular fanapariahana с ReplicaSet), izay antsoina hoe Operator. Mipetraka ao anaty pod mahazatra izy (matetika iray ihany) ary, amin'ny ankapobeny, dia tompon'andraikitra amin'ny azy ihany Anaran-tsehatra. Ity fampiharana mpandraharaha ity dia mampihatra ny API-ny ​​- na dia tsy mivantana aza, fa amin'ny alàlan'ny Loharanon'ny Antoko fahatelo amin'ny Kubernetes.

Noho izany, rehefa avy namorona in Anaran-tsehatra Operator, azontsika ampiana izany Loharanon'ny Antoko fahatelo.

Ohatra ho an'ny etcd (jereo eto ambany ny antsipiriany):

apiVersion: etcd.coreos.com/v1beta1
kind: Cluster
metadata:
  name: example-etcd-cluster
spec:
  size: 3
  version: 3.1.0

Ohatra ho an'ny Elasticsearch:

apiVersion: enterprises.upmc.com/v1
kind: ElasticsearchCluster
metadata:
  name: example-es-cluster
spec:
  client-node-replicas: 3
  master-node-replicas: 2
  data-node-replicas: 3
  zones:
  - us-east-1c
  - us-east-1d
  - us-east-1e
  data-volume-size: 10Gi
  java-options: "-Xms1024m -Xmx1024m"
  snapshot:
    scheduler-enabled: true
    bucket-name: elasticsnapshots99
    cron-schedule: "@every 2m"
  storage:
    type: gp2
    storage-class-provisioner: kubernetes.io/aws-ebs

Fepetra ho an'ny mpandraharaha

Ny CoreOS dia namolavola ny lamina lehibe azon'ny injeniera nandritra ny niasa tamin'ny Operators. Na dia eo aza ny zava-misy fa ny Opérateurs rehetra dia tsirairay (natsangana ho an'ny fampiharana manokana miaraka amin'ny toetrany sy ny filany), ny famoronana azy ireo dia tsy maintsy mifototra amin'ny karazana rafitra izay mametraka ireto fepetra manaraka ireto:

  1. Ny fametrahana dia tsy maintsy atao amin'ny alalan'ny tokana fanapariahana: kubectl mamorona -f SOME_OPERATOR_URL/deployment.yaml - ary tsy mila hetsika fanampiny.
  2. Rehefa mametraka Operator ao amin'ny Kubernetes dia tsy maintsy mamorona karazana antoko fahatelo vaovao (Third PartyResource). Hanombohana ireo trangan-javatra (instance cluster) ary hitantana azy ireo bebe kokoa (fanavaozana ny dikan-teny, fanovana ny habeny, sns.), Ny mpampiasa dia hampiasa ity karazana ity.
  3. Raha azo atao dia tokony hampiasa ny primitives naorina ao amin'ny Kubernetes ianao, toy ny Services и ReplicaSetsmampiasa kaody voasedra sy azo takarina.
  4. Mitaky fampifanarahana mihemotra amin'ny Opérateurs sy fanohanana ireo loharanon-karena noforonin'ny mpampiasa taloha.
  5. Raha esorina ny Opérateur dia tokony hanohy hiasa tsy misy fiovana ny fampiharana.
  6. Ny mpampiasa dia tokony ho afaka mamaritra ny kinova fampiharana tiana ary mandrindra ny fanavaozana ny kinova fampiharana. Ny tsy fahampian'ny fanavaozana rindrambaiko dia loharano mahazatra amin'ny olana amin'ny fampandehanana sy ny fiarovana, noho izany dia tsy maintsy manampy ny mpampiasa amin'ity raharaha ity ny Operator.
  7. Ny mpandraharaha dia tokony hotsapaina amin'ny fitaovana toy ny Chaos Monkey, izay mamaritra ny mety ho tsy fahombiazana amin'ny pods, configurations ary ny tambajotra.

etcd Operator

Ohatra amin'ny fampiharana opérateur - snsd Operator, vonona tamin'ny andro nanambarana an'io hevitra io. Ny fanamafisana kluster etcd dia mety ho sarotra noho ny filàna ny fitazonana kôlejy, ny filàna fanavaozana ny mpikambana ao amin'ny cluster, ny famoronana backups, sns. Ohatra, ny fametahana tanana amin'ny cluster etcd dia midika fa mila mamorona anarana DNS ho an'ny mpikambana cluster vaovao ianao, manomboka orinasa snsd vaovao, ary mampitandrina ny cluster momba ny mpikambana vaovao (etcdctl mpikambana add). Raha ny momba ny Operator, ny mpampiasa dia mila manova ny haben'ny cluster - ny zavatra hafa rehetra dia hitranga ho azy.

Ary satria noforonina tao amin'ny CoreOS koa ny etcd, dia mitombina tsara ny mahita ny Operator azy voalohany. Ahoana no fiasana? Lojika operator sns dia faritana amin'ny singa telo:

  1. Diniho. Ny mpandraharaha dia manara-maso ny toetry ny cluster amin'ny alàlan'ny Kubernetes API.
  2. Famakafakana. Mitadiava fahasamihafana eo amin'ny sata ankehitriny sy ny tiana (voafaritry ny tefin'ny mpampiasa).
  3. Action. Mamaha ny tsy fitoviana hita amin'ny alàlan'ny API serivisy snsd sy/na Kubernetes.

Operators ho an'ny Kubernetes: ahoana ny fomba fampandehanana ny fampiharana amin'ny fanjakana

Mba hampiharana an'io lojika io dia efa nomanina ny asa ao amin'ny Operator Mamorona/Ravao (mamorona sy mamafa mpikambana ao amin'ny cluster etcd) ary hanova haben (fiovan'ny isan'ny mpikambana cluster). Ny fahamarinan'ny asany dia nojerena tamin'ny fampiasana fitaovana noforonina mitovy amin'ny Chaos Monkey avy amin'ny Netflix, i.e. mamono sns pods kisendrasendra.

Ho an'ny fampandehanana feno snsd, ny Operator dia manome endri-javatra fanampiny: nomaniny ho solon'izay (automatique sy tsy hitan'ny mpampiasa ny famoronana kopia backup - ao amin'ny config dia ampy ny mamaritra hoe impiry ny hanaovana azy ireo sy ny isan'ny tehirizina - ary ny famerenana amin'ny laoniny ny angona avy aminy) ary fanavaozana (fanavaozana ny fametrahana sns tsy misy fiatoana).

Ahoana ny fiasan'ny Opérateur?

$ kubectl create -f https://coreos.com/operators/etcd/latest/deployment.yaml
$ kubectl create -f https://coreos.com/operators/etcd/latest/example-etcd-cluster.yaml
$ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
etcd-cluster-0000                1/1       Running   0          23s
etcd-cluster-0001                1/1       Running   0          16s
etcd-cluster-0002                1/1       Running   0          8s
etcd-cluster-backup-tool-rhygq   1/1       Running   0          18s

Ny satan'ny etcd Operator amin'izao fotoana izao dia dika beta, mitaky Kubernetes 1.5.3+ sy etcd 3.0+ mba hihazakazaka. Ny kaody loharano sy ny antontan-taratasy (anisan'izany ny torolàlana ampiasaina) dia hita ao amin'ny GitHub.

Ohatra iray hafa fampiharana avy amin'ny CoreOS dia noforonina - Prometheus Operator, fa mbola ao amin'ny version alpha (tsy ny endri-javatra nomanina rehetra no nampiharina).

Sata sy fanantenana

5 volana no lasa hatramin'ny nanambarana ny Kubernetes Operators. Mbola misy fampiharana roa ihany no hita ao amin'ny tahiry ofisialy CoreOS (ho an'ny etcd sy Prometheus). Samy tsy mbola tonga amin'ny dikan-teny marin-toerana, fa ny commit dia tandremana isan'andro.

Ny mpamorona dia mihevitra fa "ho avy izay ametrahan'ny mpampiasa Postgres Operators, Cassandra Operators na Redis Operators amin'ny clusters Kubernetes ary miara-miasa amin'ireo sampan-draharahan'ireo fampiharana ireo mora kokoa amin'ny fametrahana kopia amin'ny fampiharana tranonkala tsy misy fanjakana amin'izao fotoana izao." VOALOHANY Mpampiasa avy amin'ny mpamorona antoko fahatelo tena nanomboka niseho:

  • Elasticsearch Operator avy amin'ny UPMC Enterprises;
  • PostgreSQL Operator avy amin'ny Crunchy Data (nambara tamin'ny faran'ny volana martsa 2017);
  • Rook Operator avy amin'ny mpanoratra ny rafitra fitahirizana angon-drakitra voazara mifototra amin'ny Ceph (Rook dia ao amin'ny sata alpha);
  • Opentack Operators avy amin'ny SAP CCloud.

Nandritra ny fihaonambe lehibe indrindra amin'ny rindrambaiko malalaka Eoropeana FOSDEM, izay natao tamin'ny Febroary 2017 tany Bruxelles, Josh Wood avy amin'ny CoreOS dia nanambara ny Opérateurs in tatitra (misy horonan-tsary hita ao amin'ny rohy!), izay tokony handray anjara amin'ny fitomboan'ny lazan'ity hevitra ity amin'ny vondrom-piarahamonina Open Source midadasika kokoa.

Sal Misaotra noho ny fahaliananao tamin'ilay lahatsoratra! Misoratra anarana amin'ny foibenay, mba tsy ho diso fitaovana sy fomba fanamboarana vaovao momba ny fitantanana ny rafitra DevOps sy GNU/Linux - havoakanay tsy tapaka!

Source: www.habr.com

Add a comment