F5BigHttp2Setting

The F5BigHttp2Setting CR provides many options to fine-tune how Traffic Management Microkernel (TMM) handles Http2 connections. Once configured and installed, the F5BigHttp2Setting CR can be referenced by one of the CNF CRs listed in the Additional CRs section below.

This document guides you through understanding, configuring, and installing a F5BigHttp2Setting CR.

CR parameters

The following table describes the CR spec parameters:

Parameter Description
activationModes Specifies whether to enable all HTTP2 modes, or only the Selected Modes listed in the Enabled column.
concurrentStreamsPerConnection Specifies the number of outstanding concurrent requests that are allowed on a single HTTP/2 connection. The default value is 10.
connectionIdleTimeout Specifies the number of seconds an HTTP2 connection is ideally open before being shut down. The default is 300 seconds.
frameSize Specifies the size of data frames that HTTP2 sends to the client in bytes. The default value is 2048 bytes. Larger frame sizes improve network utilization, but can affect concurrency.
insertHeader Specifies whether an HTTP header indicating the use of HTTP2 should be included in the request that goes to the server. The default value is disabled for this parameter.
insertHeaderName Specifies the name of the HTTP header controlled by Insert Header. The default is X-HTTP2.
receiveWindow Specifies how the HTTP2 profile performs flow control. The default value is 32 KB for this parameter. The receive window allows HTTP2 to stall individual upload streams when needed. This functionality applies to HTTP2 and to SPDY version 3.
writeSize Specifies the total size of combined data frames (in bytes) that the HTTP2 sends in a single write. The default value is 16384 bytes.
headerTableSize Specifies the size of the header table in bytes. The default value is 4096 bytes.
enforceTlsRequirements Specifies whether the system requires TLS for communications between specified senders and recipients.

CR Example

Following is an example F5BigHttp2Setting CR:

apiVersion: k8s.f5net.com/v1
kind: F5BigHttp2Setting
metadata:
  name: "cnf-http2-profile"
  namespace: "cnf-gateway"
spec:
  concurrentStreamsPerConnection: 20
  connectionIdleTimeout:400
  frameSize: 4098

CR shortName

CR shortNames provide an easy way to view installed CRs, and their configuration parameters. The CR shortName can also be used to delete the CR instance. The F5BigHttp2Setting CR shortName is http2set.

View CR instance:

oc get http2set -n <namespace>

View CR configuration:

oc get http2set -n <namespace> -o yaml

Default profile

After installing the BIG-IP Controller, a default F5BigHttp2Setting CR is created in each new namespace. In this example, a default F5BigHttp2Setting CR exists in the cnf-gateway namespace:

oc get f5-big-http2-settings -n cnf-gateway
NAME         
sys-default-http2 

Requirements

Ensure you have:

Installation

Following are the steps to install the F5BigHttp2Setting CR:

  1. The example F5BigHttp2Setting CR modifies the concurrentStreamsPerConnection sizes, connectionIdleTimeout and frameSize parameters. Copy and paste the following example to a YAML file:

    apiVersion: k8s.f5net.com/v1
    kind: F5BigHttp2Setting
    metadata:
      name: "cnf-http2-profile"
      namespace: "cnf-gateway"
    spec:
      concurrentStreamsPerConnection: 20
      connectionIdleTimeout:400
      frameSize: 4098
    
  2. Install the F5BigHttp2Setting CR:

    oc apply -f cnf-http2-cr.yaml
    
  3. Following is an example F5BigDnsApp CR using the HTTP2 profile.

    apiVersion: "k8s.f5net.com/v1"
    kind: F5BigDnsApp
    metadata:
      name: "cnf-dohapp"
      namespace: "cnf-gateway"
    spec:
      ipProtocol: "http2"
      dohProtocol: "udp"
    destination:
      ipv6Address: "2002::192:168:100:202"
      port: 443
    dns:
      dnsCache: "cnf-dnscache"
      dns64Mode: "secondary"
      dns64Prefix: "64:ff9b::"
      dns64AdditionalSectionRewrite: "v4-only"
    http2Settings: 
      clientSide: "cnf-http2-profile"
    pool:
      members:
        - address: "2002::10:10:10:100"
        - address: "2002::10:10:10:101"
    
  4. Install F5BigDnsApp CR, run the following command:

    oc apply -f f5-cnf-dohapp.yaml
    

    In this example, the BIG-IP Controller logs indicate the F5BigDnsApp CR was added/updated:

    I0202 12:00:00:12350    1 event.go:282] Event(v1.ObjectReference{Kind:"F5DnsApp", DnsApp cnf-gateway/cnf-dohapp was added/updated
    
  5. The TMM Proxy Pod can now process application traffic using the F5BigHttp2Setting CR.

Additional CRs

The F5BigHttp2Setting CR can be referenced by the F5BigDnsApp (High-performance DNS resolution, caching, and DNS64 translations) CR.

Feedback

Provide feedback to improve this document by emailing cnfdocs@f5.com.