How does a Kubernetes pod to an IP address?

Nota. transl.Articulus hic, a SRE machinator a LinkedIn scriptus, accurate de magia interiore in Kubernetes - pressius pergit, commercium CRI, CNI et kube-apiservatoris, quod fit cum vasculum proximum electronicum IP assignari debet.

Una postulata fundamentalia Kubernetes network model est quod unumquodque vasculum suum habere debet IP oratio et quodlibet vasculum in botro, illud in inscriptione contingere possit. Multae retis "provisores" (Flannel, Calico, Canal, etc.) quae exemplar reticuli huius instrumenti adiuvant.

Cum primum cum Kubernetes laborare coepi, mihi non plane perspicitur quam exacte siliquae suas IP inscriptiones habeant. Etiam intellectui quomodo singulae partes operatae sint, difficile est eas cooperante imaginari. Exempli gratia, quid CNI plugins scirem, sed quam exacte vocarentur nesciebam. Ideo hunc articulum scribere decrevi ut cognitionem de variis componentibus retis communicaret et quomodo in botro Kubernetes cooperantur, quod permittit unumquemque vasculum ut suam unicam IP oratio permittat.

Diversi modi sunt ad networking in Kubernetes ordinandi, sicut sunt diversae optiones runtime pro vasis. Haec publication erit utere flannel retis in botro ordinare et quasi environment exsecutabile - Containerd. Fingo etiam ut scias quomodo retis inter vasa opera, ita breviter, modo ad contextum attingam.

Quidam basic notiones

Vasa et Network: Brevis Overview

Multae optimae editiones in Interreti sunt quae explicant quomodo continentia in reticulo inter se communicent. Quapropter generalem considerationem tantum concedam notionum fundamentalium ac meipsum ad unum accessum limitabo, qui involvit pontem Linux creando et fasciculos encapsulare. Singula omittuntur, quia thema continens ipsum reticulum meretur articulum separatum. Nexus ad aliquas divulgationes perspicaciores et ad educativas praecipue providebitur infra.

Vasa in unum exercitum

Uno modo ad communicationem ordinandam per IP inscriptiones inter continentia in eodem exercitu currentes pontem Linux creando involvit. Ad hoc, virtualis machinis in Kubernetes (et Docker) creantur. veth (virtual ethernet). Veth fabricae finis unus coniungit cum spatio nominali retis continentis, alter to Linux pontem super exercitum ornatum.

Vasa omnia in eodem exercitu habent unum finem veth ad pontem connexum, per quem per IP inscriptiones inter se communicare possunt. Pons Linux etiam IP contionem habet et facit ut portae negotiationis egressae e siliquis aliis nodis destinatis.

How does a Kubernetes pod to an IP address?

Vasa in diversis exercituum

Fasciculus encapsulationis una est methodus, qua vasa in diversis nodis permittit communicare cum inscriptionibus IP inter se utentibus. Apud Flannel, technologia hac opportunitate responsabilis est. vxlan, quae fasciculum primigenium in UDP fasciculum "sarcinae" emittit et deinde ad suum destinationem mittit.

In botro Kubernetes, Flannel fabricam vxlan creat et tabulam itineris in singulis nodi consequentibus renovat. Quaelibet fasciculus destinatus vasi in alia militia per fabricam vxlan transit et in fasciculum UDP encapsulatur. In destinatione, fasciculus in nidificato extrahitur et ad vasculum desideratum transmittitur.

How does a Kubernetes pod to an IP address?
Nota: Hoc uno modo est communicandi retis communicatio inter vasa.

Quid est CRI?

CRI (continens Runtime Interface) plugin est, quod kubelet concedit uti diversis ambitus currendi continens. CRI API in varias runitates aedificatur, ergo utentes tempus electionis suae eligere possunt.

Quid est CNI?

