Operatores pro Kubernetes: quomodo ad applicationes status currunt?

Problema de applicationibus statutis in Kubernetes

Configuration, launch et ulterius scalas applicationes et officia facile cum fit in casibus de- statis, i.e. sine salute data. Commodum est ad talia officia in Kubernetes currere, APIs eius vexillum utens, quia omnia "ex arca" fiunt: secundum normas figurarum, sine ulla speciei aut magicae implicatae.

Pone, ut quinque plura exemplaria in PHP/Ruby/Python in botro vasorum emittat, tantum opus est novo servo 5 temporibus constituere et fontes imitari. Cum enim et fons codicis et scripturae scripturae in imagine sunt, in continuo applicatione escendendo elementum efficitur. Sicut fans continentium et architecturae microform bene sciunt, difficultas incipit ab status apps, i.e. cum notitia perseverantiae ut databases et cella (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra...). Hoc pertinet ad utrumque programmatum, quod sine instrumento ad quorum botrum (exempli gratia, Percona XtraDB et Cassandra), et programmata quae ad utilitates administrationes separatas requirit (ut Redis, MySQL, PostgreSQL...).

Difficultates oriuntur quia fons codicis et ministerium deducendi non iam satis sunt - opus est aliquos plures gradus praestare. Ut minimum, effingo datam vel botrum iungere. Accuratius haec officia intellegentiam requirunt quomodo recte scandere, renovare et recondere sine notitia damni vel temporis inexplicabilis. Has necessitates considerans vocatur "cognitio operationalis".

CoreOS Operators

Ut "programma" cognitionis operationalis, proxime praeterito anno in project CoreOS summitto "novum genus programmatum" pro suggestu Kubernetes - Operators (ab Anglica "operatione", i.e. "operatione").

Operatores nucleum facultatum Kubernetensium utentes et extendentes (incl. StatefulSetsVide differentiam infra) DevOps specialitas permittit ut cognitionem operationalem ad applicationem code addere.

Operator propositum - usorem praebe cum API qui permittit ut multiplices applicationes status status in botro Kubernetes regere sinat, sine cogitatione quid sub cucullo (quid notitia et quid cum ea agas, quid iubeat adhuc exsecutioni mandari ut botrum teneas. ). Re quidem vera, operarius destinatur opus simpliciorem reddere cum applicatione intra botrum quantum fieri potest, automando exsecutionem officiorum operationum quae antea manually solvenda erat.

Quam operariorum

ReplicaSets Kubernetes permittit tibi dare numerum desideratum siliquarum decursantium, moderatoresque ut eorum numerus servetur (creando et delendo siliquas). Simili modo operatur operarius, addita scientia operationis ad vexillum Kubernetes subsidii et moderatoris, qui te permittit ut actiones ad ulteriora facienda ad requisita applicationis numerum sustineat.

Quomodo hoc differt a? StatefulSets, adhibitis applicationibus quae botrum requirunt ad praestandas facultates publicas ut datae repositionis vel statice IPS? Pro huiusmodi applicationibus operariorum uti possunt StatefulSets (Pro ReplicaSets) ut fundamentum, oblatio additional automation: actiones necessarias exercere in casu ruinarum, tergum facere, configurationem renovare, etc.

Sic, quomodo hoc totum opus? Auctor procurator daemonis est;

  1. eventui API in Kubernetes subscribit;
  2. notitia de ratione accipit (de suo ReplicaSets, laetum siliqua quassante, Services et sic porro.);
  3. notitia accipit circuitum Tertia Factio Resources (vide exempla infra);
  4. ad species reflectitur / mutatio Tertia Factio Resources (exempli gratia, mutare magnitudinem, mutare literam, et sic porro);
  5. in re publica mutationes reflectitur systema (de suo ReplicaSets, laetum siliqua quassante, Services et sic porro.);
  6. praecipuum;
    1. in Kubernetes API vocat ad omnia quae necessaria sunt (iterum, suum) creare ReplicaSets, laetum siliqua quassante, Services...),
    2. aliquid magicum exercet (simpliciorem facere potes cogitare quod Operator in ipsas siliquas vadit et imperata vocat, exempli gratia, botrum iungere vel ad formationem datam upgrade cum adaequationis versionis).

