Creating a Layer4 fastL4

This use case is describing a process of deploying an app into an existing Service Proxy for Kubernetes (SPK) environment, and expose the service using a Fastl4 Custom Resource (CR).

Custom Resource Definitions (CRD)

SPK Install adds a number of F5 specific Custom Resource Definitions (CRDs). One of these CRDs is ingressroutefastl4s.k8s.f5net.com also referred to as the fastl4 CRD resource definition.

FastL4 in the context of SPK

The Service Proxy for Kubernetes (SPK) FastL4 Custom Resource Definition (CRD) configures the Service Proxy Traffic Management Microkernel (TMM) for full-proxy, layer 4 (L4) TCP and UDP traffic management and load balancing. The FastL4 CRD also enables granular connection management. For example, you can modify the type-of-service (TOS) or quality-of-service (QoS) packet headers, connection idle-timeout periods, and whether the system should send TCP reset packets. To view the full list of available FastL4 CRD options, refer to the SPK Reference Guide.

Assumptions

  • You have access to an existing healthy OpenShift environment

  • You have deployed SPK version 1.2.3.3

  • You have deployed an application to your watched namespace

Use case scenario

  1. Application owner has containerized a new Network Function and deploys to the namespace (Project) watched by the F5ingress controller.

  2. SPK Administrator exposes the service using a FastL4 Custom Resource (CR).

  3. End User can then consume the service by connecting to the destination address/port within TMM (Virtual Server).

FastL4 workflow

Create a Fastl4 yaml file

Create a file fl4.yaml using the sample below for deployment. Note that we specify the API version, as well as the type of ingress we would like to create (IngressRouteFastL4). The destination port and address are reflective of Virtual Server on BIG-IP.

apiVersion: "k8s.f5net.com/v1"
kind: IngressRouteFastL4
metadata:
  name: podinfo
service:
  name: podinfo
  port: 9898
spec:
  destinationPort: 8080
  destinationAddress: "Your destination IP"

Deploy FastL4 Custom Resource to F5ingress

Now we can install the Ingress Route Fast L4 custom resource using the standard oc utility. The install process complete in a few seconds. Once complete you can check for the applied values using oc get with the -o yaml option. Using oc describe we can see very similar details in a different format.

oc project cnf-apps
oc create -f fl4.yaml -n cnf-apps
oc get ingressroutefastl4 podinfo -o yaml
oc describe ingressroutefastl4 podinfo 

Discover the f5ingress pod name

oc get pods -n lab-spk-ingress

Use CURL to test application is exposed using the Virtual Server

curl http://<Your IP Address>:8080

The results should look something like this example: curl-results

How to uninstall your demo application and FastL4 CR

Deleting the Fastl4 custom resource is fairly straightforward. We can use the oc command again point to the yaml file and use the delete option. Alternatively, if you know the object name, type and the namespace it resides in you can delete the object without the file.

oc delete -f fl4.yaml