Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Nomen meum Viktor Yagofarov est, et Kubernetes suggestum apud DomClick explicamus ut technicae progressionis procurator in Ope (operatione) quadrigis. Loqui velim de structura processuum nostrorum Dev <-> Opis, lineamenta operandi unum ex maximis botris k8s in Russia, necnon de exercitiis DevOps/SRE quae turma nostra applicat.

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Opis Team

Turma Opis XV homines currently habet. Tres ex illis officio responsales sunt, duo opera in alio tempore zonae et in promptu sunt, inter nocturnos. Sic aliquis ab Ope semper monitor et promptus est respondere ad incidenti cuiuslibet complexionis. Noctes vices non habemus, quae nostram Psychen conservat et cuivis tribuit facultatem somnum satis faciendi et non solum in computatro tempus terendi.

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Suae quisque facultates varias habet: networkers, DBAs, ELK acervus specialitas, Kubernetes admins/elit, vigilantia, virtualizationis, ferrariae periti, etc. Una res omnes coniungit - quisque aliquem nostrum aliquatenus substituere potest: exempli gratia, novos nodos in botrum k8s, renovationem PostgreSQL introducere, scribe CI/CD + Ansible pipeline, aliquid automate in Pythone/Bash/Ite, ferramenta coniungere ad Mauris interdum. Fortis competentiae in quavis provincia non impediunt te quin directionem actuositatis mutent et in alia area emendare incipiant. Exempli gratia: Societas me adiunxi tamquam artifex PostgreSQL, et nunc area mea principale responsabilitatis racemi Kubernetes sunt. In quadrigis, quaelibet altitudo grata est, et sensus pressionibus valde exculta est.

Viam venamur. Requisita candidatorum satis normae sunt. Me personaliter, interest ut quis in ipsum dolor sit non conflictus, sed scit defendere sententiam, velit evolvere et facere aliquid novi non timet, offert suas ideas. Etiam programmandi artes in linguis scribendis, scientia basicum Linux et Anglicae requiruntur. Anglice simpliciter necessarium est ut quis in eventu fakap solutionem problematis in 10 secundis secundis, non per 10 minutas possit google. Nunc difficillimum est invenire speciales scientias de Linux: ridicula est, sed duo ex tribus candidatis quaestioni β€œWhat is Load Average? Quid sit factum? et quaestio "Quam nucleum e programmatis C convenire" consideratur aliquid e mundo superminum ... vel dinosaurus pristinus. Hoc nobis ferendum est, quia plerumque homines alias facultates extulerunt, sed Linux docebimus. Ad quaestionem "cur fabrum DevOps scire opus est omnia haec in mundo huius temporis nubium" relinquendum erit extra ambitum articuli, sed tribus verbis: omne hoc necessarium est.

Team Tools

Instrumenta turmas significantes partes in automation ludit. Praecipuum eorum munus est instrumenta graphica et CLI opportuna ad tincidunt creare. Exempli causa, interna nostra progressio Confer te permittit ad literam applicationem ad Kubernetes cum paucis musculis evolvi, suas facultates, claves a crypta configurare, etc. Antea erat Jenkins + Helm 2, sed proprium habui instrumentum evolvere ad exemplum crustulum tollendum et uniformitatem ad vitam cycli programmatis afferendam.

Turma Opis non scribit pipelines pro developers, sed de quibusvis quaestionibus in scribendo monere potest (quidam adhuc Helm 3) habent.

DevOps

DevOps autem sic videmus;

Dev teams scribe codicem, evolve via Confer to dev -> qa/stage -> prod. Cura ad praestandum codicem non tardat nec errores continet in iunctos Dev et Opis. Interdiu, homo, qui ab Opis manipulus officio fungebatur, primo omnium casui suo applicatione respondere debet, et vespere et nocte administratorem in officio (Ops) evigilare debet in officio, si sciat. scito quaestionem non esse in infrastructure. Omnes metrici et erecti in vigilantia automatice vel semi-automatice apparent.

Area responsabilitatis Opis incipit a momento applicationis in productionem evoluta, sed responsabilitas Dev ibi non terminatur - idem facimus et in eadem navi sumus.

Tincidunt admonent admins si opus est scribendo microservio admin (exempli gratia, Vade backend + HTML5), et admonere tincidunt aliquas quaestiones infrastructuras vel quaestiones ad k8s pertinentes.

Viam monolitharum omnino non habemus, solum microform. Numerus eorum tantum inter 900 et 1000 fluctuat in botro iaculo, si numero mensuratur deployments. Siliquarum numerus inter 1700 et 2000 fluctuat. Nunc sunt circiter 2000 siliquae in iaculo botri.

Numeros accuratos dare non possum, quandoquidem microservices necessarias monitores admonemus et eas semi-automatice amputamus. K8s adjuvat nos vestigia superflua inutilis-operatorqui multum opibus et pecunia servat.