Project CNI repraesentat specificatio solutionem retis universalis pro vasis Linux ordinare. Praeterea, includit plugins, responsales variis functionibus cum vasculum retis erigendo. Plugin CNI documentum exsecutabile est quod specificatione obtemperat (de pluribus plugins infra dicemus).

Destinatio subnetuum nodis IP oratio ad siliquas assignandas

Cum unumquodque vasculum in botro habere debet IP inscriptionem, interest ut haec inscriptio unica sit. Hoc fit, singulis nodis singularem subnet assignando, ex qua siliquae in illo nodi tunc IP inscriptiones assignantur.

Node IPAM Controller

quod nodeipam Transierunt quasi vexillum parametri --controllers kube-controller-procurator, singula nodi a botro CIDR (i.e. , distributio inscriptionum IP pro reticulo botri (podCIDR) collocat. Cum haec podCIDRs non aliudquent, fieri potest ut unumquodque vasculum unicum inscriptionem IP collocari possit.

Nodi Kubernetes tribuitur podCIDR cum initio cum botro relatus est. Ad podCIDR nodorum mutandas, debes eas mandare ac deinde eas re- subire, aptas mutationes faciens ad configurationem interpositam in Kubernetes imperium lavacrum. PodCIDR nodi in sequenti mandato uti potes:

$ kubectl get no <nodeName> -o json | jq '.spec.podCIDR'
10.244.0.0/24

Kubelet continens runtime et CNI plugins: quomodo omnia opera

Vasculum scheduling per node multum gradus praeparatorii implicat. In hac sectione, solum ea quae directe ad retis folliculum constituenda sunt intendam.

Schedule nodi cuidam scheduling triggers sequens series rerum;

How does a Kubernetes pod to an IP address?

FAQ: Architectura Continentis CRI plugins.

Commercium inter continens runtime et CNI plugins

Quisque provisor retis suum CNI plugin habet. Continens runtime currit eam ad retiaculum configurare ad legumen dum incipit. In casu continentis, CNI plugin a plugin immittitur Continens CRI.

Quaelibet autem provisor suum agens. In omnibus nodis Kubernetes instituitur et ad retis siliquarum configurationem pertinet. Hoc agens vel cum CNI config comprehenditur vel in nodo creatum independenter. Mando config adiuvat CRI plugin pone quam CNI plugin vocant.

Locus CNI config nativus esse potest; per defaltam in * /etc/cni/net.d/<config-file>. Botri administratores etiam responsabiles sunt ut plugins CNI in unaquaque nodi ligatura inserantur. Locus eorum est etiam vestibulum; default Directory - /opt/cni/bin.

Cum continente utendo, semitae pro plugin config et binarii in sectione constitui possunt [plugins.«io.containerd.grpc.v1.cri».cni] в configuratione file continens.

Cum Flannel utimur sicut provisor retis nostrae, pauca loquimur de statuendo:

  • Flanneld (daemonem Flannel) plerumque installed in botro sicut DaemonSet cum install-cni quod init continens.
  • Install-cni gignit CNI configuration file (/etc/cni/net.d/10-flannel.conflist) in utroque nodo.
  • Flanneld fabrica vxlan creat, metadata retis ab API servo reddit, et monitores vasculum auletum. Cum creantur, omnibus siliquis per botrum itinera distribuit.
  • Hae viae permittunt siliquae per IP inscriptiones inter se communicare.

Ut accuratiorem de opere Flannel informationes adhibeas commendo nexus in fine articuli.

Hic schema est commercii inter Continentem CRI plugin et CNI plugins:

How does a Kubernetes pod to an IP address?

Ut supra videre potes, kubelet continens CRI plugin vocat ad vasculum creandum, quod tunc vocat CNI plugin ad reticulum vasculi configurandum. Hoc faciens, provisor retis plugin CNI alias nucleos CNI vocat plugins ad varias retis aspectus configurandas.

Commercium inter CNI plugins

Varii sunt CNI plugins quorum officium est auxilium retis communicationis inter vasa in hospitio constituere. De tribus hoc capitulo disseremus.

CNI plugin Flannel

Cum Flannel utens ut provisor retis, Continens CRI component vocat CNI plugin Flannelper CNI configuration file /etc/cni/net.d/10-flannel.conflist.

$ cat /etc/cni/net.d/10-flannel.conflist
{
  "name": "cni0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
         "ipMasq": false,
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    }
  ]
}

