Luchd-obrachaidh airson Kubernetes: mar a ruitheas tu tagraidhean stàiteil

An duilgheadas le tagraidhean stàiteil ann an Kubernetes

Tha e furasta a bhith a’ rèiteachadh, a’ cur air bhog agus a’ sgapadh tuilleadh thagraidhean is sheirbheisean nuair a thig e gu cùisean a tha air an seòrsachadh mar gun stàit, i.e. gun a bhith a’ sàbhaladh dàta. Tha e goireasach a leithid de sheirbheisean a ruith ann an Kubernetes, a ’cleachdadh na APIan àbhaisteach aca, leis gu bheil a h-uile dad a’ tachairt “a-mach às a’ bhogsa ”: a rèir rèiteachaidhean àbhaisteach, gun a bhith a’ toirt a-steach mion-fhiosrachadh no draoidheachd.

Gu sìmplidh, gus còig leth-bhreacan eile den backend a chuir air bhog ann am PHP / Ruby / Python ann am buidheann de shoithichean, cha leig thu leas ach frithealaiche ùr a stèidheachadh 5 tursan agus na stòran a chopaigeadh. Leis gu bheil an dà chuid an còd stòr agus an sgriobt init san ìomhaigh, bidh sgèileadh tagradh gun stàit gu tur bunaiteach. Mar a tha fios math aig luchd-leantainn soithichean agus ailtireachd microservice, tha an duilgheadas a ’tòiseachadh aplacaidean stàiteil, i.e. le seasmhachd dàta leithid stòran-dàta agus caches (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra ...). Tha seo a’ buntainn ris an dà chuid bathar-bog a bhios a’ buileachadh cruinneachadh cuòram gu neo-eisimeileach (mar eisimpleir, Percona XtraDB agus Cassandra), agus bathar-bog a dh’ fheumas goireasan riaghlaidh air leth (leithid Redis, MySQL, PostgreSQL ...).

Bidh duilgheadasan ag èirigh leis nach eil an còd stòr agus cur air bhog na seirbheis gu leòr tuilleadh - feumaidh tu ceumannan a bharrachd a dhèanamh. Aig a’ char as lugha, dèan lethbhreac den dàta agus/no gabh a-steach don bhuidheann. Nas mionaidiche, tha feum aig na seirbheisean sin air tuigse air mar as urrainn dhut an sgèile, an ùrachadh agus an ath-dhealbhadh gu ceart gun call dàta no gun a bhith ri fhaighinn sealach. Canar “eòlas obrachaidh” ris na feumalachdan sin.

Luchd-obrachaidh CoreOS

Gus eòlas obrachaidh "prògramadh", anmoch an-uiridh am pròiseact CoreOS toirt a-steach “clas ùr de bhathar-bog” airson àrd-ùrlar Kubernetes - Luchd-obrachaidh (bhon Bheurla “Operation”, i.e. “Operation”).

Luchd-obrachaidh a’ cleachdadh agus a’ leudachadh prìomh chomasan Kubernetes (a’ gabhail a-steach. Suidhichidhean stàiteil, faic an eadar-dhealachadh gu h-ìosal) leig le eòlaichean DevOps eòlas obrachaidh a chuir ri còd tagraidh.

Adhbhar an gnìomhaiche - thoir API don neach-cleachdaidh a leigeas leat grunn bhuidhnean tagraidh stàiteil a riaghladh ann am buidheann Kubernetes, gun a bhith a’ smaoineachadh dè a tha fon chochall (dè an dàta agus dè a nì thu leis, dè na h-òrdughan a dh’ fheumar fhathast a chuir an gnìomh gus am buidheann a chumail suas ). Gu dearbh, tha an Gnìomhaiche air a dhealbhadh gus an obair leis an tagradh taobh a-staigh a ’bhrais a dhèanamh nas sìmplidhe cho mòr‘ s a ghabhas, a ’dèanamh fèin-ghluasad air coileanadh gnìomhan obrachaidh a dh’ fheumadh a bhith air am fuasgladh le làimh roimhe seo.

