Citrix ADC ingress controller

TCP profile support for services of type LoadBalancer

This topic contains information on how to apply TCP profiles for services of type LoadBalancer. TCP profile support for service of type LoadBalancer is similar to TCP profile support on Ingress. For information on TCP profile support on Ingress, see TCP profile support on Ingress.

A TCP profile is a collection of TCP settings. Instead of configuring the settings on each entity, you can configure TCP settings in a profile and bind the profile to all the required entities.

The Citrix ingress controller provides the following service annotations for TCP profile for services of type LoadBalancer. You can use these annotations to define the TCP settings for the Citrix ADC.

Service annotation Description
service.citrix.com/frontend-tcpprofile Use this annotation to create the front-end TCP profile (Client Plane).
service.citrix.com/backend-tcpprofile Use this annotation to create the back-end TCP profile (Server Plane).

User-defined TCP profiles

Using service annotations for TCP, you can create custom profiles with name same as cs virtual server or service group and bind to the corresponding virtual server(frontend-tcpprofile) and service group (backend-tcpprofile).

Service annotation Sample
service.citrix.com/frontend-tcpprofile service.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" : "enabled"}'
service.citrix.com/backend-tcpprofile service.citrix.com/backend-tcpprofile: '{"ws":"enabled", "sack" : "enabled"}'

Built-in TCP profiles

Built-in TCP profiles do not create any profile and bind a given profile name in annotation to the corresponding virtual server(frontend-tcpprofile) and service group(backend-tcpprofile).

Following are examples for built-in TCP profiles.

service.citrix.com/frontend-tcpprofile: "tcp_preconf_profile"
service.citrix.com/backend-tcpprofile: '{"citrix-svc":"tcp_preconf_profile"}

Example: Service of Type load balancer with the TCP profile configuration

In this example, TCP profiles are configured for a sample application tea-beverage. This application is deployed and exposed using a service of type LoadBalancer using the tea-profile-example.yaml file.

For step by step instruction for exposing services of type LoadBalancer, see service of type LoadBalancer.

Following is a snippet of the service configuration with TCP profile.

  apiVersion: v1
  kind: Service
  metadata:
  name: tea-beverage
  annotations:
    service.citrix.com/secure_backend: '{"443-tcp": "True"}'
    service.citrix.com/service_type: 'SSL'
    service.citrix.com/backend-tcpprofile: '{"ws":"ENABLED", "sack" : "enabled"}'
    service.citrix.com/frontend-tcpprofile: '{"ws":"ENABLED", "sack" : "enabled"}'
  spec:
    type: LoadBalancer
    loadBalancerIP: 10.105.158.194
  ports:
  - name: tea-443
  port: 443
  targetPort: 443
  selector:
  name: tea-beverage

Note:

The TCP profile is supported for single port services.

TCP profile support for services of type LoadBalancer