Istio et Kubernetes in productione. Pars 2. Tracing

In novissimis articulus Praecipuas partes servitii Mesh Istio inspeximus, rationem novimus et respondimus quaestiones praecipuas, quae oriri solent, cum incipimus ad laborandum cum Istio. In hac parte videbimus quomodo collectionem ordinare informationes super retis pertractandas.

Istio et Kubernetes in productione. Pars 2. Tracing

Primum illud quod occurrit in mentem multae tincidunt et administratores systematis cum audiunt verba Service Mesh typum. Procuratorem quidem specialem addimus nodo retis unicuique, per quem omnia TCP negotiatio transit. Videtur quod nunc fieri potest ut facile informationes mitteret de omnibus retis interactionibus in retis. In re vera multae nuances considerandae necessariae sunt. Intueamur eos.

Deceptae numerus unus: gratis datas hiking online accipere possumus.

Re vera, per comparationem liberi, solum nodos nostrae systematis sagittis connexis et notitiarum quae inter officia transeunt (revera tantum numerum bytes per unitatem temporis attingere possumus). Sed in pluribus, officia nostra communicant in aliqua applicationis tabulatorum protocollo, ut HTTP, gRPC, Redis, et sic porro. Et, sane, notitias speciales harum protocols videre volumus, petentibus certe videre volumus, non data rate. Latitudinem petitionum utendo protocollo nostro notum fieri volumus. Denique viam plenam videre cupimus quod petitio a colligatione in systemate nostro accipit responsionem ab utore accipiendam. Hoc problema tam facile solvendum non est.

Primum inspiciamus quid emittens palmos enucleando similis ex parte architecturae in Istio. Istio, ut ex prima parte meminimus, elementum separatum, quod Mixer appellatur, pro telemetria colligendis habet. Attamen in emendatione 1.0.*, missio immediate fit a procuratoribus servientibus, scilicet ab legatio procuratoris. Legatus ineundo subsidia mittens palmos ducens ad zipkin protocollum e archa utens. Coniungere alia protocolla potest, sed solum per plugin. Cum Istio statim procuratorem constitutum et configuratum accipimus, quod solum protocollum zipkin sustinet. Si uti velimus, exempli gratia, protocollum Jaeger et per UDP palmos emittens, tunc opus est ut imaginem nostram istio-procuratorem aedificemus. Adsunt plugins consuetudini pro istio-procuratori, sed adhuc est in versione alpha. Si igitur sine numero consuetudinis occasus facere volumus, distributio technologiarum usus ad condenda et recipienda spatia palmorum reducitur. Systematum principalium, re vera, nunc uti potes ipso Zipkin vel Jaeger, sed omnia ibi mitte protocollo compatibilis zipkin (quod multo minus efficax est). Protocollum zipkin ipsum involvit nuntios ducens ad collectores per HTTP protocollum, quod est satis carus.

Ut iam dixi, applicationes graduum protocolla investigare volumus. Hoc significat quod procuratores qui iuxta unumquemque ministerium stant, intellegere debent qualis nunc fit commercium. Defalta Istio omnes portus conformat ad TCP planum, quod nulla vestigia mittentur. Ut vestigia mittenda sint, primum debetis hanc optionem in principali reticulo config efficere et, quod maximum est, nominare omnes portus kubernetes muneris secundum protocollum quod in usu est. Hoc est, verbi gratia, sic;

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http
  selector:
    app: nginx

Etiam nominibus compositis uti potes ut http-magica (Istio videbit et cognosces portum ut http endpoint). Forma est: proto-extra.

Ut ingentem numerum figurarum ad protocollum determinare non demittas, sordido quo versari potes uti: component gubernatorem in momento, quo iustus est, repeciare definitio logica protocol performs. In fine, sane, necesse erit hanc logicam regulam mutare et ad placitum nominationis pro omnibus portibus flectere.

Ut intelligas num recte definitum sit protocollum, debes in aliquem vasorum lateralium cum procuratorio legatio inire, et rogare ad portum legatio interface cum locatione /config_dump. In configuratione consequens, operari debes intueri campum desiderati muneris. Ponitur in Istio pro identifier pro ubi petitur. Ut valorem huius parametri in Istio customizem (deinde videbimus eam in systemate nostro tractando), necesse est ut vexillum servitii clustri in stadio deducendi ad latera continentis designetur. Exempli gratia, ratiocinari potest hoc simile ex variabilibus de deorsum kubernetes API:

--serviceCluster ${POD_NAMESPACE}.$(echo ${POD_NAME} | sed -e 's/-[a-z0-9]*-[a-z0-9]*$//g')

Bonum exemplum ad intelligendum quomodo opera in legato pertractanda sit hic.

Finis ipse ad palmos ducens definiendus est etiam in legatio procuratoris vexilla immittendi, exempli gratia: --zipkinAddress tracing-collector.tracing:9411

Deceptio numerus duorum: "Plenam petitionum vestigia per ordinem extra archa consequi possumus"

Donec non est. Intricatio exsecutionis dependet ab eo quomodo iam commercium officiorum implevisti. Cur est?

Re vera, ut per istio-procuratorem intellegendum esse possit correspondentiam petitionum advenientium ad servitium cum eodem servitio relinquentium, non satis est omnem commercium intercipere. Vos postulo ut identifier communicationis speciem habeatis. HTTP legatus procuratorem specialibus capitibus utitur, quo legatus intelligit, quem specifica petitio ad ministerium specificas petitiones ad alia officia gignit. Index capitis talis:

  • x-petitio-id,
  • x-b3-traceid;
  • x-b3-spanidis;
  • x-b3-parentspanid;
  • x-b3-libatum;
  • x-b3-lax;
  • x-ot-spatium contextus.

Si unicum punctum habes, exempli gratia, clientem principalem, in quo talem logicam addere potes, omnia denique bona sunt, solum opus est ut hanc bibliothecam omnibus clientibus renovatam opperiatur. Sed si systema heterogenea admodum habes et nulla adunatio est in movendo ab officio ad servitium super retis, hoc verisimiliter magnum problema erit. Sine tali logica addito, omnes informationes repetens solum erit "unum-gradum". Hoc est, omnes commercium inter-muneris accipiemus, sed in singulas catenas per retiaculum non vincientur.

conclusio,

Istio instrumentum opportunum praebet ad colligendas informationes super retis pertractandas, sed intellegendum est opus esse ad exsequendam rationem tuam aptare et in exsequenda lineamenta Istio considerare. Quam ob rem duo praecipua puncta resolvenda sunt: ​​definiendum applicationis gradum protocollum (quod per procuratorem legatum sustentari debet) et statuere ut informationes promoveantur circa connexionem petitionum ad servitium a petitionibus ex ministerio (utendo capitis. in casu protocollo HTTP). Cum hae quaestiones resolvuntur, instrumentum validum habemus quod notitias ex retiacula colligere sinit, etiam in systematis heterogeneis multis variisque linguis et compagibus conscriptis.

In proximo articulo de Mesh Muneris, unum ex maximis quaestionibus cum Istio - magnas sumptionem RAM per singulas procuratores sidereas continens et tractabimus quomodo de ea agere possis.

Source: www.habr.com