Mar a tha Luchd-obrachaidh ag obair

Mac-samhail Seataichean Leigidh Kubernetes leat an àireamh de pods ruith a tha thu ag iarraidh a shònrachadh, agus bidh luchd-riaghlaidh a’ dèanamh cinnteach gu bheil an àireamh aca air a chumail suas (le bhith a’ cruthachadh agus a’ cuir às do pods). Bidh Gnìomhaiche ag obair san aon dòigh, a ’cur seata de eòlas obrachaidh ri goireas àbhaisteach Kubernetes agus rianadair a leigeas leat gnìomhan a bharrachd a dhèanamh gus taic a thoirt don àireamh riatanach de bhuidhnean tagraidh.

Ciamar a tha seo eadar-dhealaichte bho Suidhichidhean stàiteil, air a dhealbhadh airson tagraidhean a dh’ fheumas a’ bhuidheann goireasan stàiteil a thoirt dhaibh leithid stòradh dàta no IPan statach? Airson a leithid de thagraidhean, faodaidh Gnìomhaichean a chleachdadh Suidhichidhean stàiteil (an àite Mac-samhail Seataichean) mar bhunait, a' tairgse fèin-ghluasad a bharrachd: dèan na gnìomhan riatanach gun fhios nach bi tubaistean ann, dèan cùl-taic, ùraich an rèiteachadh, msaa.

Agus mar sin, ciamar a tha seo uile ag obair? Tha an gnìomhaiche na dheamhan manaidsear a tha:

  1. fo-sgrìobhadh don tachartas API ann an Kubernetes;
  2. a’ faighinn bhuaithe dàta mun t-siostam (mu dheidhinn a Mac-samhail Seataichean, plaosgan, seirbheisean Agus mar sin air adhart.);
  3. a’ faighinn dàta mu dheidhinn Goireasan Treas Pàrtaidh (faic eisimpleirean gu h-ìosal);
  4. freagairt ri coltas/atharrachadh Goireasan Treas Pàrtaidh (mar eisimpleir, gus am meud atharrachadh, an dreach atharrachadh, agus mar sin air adhart);
  5. freagairt ri atharrachaidhean ann an staid an t-siostam (mu dheidhinn Mac-samhail Seataichean, plaosgan, seirbheisean Agus mar sin air adhart.);
  6. as cudromaiche:
    1. ag iarraidh air an Kubernetes API a h-uile dad a dh’ fheumas e a chruthachadh (a-rithist, a chuid fhèin Mac-samhail Seataichean, plaosgan, seirbheisean...),
    2. a’ coileanadh beagan draoidheachd (airson a dhèanamh nas sìmplidhe, faodaidh tu smaoineachadh gu bheil an Gnìomhaiche a’ dol a-steach do na pods iad fhèin agus a’ gairm òrdughan, mar eisimpleir, a dhol còmhla ri brabhsair no gus cruth an dàta ùrachadh nuair a bhios tu ag ùrachadh dreach).

Luchd-obrachaidh airson Kubernetes: mar a ruitheas tu tagraidhean stàiteil
Gu dearbh, mar a chithear bhon dealbh, tha tagradh air leth dìreach air a chur ri Kubernetes (cunbhalach Cleachdadh с Mac-samhailSet), ris an canar an Operator. Tha e a 'fuireach ann am pod àbhaisteach (mar as trice dìreach aon) agus, mar riaghailt, tha e cunntachail a-mhàin airson a shon Ainm-àite. Bidh an aplacaid gnìomhaiche seo a 'cur an gnìomh a API - ged nach ann gu dìreach, ach troimhe Goireasan Treas Pàrtaidh ann an Kubernetes.

Mar sin, às deidh dhuinn cruthachadh a-steach Ainm-àite Gnìomhaiche, is urrainn dhuinn cur ris Goireasan Treas Pàrtaidh.

Eisimpleir airson etc (faic gu h-ìosal airson mion-fhiosrachadh):

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

Eisimpleir airson 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

Riatanasan airson luchd-obrachaidh

