Introducing usecase of Cilium CNI

The purpose of this spec is to introduce a usecase example of Cilium
CNI [1] for high-performance network connectivity.

[1] https://cilium.io/

Implements: blueprint intro-cilium
Change-Id: I8713f7ecc39147ad15b4eeeb5905778ee8f4ed80
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
This commit is contained in:
Yasufumi Ogawa 2023-10-20 03:51:12 +09:00
parent a8ac40397c
commit 26f23a5df7
7 changed files with 926 additions and 0 deletions

View File

@ -7,4 +7,5 @@ Tacker 2024.1 Specifications
:maxdepth: 1
v2-api-horizon/*
intro-cilium/*
*

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="180mm"
height="136mm"
viewBox="0 0 180 136"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="usecase1.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.5554293"
inkscape:cx="256.52082"
inkscape:cy="282.55865"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer2" />
<defs
id="defs2" />
<g
inkscape:label="background"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect31"
width="130.94482"
height="86.066177"
x="23.783136"
y="27.358784" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="objects">
<rect
style="fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951"
width="98.571419"
height="57.447002"
x="38.297054"
y="41.517876" />
<rect
style="fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945"
width="62.890297"
height="21.807745"
x="54.480103"
y="46.750534" />
<rect
style="fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-9"
width="62.890297"
height="17.066786"
x="55.078789"
y="71.201416" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="text">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="29.421789"
y="109.45676"
id="text4647"><tspan
sodipodi:role="line"
id="tspan4645"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="29.421789"
y="109.45676">host</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="44.278252"
y="94.603806"
id="text4647-4"><tspan
sodipodi:role="line"
id="tspan4645-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="44.278252"
y="94.603806">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="66.987267"
y="81.857986"
id="text4647-4-6"><tspan
sodipodi:role="line"
id="tspan40041"
x="66.987267"
y="81.857986">OpenStack</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="67.37104"
y="54.557861"
id="text4647-4-6-9"><tspan
sodipodi:role="line"
x="67.37104"
y="54.557861"
id="tspan40116">Kubernetes</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="72.821449"
y="62.202511"
id="text4647-4-6-9-5"><tspan
sodipodi:role="line"
x="72.821449"
y="62.202511"
id="tspan40116-8">(Master)</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,278 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="400mm"
height="136mm"
viewBox="0 0 400 136"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="usecase2.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.77771465"
inkscape:cx="642.90932"
inkscape:cy="-108.65168"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="background"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264582;stroke-opacity:1"
id="rect31"
width="361.85977"
height="114.32323"
x="14.25813"
y="11.435926" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="objects"
style="display:inline">
<rect
style="fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951"
width="98.571419"
height="63.675594"
x="28.772045"
y="30.512058" />
<rect
style="fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-9"
width="62.890297"
height="17.066786"
x="45.55378"
y="64.85141" />
<rect
style="display:inline;fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951-3"
width="98.571419"
height="63.675594"
x="144.12704"
y="30.552101" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-1"
width="62.890297"
height="21.807745"
x="160.31009"
y="42.024155" />
<rect
style="display:inline;fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951-3-8"
width="98.571419"
height="63.675594"
x="260.98355"
y="30.662582" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-1-8"
width="62.890297"
height="21.807745"
x="279.28329"
y="37.361324" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect37945-9-8-9"
width="62.890297"
height="23.182524"
x="279.88199"
y="62.870537" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 12.590286,106.2005 H 447.31132"
id="path58765" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 30.4,106.20051 H 357.36198"
id="path59262" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 78.111874,93.805216 V 106.37818"
id="path59506" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 313.13376,93.777296 V 106.35026"
id="path59506-8" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 194.1718,93.751216 V 106.32417"
id="path59506-0" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="text"
style="display:inline">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="23.074253"
y="119.95037"
id="text4647"><tspan
sodipodi:role="line"
id="tspan4645"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="23.074253"
y="119.95037">host</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="37.045891"
y="22.710709"
id="text4647-47"><tspan
sodipodi:role="line"
id="tspan4645-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="37.045891"
y="22.710709">OpenStack Controller Node</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="153.57091"
y="22.749756"
id="text4647-47-9"><tspan
sodipodi:role="line"
id="tspan4645-2-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="153.57091"
y="22.749756">Kubernetes Master Node</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="270.13681"
y="21.951088"
id="text4647-47-6"><tspan
sodipodi:role="line"
id="tspan4645-2-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="270.13681"
y="21.951088">OpenStack Worker Node</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="34.753242"
y="89.841301"
id="text4647-4"><tspan
sodipodi:role="line"
id="tspan4645-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="34.753242"
y="89.841301">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="57.462257"
y="75.50798"
id="text4647-4-6"><tspan
sodipodi:role="line"
id="tspan40041"
x="57.462257"
y="75.50798">OpenStack</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="150.10825"
y="89.877419"
id="text4647-4-4"><tspan
sodipodi:role="line"
id="tspan4645-8-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="150.10825"
y="89.877419">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="173.20103"
y="49.831482"
id="text4647-4-6-9-8"><tspan
sodipodi:role="line"
x="173.20103"
y="49.831482"
id="tspan40116-6">Kubernetes</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="178.65144"
y="57.476128"
id="text4647-4-6-9-5-0"><tspan
sodipodi:role="line"
x="178.65144"
y="57.476128"
id="tspan40116-8-4">(Master)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="266.96475"
y="89.977097"
id="text4647-4-4-6"><tspan
sodipodi:role="line"
id="tspan4645-8-3-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="266.96475"
y="89.977097">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="291.79047"
y="73.527107"
id="text4647-4-6-3-3"><tspan
sodipodi:role="line"
id="tspan40041-3-0"
x="291.79047"
y="73.527107">OpenStack</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="292.17422"
y="45.168644"
id="text4647-4-6-9-8-3"><tspan
sodipodi:role="line"
x="292.17422"
y="45.168644"
id="tspan40116-6-0">Kubernetes</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="297.62463"
y="52.813297"
id="text4647-4-6-9-5-0-9"><tspan
sodipodi:role="line"
x="297.62463"
y="52.813297"
id="tspan40116-8-4-2">(Worker)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="297.52002"
y="82.734367"
id="text4647-4-6-9-5-0-9-1"><tspan
sodipodi:role="line"
x="297.52002"
y="82.734367"
id="tspan40116-8-4-2-3">(Worker)</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="380mm"
height="180mm"
viewBox="0 0 380 180"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="usecase3.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.77771465"
inkscape:cx="642.90932"
inkscape:cy="302.81029"
inkscape:window-width="3370"
inkscape:window-height="1376"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer3" />
<defs
id="defs2" />
<g
inkscape:label="background"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<rect
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264581;stroke-opacity:1"
id="rect31"
width="338.5437"
height="157.17192"
x="15.84563"
y="11.978896" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="VMs">
<rect
style="display:inline;fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951"
width="98.571419"
height="63.675594"
x="37.23872"
y="77.607933" />
<rect
style="display:inline;fill:#e2ffd0;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951-3"
width="178.61821"
height="104.27638"
x="159.47267"
y="37.047157" />
<rect
style="display:inline;fill:#e2ffae;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951-3-1"
width="75.22287"
height="52.546436"
x="168.26794"
y="49.0411" />
<rect
style="display:inline;fill:#e2ffae;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect24951-3-1-8"
width="75.22287"
height="52.546436"
x="252.65047"
y="48.519238" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="objects"
style="display:inline">
<rect
style="fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-9"
width="62.890297"
height="19.189516"
x="54.020454"
y="109.82457" />
<rect
style="display:inline;fill:#fcf2ff;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-9-4"
width="57.101475"
height="15.067174"
x="72.957581"
y="82.868294" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-1"
width="62.890297"
height="21.807745"
x="175.65572"
y="55.253334" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-opacity:1"
id="rect37945-1-8"
width="62.890297"
height="21.807745"
x="258.64548"
y="54.823837" />
<rect
style="display:inline;fill:#fcf2c9;fill-opacity:1;stroke:#000000;stroke-width:0.264584;stroke-opacity:1"
id="rect37945-9-8-9"
width="62.890297"
height="23.182524"
x="210.03224"
y="109.96636" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
d="M 12.590286,106.2005 H 447.31132"
id="path58765" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 38.866672,153.29664 H 338.86672"
id="path59262" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 86.578546,140.90131 v 12.573"
id="path59506" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 240.20959,140.84731 V 153.4203"
id="path59506-0" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="text"
style="display:inline">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="31.540928"
y="161.75406"
id="text4647"><tspan
sodipodi:role="line"
id="tspan4645"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="31.540928"
y="161.75406">host</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="45.512566"
y="71.923256"
id="text4647-47"><tspan
sodipodi:role="line"
id="tspan4645-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="45.512566"
y="71.923256">OpenStack Controller Node</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="210.43147"
y="30.488579"
id="text4647-47-6"><tspan
sodipodi:role="line"
id="tspan4645-2-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="210.43147"
y="30.488579">OpenStack Worker Node</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="43.219917"
y="136.93703"
id="text4647-4"><tspan
sodipodi:role="line"
id="tspan4645-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="43.219917"
y="136.93703">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="68.574768"
y="121.54546"
id="text4647-4-6"><tspan
sodipodi:role="line"
id="tspan40041"
x="68.574768"
y="121.54546">OpenStack</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="81.031784"
y="92.548401"
id="text4647-4-6-3"><tspan
sodipodi:role="line"
id="tspan40041-3"
x="81.031784"
y="92.548401">VNF Package</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="165.45387"
y="136.97316"
id="text4647-4-4"><tspan
sodipodi:role="line"
id="tspan4645-8-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="165.45387"
y="136.97316">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="188.54666"
y="63.060661"
id="text4647-4-6-9-8"><tspan
sodipodi:role="line"
x="188.54666"
y="63.060661"
id="tspan40116-6">Kubernetes</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="193.99707"
y="70.705315"
id="text4647-4-6-9-5-0"><tspan
sodipodi:role="line"
x="193.99707"
y="70.705315"
id="tspan40116-8-4">(Master)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="178.06564"
y="96.327133"
id="text4647-4-4-6"><tspan
sodipodi:role="line"
id="tspan4645-8-3-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="178.06564"
y="96.327133">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="261.19217"
y="96.725029"
id="text4647-4-4-6-9"><tspan
sodipodi:role="line"
id="tspan4645-8-3-4-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="261.19217"
y="96.725029">VM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="221.94038"
y="120.62296"
id="text4647-4-6-3-3"><tspan
sodipodi:role="line"
id="tspan40041-3-0"
x="221.94038"
y="120.62296">OpenStack</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="271.53641"
y="62.631157"
id="text4647-4-6-9-8-3"><tspan
sodipodi:role="line"
x="271.53641"
y="62.631157"
id="tspan40116-6-0">Kubernetes</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="276.98682"
y="70.27581"
id="text4647-4-6-9-5-0-9"><tspan
sodipodi:role="line"
x="276.98682"
y="70.27581"
id="tspan40116-8-4-2">(Worker)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="227.66977"
y="129.83018"
id="text4647-4-6-9-5-0-9-1"><tspan
sodipodi:role="line"
x="227.66977"
y="129.83018"
id="tspan40116-8-4-2-3">(Worker)</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,212 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
================================================================
Cilium CNI for high-performance network connectivity for VNF/CNF
================================================================
Introducing Cilium CNI for high-performance network connectivity for VNF/CNF.
https://blueprints.launchpad.net/tacker/+spec/intro-cilium
Problem description
===================
One of the pain point of tacker is that it hasn't been implemented any
network optimization mechanism by default while we've targeted vRAN usecases
in which high performance network connectivity is required.
It's available for VMs or containers to attach any dedicated hardware
acceleration device such as virtio or SR-IOV via neutron or OVN.
However, such a network acceleration technology is not so suitable for a
case in which so many entities are run on distributed nodes for covering
wide area of data plane. Especially for container usecase, it's more difficult
because implementation of virtual device is not so mature or routing is
not designed well as known as a complexity in service mesh.
Cilium is for providing, securing, and observing network connectivity between
workloads, fueled by the revolutionary Kernel technology eBPF [#cilium]_.
Although the performance of network throughput is less than other
technologies, it's still not so bad comparing with.
.. image:: img/cilium-usage1.png
:width: 580
Use Cases
---------
Cilium supports several kind of usecases of networking including
high-performance CNI, L4 load-balancer or BGP based on eBPF technology.
One of the effective usage is to avoid a complexity of traditional service mesh
as described in the previous section.
Cilium Service Mesh is for replacing traditional service mesh frameworks
by the mesh layer directly into the kernel using eBPF without sidecar proxies.
It manages connectivity at both the networking and application protocol layers,
handling protocols like IP, TCP, UDP, HTTP, Kafka, gRPC, and DNS with greater
efficiency.
With Cilium's Cluster Mesh for multi-cluster networking, you can connect the
networks of multiple clusters in such as way that pods in each cluster can
discover and access services in all other clusters of the mesh,
provided all the clusters run Cilium as their CNI [#cilium_mesh]_.
This allows effectively joining multiple clusters into a large unified network,
regardless of the Kubernetes distribution or location each of them is running.
.. image:: img/cilium-multinodes.png
Although there are a lot of useful example usecases for Tacker's service
scope, we focus on the most basic usecases to be implemented as
samples in this spec.
In the all usecases, Tacker is able to deploy VNFs/CNFs on nodes in which
Cilium CNI is activated.
Single Kubernetes node on All-in-one devstack environment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The first usecase is to deploy a single Kubernetes node on all-in-one devstack
environment. It's one of the simplest usecase and supposed to mainly be used
for development for test Cilium networking.
.. image:: img/usecase1.svg
:width: 400
Multi-nodes Kubernetes cluster on multi-node OpenStack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The second usecase is to deploy a multi-node Kubernetes node on multiple
OpenStack nodes for running some more complex or realistic scenarios of
Cilium networking.
In this usecase, Kubernetes master node is separated from OpenStack controller
node because of duplicated default port of cilium and an OpenStack service.
.. image:: img/usecase2.svg
:width: 1000
Multi-nodes Kubernetes nodes from a VNF package
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The final usecase in this spec is to deploy a multi-node Kubernetes node
deployed with Tacker's VNF package for auto-healing or auto-scaling
OpenStack nodes for running some more complex or realistic scenarios of
Cilium networking.
All Kubernetes services are on the OpenStack worker node.
.. image:: img/usecase3.svg
:width: 880
Proposed change
===============
The purpose of this spec is to introduce simple usecases using Cilium
networking with eBPF or XDP.
We need to update devstack scripts for installing Cilium not only in
Tacker's repo but also
devstack-plugin-container's repo [#devstack-plugin-container]_.
In this updated devstack script, ``CONTAINER_ENGINE`` should be set to
CRI-O because Docker is not supported as the default runtime in Kubelet
anymore and causes a trouble sometimes.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Upgrade impact
--------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
* Yasufumi Ogawa <yasufum.o@gmail.com> <yasufumi.ogawa@ntt.com>
Work Items
----------
* Replace container runtime from docker to CRI-O.
* Support devstack script for installing cilium CNI instead of flannel.
* Fix compatible combination of versions of Kubernetes, container runtime and
golang.
* Disable kuryr-kubernetes.
Dependencies
============
None
Testing
=======
None
Documentation Impact
====================
* Update a devstack setup guides for setting up cilium.
* Add an overview of usecases as an introduction.
* Add each instruction of deployment for the usecases as a detailed
instruction.
* Add a cilium usage guides for operators considering cases such as trouble
shooting of cilium or using eBPF functionalities directly.
References
==========
.. [#cilium] https://cilium.io/
.. [#cilium_mesh] https://cilium.io/use-cases/cluster-mesh/
.. [#devstack-plugin-container] https://opendev.org/openstack/devstack-plugin-container