Operatores pro Kubernetes: quomodo ad applicationes status currunt?
Re quidem vera, ut ex tabula videri potest, applicatio separatim Kubernetes additus est (a regularis instruere с ReplicaSetquae dicitur operans. In podagra vulgari (plerumque iustus) vivit et, ut fere, nonnisi responsabilis est Spatium nominale. Haec operantis applicatio suam API - licet non directe, sed per Tertia Factio Resources in Kubernetes.

Et sic, postquam nos creavimus Spatium nominale Operator addere possumus ei Tertia Factio Resources.

Exemplum pro etc (Vide infra per singula):

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

Exemplum pro 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

Requisita pro Operators

CoreOS principalia exemplaria a fabrum impetrata operantibus in Operatoribus ediderunt. Quamvis omnes Operatores singulos sint (creati ad applicationem specificam cum propriis notis ac necessitatibus), eorum creatio niti debet quadam compage, quae sequentia postulata imponit;

  1. Installatio per singula fieri debet instruere: kubectl creare -f SOME_OPERATOR_URL/deployment.yaml - ac additional actiones non requirunt.
  2. Cum operarium in Kubernetes inaugurarit, novum tertium-partium genus creari debet (Tertia PartyResource). Ad applicationes instantiarum inducendas (instantias botrus) et adhuc eas administrare (adaequationis versiones, resizingas, etc.), utens hoc genere utetur.
  3. Quotiens fieri potest, primitivis uti in Kubernetes constructis uti debetis, ut Services и ReplicaSetsad usum bene probatum et intellectum codicem.
  4. Requirit convenientiam operariorum retrorsum et subsidium pro vetustis facultatibus usoris usoris translatis.
  5. Remota operante applicatione ipsa applicatio ad munus sine mutatione perseveret.
  6. Users versionem applicationis desideratam definire et in applicatione versionis updates orchestrate definire possunt. Defectus programmatum communis fons est problematum operationalium et securitatis, ideoque operarii hac in re utentibus adiuvare debent.
  7. Operatores temptandi sunt cum instrumento Chaos Simiae, quae defectiones potentiales in siliquis, configurationibus, et ornatum indicat.

etc

Exemplum exsequendam operator — Operator etc. paratus die annuntiationis conceptus. Botrus figuratio etc. implicata esse potest propter necessitatem conservandi quorum, necessitatem configurandi glomerati membri, tergum creandi, etc. Exempli gratia, manually ascendentem botrum etcd significat quod debes creare nomen DNS pro novo membro botri, incipias novam entitatem etcd, et intendit botrum de novo membro (etcdctl membrum add). In casu operantis, user tantum magnitudinem botri mutare necesse est - reliqua omnia automatice fient.

Et cum etiam in CoreOS creatus sit etc., satis logicum fuit videre operatorem suum primum apparere. Quomodo operatur? Operator logicae etc determinatur per tria;

  1. Observa. Auctor monitores statum botri API Kubernetes utentes.
  2. Analysis. Differentias reperit inter statum hodiernum et unum desideratum (per configurationem usoris definitum).
  3. Actio. Resolvit differentias detectas utentes etcd et / vel Kubernetes ministerium APIs.

Operatores pro Kubernetes: quomodo ad applicationes status currunt?

Ad hanc logicam efficiendam, munera in Operante parata sunt Create / Ne dissipes (Creando et deletis etc. botrum portassent membra) et Sedeo (Mutatio membrorum in numero botri). Rectitudo operationis eius repressa est utilitas quae ad similitudinem Chaos Simiae a Netflix creata est, i.e. legumen passim occidere etc.

Ad plenam operationem etc., Operator adiectis notis praebet; Tergum (automatica et invisibilia usorum creationis exemplarium tergum - in config satis est statuere quoties ea et quot condant - et sequentium notitiarum restitutionem ab eis) ac upgrade (Adaequationis etc officinae sine downtime).

Quid opus cum operante simile?

$ 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

Status hodiernus operantis etcd versionis beta est, requirit Kubernetes 1.5.3+ et etc 3.0+ ad currendum. Source code and documentation (including instructions for use) are available at GitHub.

Aliud exemplum exsecutionis de CoreOS creatum est. Prometheus Operator, sed adhuc est in versione alpha (non omnes lineamenta meditata impleta sunt).

Status et spes

V menses elapsi sunt ab annuntiatione Operatorum Kubernetes. Exstant adhuc tantum duae exsecutiones in promptuario officiali CoreOS (pro etc. et Prometheus). Ambae versiones stabiles nondum attigerunt, sed in cottidie observantur.

Tincidunt envision "a futurum in quo utentes instituunt Postgres Operatores, Cassandra Operatores seu Redis Operatores in racemis Kubernetes suas et operantur cum entia harum applicationum scalarum, tam facile quam explicandi replicationes publicarum applicationum interretialis hodie est". Primis Operatores ex tertiam partem developers vere incepit apparere;

In maxima Europaea liberae colloquii programmatibus FOSDEM, quae mense Februario 2017 Bruxellis fiebant, Josh Wood a CoreOS operatores nuntiaverunt in fama (video praesto esse ad nexum!), quod conferat ad incrementum favoris huius notionis in ampliore communitate Open Source.

PS Gratias pro cura tua in articulo! Subscribe ut nostro hub, ut novas materias et recipes in DevOps et GNU/Linux administrandi ratio non deesset - eas regulariter praedicabimus!

Source: www.habr.com

Add a comment