[Starlingx-discuss] How can I expose container workloads in kubernetes which are running on worker nodes?
Hi folks, Question is simple as that: I want to run some workloads in Kubernetes and expose them via NodePort or LoadBalancer service (via MetalLB). Its pretty easy to do on controller-0/1 nodes since they are connected to OAM network. Thus, I am wondering how this can be done on worker nodes which are connected to mgnmt network and data networks (but data networks can be used in conjunction with openstack only). Thank you
Containerized services may be exposed to an external network via several methods, with considerations needed for each option. 1) Add a dedicated platform interface with static IP assignment for NodePort service type - Host interface and routes are configured using the StarlingX system commands (does not need to be associated with a specific network type) - Traffic can be exposed directly via the service NodePort or via an Ingress Controller with NodePort - DNAT is used to translate between Host IP+NodePort to Pod IP+Port 2) Configure the cluster-service network to be externally routable and advertise the network using Calico BGP or static routing - Adjacent routers would learn and distribute the cluster service network - Standard K8s service load balancing is used to distributed traffic amongst pods - DNAT is required to translate between service address and pod address - Additional References: https://docs.projectcalico.org/networking/bgp https://docs.projectcalico.org/networking/advertise-service-ips 3) Configure the cluster-pod network to be externally routable and - Pod IP is directly used as the destination IP address - Can add additional Pod IP pools to select which Pods are externally routable - No abstraction of multiple Pod Endpoints (redundancy handled at the application layer) - No proxy or NAT required to reach destination endpoint - Additional References: https://docs.projectcalico.org/networking/workloads-outside-cluster I hope this additional information helps. Regards, Matt On 2020-06-28, 2:11 PM, "bnovickovs@weecodelab.com" <bnovickovs@weecodelab.com> wrote: Hi folks, Question is simple as that: I want to run some workloads in Kubernetes and expose them via NodePort or LoadBalancer service (via MetalLB). Its pretty easy to do on controller-0/1 nodes since they are connected to OAM network. Thus, I am wondering how this can be done on worker nodes which are connected to mgnmt network and data networks (but data networks can be used in conjunction with openstack only). Thank you _______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
participants (2)
-
bnovickovs@weecodelab.com
-
Peters, Matt