Resource administratione

Cras

Lapis angularis bene structus et informativus fit in operatione botri magni. Nondum invenimus solutionem universalem quae omnium vigilantium necessitates C% operiret, ita periodice varias solutiones in hac rerum ambitu creamus.

  • Zabbix. Bonum vetus magna vigilantia, quae imprimis altiorem condicionem infrastructure investigare intendit. Narrat cum nodi moriuntur secundum processum, memoriam, orbis, retis, et sic porro. Nihil supernaturale, sed etiam habemus DaemonSet separatum agentium, quorum ope, exempli gratia, Monitor de statu DNS in botro: exspectamus siliquas stolidas coredns, externarum exercituum disponibilitatem reprimimus. Cur hoc molestum videtur, sed in magnis commercii voluminibus haec pars gravissimum est defectum. Ego iam descriptus "quomodo luctatus sum cum dns in botro.
  • Prometheus Operator. Copia diversorum exportatorum magnam dat visum omnium botri partium. Deinde omnia haec in magnis dashboards in Grafana visualisamus, et pro summis summisque moderatoribus utimur.

Aliud instrumentum nobis utile erat ingressus album-. Scripsimus eam post aliquotiens condicionem invenimus ubi una quadriga aliam tramites ingressos invasit, inde in 50x erroribus. Nunc antequam ad productionem disponis, tincidunt reprehendo ne quis afficiatur, et pro turma mea hoc bonum instrumentum est ad primam diagnosim problematum cum Ingressibus. Ridiculum est quod primo pro admins scriptum erat et potius "inconditum" videbatur, sed postquam iunctiones dev instrumentum adamavit, multum mutata est et quasi non videre coepit "admin faciem telam fecit pro admins. " Mox hoc instrumentum relinquemus et eiusmodi condiciones convalescit etiam antequam fistula devolvatur.

Team opum in Cube

Priusquam exempla ingrediamur, explicandum est quomodo opes collocamus pro microservices.

Ad intelligendum quod teams et quibus quantitatibus utantur opibus (Processus, memoria, localis SSD), unumquodque mandatum suum collocamus fasciculorum impositorum in "Cube" et limitare facultates maximas in terminis processus, memoriae et orbis, necessitates iunctorum discussis. Quocirca unum praeceptum in universum non impedit totum botrum pro instruere, mille nucleos et terabytes memoriae collocans. Accessus ad spatiorum nominandi per AD conceditur (RBAC utimur). Spatia nomina et fines eorum adduntur per petitionem trahere ad repositorium GIT, et tunc omnia sponte evolvuntur per pipelinum Ansible.

Exemplum distribuendi facultates ad equos:

namespaces:

  chat-team:
    pods: 23
    limits:
      cpu: 11
      memory: 20Gi
    requests:
      cpu: 11
      memory: 20Gi

Petitiones et limites

Cubed" Request numerus praestatur reservatis opibus legumen (Vel docker continentia) in botro. Limit is a non-praestatur maximus. Saepe videre potes in graphis quomodo quidam manipulus nimis multae petitiones pro omnibus suis applicationibus se posuit et applicationem ad "Cubum" explicari non potest, cum omnes petitiones sub nomine spatii iam "abactae sint".

Rectus modus ex hoc situ est ipsam consummationem resource intueri et cum summa rogata compara (Request).

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices
Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

In eenshotsscray supra videre potes CPUs "rogatum" realibus relatorum numero adaequari, et limites realem numerum relatorum CPU excedere =)

Nunc inspiciamus aliquod spatium nominale in speciali (delegi spatii nominandi kube-systematis systematis spatii pro componentibus ipsius Cubi) et rationem temporis processoris et memoriae rogato usui vide:

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Patet quod multo magis memoria et CPU ratio muneris servata quam adhibita est. In casu systematis kube, hoc iustificatur: accidit ut nginx ingressor moderatoris vel nodilocaldns ad apicem suum CPU percusserit et multum RAM consumpserit, ergo hic talis reservatio iustificatur. Praeterea chartis per ultimas 3 horas fidere non possumus: expedit videre historica metrica per magnum temporis spatium.

Systema "suasiones" amplificatum est. Exempli causa, hic videre potes quae facultates meliores forent erigendi "fines" (vectis superioribus permissis) ut "iugulus" non fiat: momentum cum subsidia CPU vel memoria in sorte temporis divisae et iam peractae sunt. exspectat donec erit "gladio";

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Et hic sunt siliquae quae gulam cohibent;

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