Chruthaich CoreOS na prìomh phàtranan a fhuair innleadairean fhad ‘s a bha iad ag obair air Luchd-obrachaidh. A dh 'aindeoin gu bheil a h-uile gnìomhaiche fa leth (air a chruthachadh airson tagradh sònraichte le na feartan agus na feumalachdan aca fhèin), feumaidh an cruthachadh a bhith stèidhichte air seòrsa de fhrèam a tha a' cur an cèill na riatanasan a leanas:

  1. Feumaidh an stàladh a bhith air a dhèanamh tro aonar Cleachdadh: cruthaich kubectl -f SOME_OPERATOR_URL/deployment.yaml - agus chan eil feum air gnìomhan a bharrachd.
  2. Nuair a stàlaicheas tu gnìomhaiche ann an Kubernetes, feumar seòrsa treas-phàrtaidh ùr a chruthachadh (Goireas treas-phàrtaidh). Gus suidheachaidhean tagraidh a chuir air bhog (eisimpleirean cruinneachadh) agus an riaghladh nas fhaide (ag ùrachadh dhreachan, ath-mheudachadh, msaa), cleachdaidh an neach-cleachdaidh an seòrsa seo.
  3. Far an gabh sin dèanamh, bu chòir dhut na prìomhairean a chaidh a thogail a-steach do Kubernetes a chleachdadh, leithid seirbheisean и Mac-samhail Seataicheangus còd a tha air a dheagh dhearbhadh agus a thuigsinn a chleachdadh.
  4. Feumaidh luchd-obrachaidh co-fhreagarrachd air ais agus taic airson dreachan nas sine de ghoireasan a chruthaich luchd-cleachdaidh.
  5. Ma thèid an gnìomhaiche a thoirt air falbh, bu chòir don aplacaid fhèin cumail ag obair gun atharrachaidhean.
  6. Bu chòir gum biodh e comasach do luchd-cleachdaidh an dreach tagraidh a tha iad ag iarraidh a mhìneachadh agus ùrachaidhean dreach tagraidh a chuir air dòigh. Tha dìth ùrachaidhean bathar-bog na thùs cumanta de dhuilgheadasan obrachaidh is tèarainteachd, agus mar sin feumaidh Luchd-obrachaidh luchd-cleachdaidh a chuideachadh sa chùis seo.
  7. Bu chòir deuchainn a dhèanamh air gnìomhaichean le inneal mar Chaos Monkey, a chomharraicheas fàilligidhean a dh’ fhaodadh a bhith ann am pods, rèiteachaidhean, agus an lìonra.

Gnìomhaiche msaa

Eisimpleir Gnìomh Gnìomhaiche - Gnìomhaiche msaa, ullaichte air an latha a chaidh am bun-bheachd seo ainmeachadh. Faodaidh an rèiteachadh brabhsair msaa a bhith iom-fhillte air sgàth an fheum air cuòram a chumail, an fheum air ballrachd brabhsair ath-dhealbhadh, cùl-taic a chruthachadh, msaa. Mar eisimpleir, le bhith a’ sgèileadh brabhsair etcd le làimh tha sin a’ ciallachadh gum feum thu ainm DNS a chruthachadh airson ball brabhsair ùr, eintiteas ùr msaa a thòiseachadh, agus rabhadh a thoirt don bhuidheann mun bhall ùr (ball etcdctl cuir). A thaobh a’ Ghnìomhaiche, cha leig an neach-cleachdaidh ach meud a’ bhraisle atharrachadh - tachraidh a h-uile càil eile gu fèin-ghluasadach.

Agus leis gun deach etcd a chruthachadh ann an CoreOS cuideachd, bha e gu math reusanta an gnìomhaiche aige fhaicinn a’ nochdadh an toiseach. Ciamar a tha e ag obair? Loidsig gnìomhaiche msaa air a dhearbhadh le trì pàirtean:

  1. Thoir an aire. Bidh an gnìomhaiche a’ cumail sùil air staid a’ bhuidheann a’ cleachdadh Kubernetes API.
  2. Mion-sgrùdadh. Lorg eadar-dhealachaidhean eadar an inbhe làithreach agus an tè a tha thu ag iarraidh (air a mhìneachadh le rèiteachadh an neach-cleachdaidh).
  3. Gnìomh. A’ fuasgladh eadar-dhealachaidhean a chaidh a lorg a’ cleachdadh APIan seirbheis msaa agus/no Kubernetes.