Flannel CNI plugin operatur in coniunctione cum Flanneld. Per startup, Flanneld podCIDR aliaque retiaculorum retiaculorum relatas singulas ab API servo servat et tabellam servat. /run/flannel/subnet.env.

FLANNEL_NETWORK=10.244.0.0/16 
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450 
FLANNEL_IPMASQ=false

Plugin CNI utitur notitia ex Flannel /run/flannel/subnet.env configurare ac vocare pontem CNI plugin.

CNI plugin Bridge

Hoc plugin appellatur cum sequenti configuratione:

{
  "name": "cni0",
  "type": "bridge",
  "mtu": 1450,
  "ipMasq": false,
  "isGateway": true,
  "ipam": {
    "type": "host-local",
    "subnet": "10.244.0.0/24"
  }
}

Cum primum vocatus, pontem Linux creat «name»: «cni0»quod notatur in config. Tum veth par pro quolibet vasculo creatur. Unus finis eius iunctus est spatii retis in vase, alter in ponte Linux in retiacula hospitis includitur. CNI plugin Bridge omnia vasa exercitus ad pontem Linux in retiacula hospitis connectit.

Finita veth par, Pons plugin vocat hospitem localem IPAM CNI plugin. Typus plugin IPAM configurari potest in config CNI quod CRI plugin usus vocat Flannel CNI plugin.

Host-loci IPAM CNI plugins

Pontem CNI vocat host-loci IPAM plugin CNI cum hoc schemate;

{
  "name": "cni0",
  "ipam": {
    "type": "host-local",
    "subnet": "10.244.0.0/24",
    "dataDir": "/var/lib/cni/networks"
  }
}

Host-loci IPAM plugin (IP Address Management - IP oratio procuratio) Redit oratio IP pro receptaculo e subnet et reponit locata IP super exercitum in indicem in sectione determinatum dataDir - /var/lib/cni/networks/<network-name=cni0>/<ip>. Hic fasciculus ID continentis continet cui haec IP oratio adsignatur.

Cum vocatum IPAM hospitem loci plugin, sequenti notitia revertitur:

{
  "ip4": {
    "ip": "10.244.4.2",
    "gateway": "10.244.4.3"
  },
  "dns": {}
}

summary

Cuivis nodi podCIDR procurator Kube-controller. Singulae nodi siliquae recipiunt inscriptiones IP ex spatio inscriptionis in spatio podCIDR distributo. Cum podCIDRs nodi non aliudcant, omnes siliquae inscriptiones IP singulares accipiunt.

Botrus administrator Kubernetes configurat et inaugurat kubelet, continens runtime, provisor retis agens, et CNI plugins unicuique nodi imitantur. In startup, provisor retis agentem CNI config generat. Cum legumen nodi horarium est, kubelet CRI plugin vocat ut eam crearet. Deinde, si continens adhibetur, continens CRI plugin vocat CNI plugin in CNI config ad configurandum retis vasculi. Ex, IP oratio podagra recipit.

Omnibus his interlocutionibus subtilitates et nugas aliquandiu intelligere me cepit. Spero hanc experientiam adiuvabit melius ut intelligat quomodo Kubernetes opera faciet. Si de aliquo fallo, commodo at mi Twitter aut in inscriptione [Inscriptio protected]. Libenter sentias attingere, si de aspectibus huius articuli vel quidlibet aliud discutere velis. Curabitur amo tecum!

References

Vasa et retiaculis

Quomodo Flannel opus facit?

CRI et CNI

PS ab translator

Lege etiam in nostro diario:

Source: www.habr.com

Add a comment