in throttling + resource vigilantia, plus uno articulo scribere potes, ita in commentarios interrogare. Paucis verbis dicere possum munus automandi huiusmodi metrorum difficillimum esse ac multum temporis postulare et actum cum functionibus "fenestrae" et "CTE" Promethei/VictoriaMetrics (haec vocabula sunt in virgulis, cum fere sit nihil tale in PromQL, et quaeres FORMIDULOSUS dividere in varias pluteos textus et eas optimize).

Quam ob rem, tincidunt instrumenta ad nomina spatii vigilantiam in Cube habent, et sibi eligere possunt ubi et quo tempore applicationes suas facultates "secare" possint, et quae ministratores totam CPU per totam noctem dare possunt.

Methodologies

In comitatu ut nunc est modumadhaeremus DevOps- et SRE-practitioner Cum societas 1000 microservices habet, circiter trecentas tincidunt et XV admins pro tota infrastructura, debes "esse modum": post haec omnia "baswords" urget necessitas automate omnia et singula, et admins non debet esse bottleneck. in processibus.

Sicut Ops, varias metricas et ashboardas pro tincidunt praebemus, ad operas responsionis rates et errores pertinentes.

Methodologiis utimur ut: RED, USUS ΠΈ Aurea signaiungendo. Numerum ashboardarum extenuant conamur ut visu clarum sit quod officium nunc degradatur (exempli gratia, responsionis codicibus per alterum, responsionis tempus per 99 centilium), et sic porro. Cum primum nova quaedam metrica necessaria ad ashboardas generales fiunt, statim eas haurimus et addimus.

Non graphs ad mensem trahi. Hoc signum fortasse bonum est: significat plurimam partem iam peractam esse "desiderantem". Accidit ut per hebdomadam aliquid novi graphi haurirem saltem semel in die.

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices

Effectus inde perutile est quod nunc tincidunt admodum raro pergunt ad interrogationes "ubi ad aliquam metricam speciem spectant".

et introductio Service Mesh prope angulum iustum est et vitam efficere debet multo facilius omnibus, collegae e Instrumentis iam prope sunt ad exsequendam abstractam β€œIstio sani hominis”: cuiuslibet HTTP postulatio vitae cyclus in vigilantia apparebit, et eam Semper comprehendi poterit "quo in statu omnia fregerunt" in commercio inter-mune. Scribe ad nuntium de Hub DomClick. =)

Substructio infrastructura Kubernetes

Historice utimur versione disiuncta Kubespray β€” Munus ansibile explicandi, ampliandi et augendi Kubernetes. Aliquando, firmamentum institutionum non-kubeadm e ramo principali abscissa est, et processus mutandi ad kubeadm propositum non est. Quam ob rem societas Southbridge Fecit suam furcam (cum kubeadm auxilio et velox fix ad difficultates criticas).

Processus adaequationis omnes ligaturae k8s similis est:

  • accipere Kubespray ex Southbridge, cum filo nostro, Merjim.
  • Nos volventes update ad Suspendisse- "Cubus".
  • Evolvimus renovationem unius nodi ad tempus (in Ansible hoc est "Vide: 1") in Dev- "Cubus".
  • Nos update Prod die Sabbati vespere unius nodi ad tempus.

Sunt consilia reponere in futurum Kubespray et ad aliquid citius kubeadm.

In summa tres "Cubes" habemus: Accentus, Dev et Prod. Consilium habemus alterum mittere (calidum standby) Prod- "Cubus" in secunda centri notitia. Suspendisse ΠΈ Dev in "machinis virtualibus" (oVirt pro Accentus et VMWare nubes pro Dev). Prod- "Cubus" in "metallum nudo" vivit: hae nodi sunt identici cum filis 32 CPU, 64-128 GB memoriae et 300 GB SSD INCURSIO 10 - 50 earum in summa sunt. Tres nodi graciles dominis dicati sunt. Prod- "Cuba": 16 GB memoriae, 12 stamina CPU.

Pro venditionibus, "metallum nudum" uti et quasi stratis supervacaneis vitare maluimus OpenStack: "vicinis tumultuantibus" et CPU non opus est furantur tempore. Et multiplicitas administrationis circa OpenStack in casu domus in- duplicat.

Pro CI/CD "Cubic" et aliis componentibus infrastructuris separatis GIT server, Helm 3 utimur (transitus paulo molestius ab Helm 2, sed valde laeti sumus cum optionibus nucleiJenkins, Ansible et Docker. Ramos pluma amamus et diversis ambitus ab uno reposito instruere.

conclusio,

Kubernetes apud DomClick: quomodo dormire pacifice disponens botrum 1000 microservices
Hoc est in genere, quod processus DevOps apud DomClick spectat sicut in prospectu architecti operationis. Articulus evasit minus technicus quam exspectavi: ergo sequere nuntium DomClick de HabrΓ©: plures articuli "hardcore" de Kubernetes et plures erunt.

Source: www.habr.com