<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Forwarding to the list - didn't 'reply all'</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size: 11pt;" data-ogsc=""><b>From:</b> Webster, Steven <Steven.Webster@windriver.com><br>
<b>Sent:</b> Thursday, April 30, 2020 6:09 PM<br>
<b>To:</b> Jones, Bruce E <bruce.e.jones@intel.com><br>
<b>Subject:</b> Re: networking across pods / OpenStack VMs</font>
<div> </div>
</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span>Hi Bruce,<br>
</span>
<div><br>
</div>
<div>It's an interesting and (I think) valid question. The key issue is that there is no coordination between openstack (neutron) networking and kubernetes. Here are some thoughts - keep in mind I have not tried any of this!<br>
</div>
<div><br>
</div>
<div>1. In StarlingX as it stands today, it would probably be possible to connect a container and VM via SR-IOV. Similar to the neutron issue, there's no coordination between openstack (nova) and the kubernetes SR-IOV device plugin. So you'd probably want
to dedicate an entire NIC to SR-IOV use for kubernetes, and an entire NIC to openstack, on separate data networks. Otherwise, it would be possible for kubernetes and openstack to grab the same SR-IOV VF. Of course, you'd want to configure the external switch
such that the SR-IOV ports dedicated to kubernetes could reach those dedicated to openstack.<br>
</div>
<div><br>
</div>
<div>2. I think it would be possible to expose a nodePort to an application running in a kubernetes service. Then, the openstack VMs could communicate via with the app via the nodePort by essentially going 'external' [1]</div>
<div><br>
</div>
<div>3. Run the application in a kubernetes pod/container running inside the VM (that has joined the bare-metal cluster). The VM would essentially be seen as another node that has joined the cluster.<br>
</div>
<div><br>
</div>
<span>4. There's a project which aims to solve some of the neutron/k8s integration - kubernetes-kuyr. This aims to enable neutron networking awareness in a kubernetes cluster [2]. We don't integrate or support this project in StarlingX 3.0+</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span><br>
</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span>Happy to continue the discussion if anybody else has any thoughts,</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<span><br>
</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
Steve</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
[1] <a href="https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/" id="LPlnk502310" style="">https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/</a></div>
<div id="LPBorder_GTaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc2VydmljZXMtbmV0d29ya2luZy9jb25uZWN0LWFwcGxpY2F0aW9ucy1zZXJ2aWNlLw.." class="LPBorder843325" style="width:100%; margin-top:16px; margin-bottom:16px; max-width:800px; min-width:424px">
<table id="LPContainer843325" role="presentation" style="padding:12px 36px 12px 12px; width:100%; border-width:1px; border-style:solid; border-color:rgb(200,200,200); border-radius:2px">
<tbody>
<tr valign="top" style="border-spacing:0px">
<td style="width:100%">
<div id="LPTitle843325" style="font-size:21px; font-weight:300; margin-right:8px; font-family:wf_segoe-ui_light,"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif; margin-bottom:12px">
<a target="_blank" id="LPUrlAnchor843325" href="https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/" style="text-decoration: none;">Connecting Applications with Services - Kubernetes</a></div>
<div id="LPDescription843325" style="font-size: 14px; max-height: 100px; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px; margin-right: 8px; overflow: hidden; color: rgb(102, 102, 102);">
This specification will create a Service which targets TCP port 80 on any Pod with the run: my-nginx label, and expose it on an abstracted Service port (targetPort: is the port the container accepts traffic on, port: is the abstracted Service port, which can
be any port other pods use to access the Service).View Service API object to see the list of supported fields in service definition.</div>
<div id="LPMetadata843325" style="font-size: 14px; font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; color: rgb(166, 166, 166);">
kubernetes.io</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
[2] <a href="https://github.com/openstack/kuryr-kubernetes" id="LPlnk699405" style="">https://github.com/openstack/kuryr-kubernetes</a></div>
<div id="LPBorder_GTaHR0cHM6Ly9naXRodWIuY29tL29wZW5zdGFjay9rdXJ5ci1rdWJlcm5ldGVz" class="LPBorder145051" style="width:100%; margin-top:16px; margin-bottom:16px; max-width:800px; min-width:424px">
<table id="LPContainer145051" role="presentation" style="padding:12px 36px 12px 12px; width:100%; border-width:1px; border-style:solid; border-color:rgb(200,200,200); border-radius:2px">
<tbody>
<tr valign="top" style="border-spacing:0px">
<td>
<div id="LPImageContainer145051" style="margin-right:12px; height:160px; overflow:hidden">
<a target="_blank" id="LPImageAnchor145051" href="https://github.com/openstack/kuryr-kubernetes" style=""><img id="LPThumbnailImageId145051" alt="" height="160" width="160" style="display:block" src="https://avatars2.githubusercontent.com/u/324574?s=400&v=4"></a></div>
</td>
<td style="width:100%">
<div id="LPTitle145051" style="font-size:21px; font-weight:300; margin-right:8px; font-family:wf_segoe-ui_light,"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif; margin-bottom:12px">
<a target="_blank" id="LPUrlAnchor145051" href="https://github.com/openstack/kuryr-kubernetes" style="text-decoration: none;">GitHub - openstack/kuryr-kubernetes: Kubernetes integration with OpenStack networking</a></div>
<div id="LPDescription145051" style="font-size: 14px; max-height: 100px; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px; margin-right: 8px; overflow: hidden; color: rgb(102, 102, 102);">
The OpenStack Kuryr project enables native Neutron-based networking in Kubernetes. With Kuryr-Kubernetes it's now possible to choose to run both OpenStack VMs and Kubernetes Pods on the same Neutron network if your workloads require it or to use different segments
and, for example, route between ...</div>
<div id="LPMetadata145051" style="font-size: 14px; font-weight: 400; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; color: rgb(166, 166, 166);">
github.com</div>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<div id="appendonsend"></div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size: 11pt;" data-ogsc=""><b>From:</b> Jones, Bruce E <bruce.e.jones@intel.com><br>
<b>Sent:</b> Thursday, April 30, 2020 1:36 PM<br>
<b>To:</b> starlingx-discuss@lists.starlingx.io <starlingx-discuss@lists.starlingx.io><br>
<b>Subject:</b> [Starlingx-discuss] networking across pods / OpenStack VMs</font>
<div> </div>
</div>
<div lang="EN-US">
<div class="x_WordSection1">
<p class="x_MsoNormal" style="margin-top: 0px; margin-bottom: 0px;margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">
I have a question from a potential user for the Networking team. Is it possible in stx.3.0 to connect applications running in K8S pods to apps running in VMs under OpenStack? If so, how? If not, is that something that we could solve in StarlingX or is this
something we’d need the respective upstreams to address?</p>
<p class="x_MsoNormal" style="margin-top: 0px; margin-bottom: 0px;margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">
</p>
<p class="x_MsoNormal" style="margin-top: 0px; margin-bottom: 0px;margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">
Thank you!<br>
<br>
</p>
<p class="x_MsoNormal" style="margin-top: 0px; margin-bottom: 0px;margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">
brucej</p>
</div>
</div>
</div>
</div>
</body>
</html>