Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Skydive estas malfermfonta, realtempa retotopologio kaj protokolanalizilo. Ĝi celas provizi ampleksan manieron kompreni kio okazas en reto-infrastrukturo.

Por interesi vin, mi donos al vi kelkajn ekrankopiojn pri Skydive. Malsupre estos afiŝo pri enkonduko al Skydive.

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Afiŝu "Enkonduko al skydive.network» sur Habré.

Skydive montras la retan topologion ricevante retajn eventojn de Skydive-agentoj. Ĉu vi iam scivolis kiel aldoni aŭ montri en topologia diagramo retajn komponantojn, kiuj estas ekster la Skydive-agenta reto aŭ ne-retajn objektojn kiel TOR, datumstokado, ktp. Ne plu devas zorgi pri tio danke al la Node-regulo API.

Ekde versio 0.20, Skydive disponigas Node regul API kiu povas esti uzita por krei novajn nodojn kaj randojn kaj ĝisdatigi la metadatenojn de ekzistantaj nodoj. La Node-regulo API estas dividita en du API-ojn: la noda regulo API kaj la rando-regulo API. La Node Rule API estas uzata por krei novan nodon kaj ĝisdatigi la metadatenojn de ekzistanta nodo. La randa regulo API estas uzata por krei limon inter du nodoj, t.e. ligas du nodojn.

En ĉi tiu blogo ni vidos du uzkazojn, unu el kiuj estas reta komponanto, kiu ne estas parto de la ĉielplonĝa reto. La dua opcio estas ne-reta komponanto. Antaŭ tio, ni rigardos kelkajn bazajn manierojn uzi la Topology Rules API.

Kreante Skydive-Nodon

Por krei nodon, vi devas provizi unikan nodnomon kaj validan nodotipo. Vi ankaŭ povas provizi kelkajn pliajn eblojn.

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

Ĝisdatigu Metadatumojn de Skydive Nodes

Por ĝisdatigi la metadatenojn de ekzistanta nodo, vi devas provizi gremlin-demandon por elekti la nodojn, sur kiuj vi volas ĝisdatigi la metadatenojn. Laŭ via peto, vi povas ĝisdatigi la metadatumojn de unu aŭ pli da nodoj uzante ununuran nodan regulon.

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

Kreante Skydive Edge

Por krei randon, vi devas specifi la fonto- kaj cel-nodojn kaj la ligspecon de la rando; por krei infanan nodon, la ligspeca valoro devas esti proprieto; simile, por krei ligspecan tavolon2, la ligilo-tipa valoro devas esti. tavolo 2. Vi povas krei pli ol unu ligon inter du nodoj, sed la tipo de ligo devas esti malsama.

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

Unua uzokazo

En ĉi tiu kazo, ni rigardos kiel montri ne-retan aparaton en la ĉielplonĝa topologio. Ni konsideru, ke ni havas datumstokejon, kiu devas esti montrata en ĉielplonĝa topologia diagramo kun iuj utilaj metadatenoj.

Ni nur bezonas krei nodan regulon por aldoni la aparaton al la topologio. Ni povas aldoni metadatumojn de aparato kiel parto de la komando krei, aŭ poste krei unu aŭ pli da ĝisdatigaj nodaj regulkomandoj.

Rulu la jenan gastigan regulkomandon por aldoni stokan aparaton al la topologia diagramo.

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

Rulu la komandon sub la randa regulo por asocii la kreitan nodon kun la gastiga nodo.

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

Post la supraj komandoj, vi nun povas vidi la aparaton videbla en la ĉielplonĝa topologia diagramo kun la donitaj metadatenoj kiel montrite en la bildo sube.

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Dua uzokazo

En ĉi tiu kazo ni vidos kiel aldoni retan aparaton, kiu ne estas parto de la ĉielplonĝa reto. Ni rigardu ĉi tiun ekzemplon. Ni havas du paraĉevalajn agentojn funkciantajn sur du malsamaj gastigantoj, por konekti ĉi tiujn du gastigantojn ni bezonas TOR-ŝaltilon. Kvankam ni povas atingi ĉi tion difinante strukturnodojn kaj ligilojn en agorda dosiero, ni vidu kiel ni povas fari la samon uzante la Topology Rules API.

Sen TOR-ŝaltilo, la du agentoj aperos kiel du malsamaj nodoj sen iuj ligiloj, kiel montrite en la bildo sube.

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Nun rulu la sekvajn komandojn de Gastigaj Reguloj por krei la TOR-ŝaltilon kaj havenojn.

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

Kiel vi povas vidi, la TOR-ŝaltilo kaj havenoj estis kreitaj kaj aldonitaj al la ĉielplonĝa topologio, kaj la topologio nun aspektos kiel la bildo sube.

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Nun rulu la sekvajn komandojn de Edge Rule por krei konekton inter la TOR-ŝaltilo, haveno 1 kaj la publika interfaco de gastiganto 1.

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

Rulu la jenajn komandojn por krei ligon inter TOR-ŝaltila haveno 2 kaj gastiganto 2 publika interfaco

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

Proprieto kaj layer2 unuiĝoj nun estas kreitaj inter la TOR-ŝaltilo kaj la haveno, same kiel layer2 unuiĝoj inter agentoj kaj havenoj. Nun la fina topologio aspektos kiel la bildo sube.

Aldonante nodon al la Skydive-topologio permane per la Skydive-kliento

Nun la du gastigantoj/agentoj estas ĝuste konektitaj kaj vi povas testi la konekton aŭ krei plej mallongan vojon kapton inter la du gastigantoj.

PS Ligo al originala afiŝo

Ni serĉas homojn, kiuj povus skribi afiŝojn pri aliaj Skydive-funkcioj.
Telegram-babilejo per skydive.network.

fonto: www.habr.com

Aldoni komenton