Luchd-obrachaidh airson Kubernetes: mar a ruitheas tu tagraidhean stàiteil

Gus an loidsig seo a bhuileachadh, chaidh gnìomhan ullachadh anns a’ Ghnìomhaiche Cruthaich / sgrios (a’ cruthachadh agus a’ cuir às do bhuill brabhsair etcd) agus Ath-mheudachadh (atharrachadh anns an àireamh de bhuill brabhsair). Chaidh ceartachd na h-obrach aige a sgrùdadh le bhith a’ cleachdadh goireas a chaidh a chruthachadh ann an coltas Chaos Monkey bho Netflix, i.e. a’ marbhadh pods etcd air thuaiream.

Airson làn obrachadh etcd, tha an Gnìomhaiche a’ toirt seachad feartan a bharrachd: lethbhreac glèidhidh (fèin-ghluasadach agus neo-fhaicsinneach do luchd-cleachdaidh cruthachadh lethbhric cùl-taic - anns an rèiteachadh tha e gu leòr faighinn a-mach dè cho tric a nì iad agus cia mheud a stòradh - agus ath-nuadhachadh dàta bhuapa) agus ùrachadh (ag ùrachadh ionadan msaa gun ùine downt).

Cò ris a tha e coltach a bhith ag obair le gnìomhaiche?

$ 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

Is e dreach beta a th’ ann an inbhe gnàthach Gnìomhaiche etcd, a dh’ fheumas Kubernetes 1.5.3+ agus msaa 3.0+ a ruith. Tha còd stòr agus sgrìobhainnean (a’ toirt a-steach stiùireadh airson a chleachdadh) rim faighinn aig GitHub.

Chaidh eisimpleir eile de bhuileachadh bho CoreOS a chruthachadh - Gnìomhaiche-ciùil Prometheus, ach tha e fhathast ann an dreach alpha (cha deach a h-uile feart dealbhaichte a chuir an gnìomh).

Inbhe agus dùilean

Tha 5 mìosan air a dhol seachad bho chaidh Kubernetes Operators ainmeachadh. Chan eil fhathast ach dà bhuileachadh ri fhaighinn ann an stòr oifigeil CoreOS (airson msaa agus Prometheus). Chan eil an dithis air na dreachan seasmhach aca a ruighinn fhathast, ach thathas a’ cumail sùil air geallaidhean gach latha.

Tha an luchd-leasachaidh a’ faicinn “àm ri teachd far am bi luchd-cleachdaidh a’ stàladh Postgres Operators, Cassandra Operators no Redis Operators air na cruinneachaidhean Kubernetes aca agus ag obair le buidhnean scalable nan tagraidhean sin cho furasta ri bhith a’ cleachdadh mac-samhail de thagraidhean lìn gun stàite an-diugh. ” A’ chiad Luchd-obrachaidh bho luchd-leasachaidh treas-phàrtaidh dha-rìribh thòisich e ri nochdadh:

Aig a’ cho-labhairt bathar-bog an-asgaidh Eòrpach as motha FOSDEM, a ghabh àite sa Ghearran 2017 sa Bhruiseal, dh’ainmich Josh Wood bho CoreOS Gnìomhaichean ann an aithisg (tha bhidio ri fhaighinn aig a’ cheangal!), A bu chòir cur ri fàs mòr-chòrdte a’ bhun-bheachd seo anns a’ choimhearsnachd Open Source san fharsaingeachd.

PS Tapadh leibh airson ur ùidh anns an artaigil! Clàraich don ionad againn, gus nach caill sinn stuthan agus reasabaidhean ùra air rianachd siostam DevOps agus GNU/Linux - foillsichidh sinn iad gu cunbhalach!

Source: www.habr.com

Cuir beachd ann