Skip to content

Switch to F5 Ingress from ingress-nginx

This page outlines the process for migrating from the legacy ingress-nginx controller to the F5 NGINX Ingress Controller within kdb Insights Enterprise deployments.

As ingress-nginx is being retired, migrating to the F5 NGINX Ingress Controller is strongly recommended starting from version 1.18.3. Beginning with 1.19.0, F5 NGINX will be the default ingress controller for all new installations and is the preferred solution going forward.

Install the F5 NGINX Ingress Controller

The process for installing the F5 NGINX Ingress Controller will depend on how you have deployed your cluster.

  • KX Terraform Scripts

  • Azure Marketplace

    Note

    The Azure Marketplace docs include steps to install the F5 NGINX Ingress Controller, upgrade kdb Insights Enterprise and remove the Legacy Ingress Controller. Once completed no further action is required.

kdb Insights migration steps

The migration procedure is driven by your installation configuration within your values file, which you can retrieve and use alongside the kxi-cli.

  1. Add to the base config file $INSTALL_CONFIG_FILE with the recommended settings for the F5 NGINX Ingress Controller:

    global:
        ingress:
            class: nginx-community
            controllerType: f5-nginx
    

    Default ingress controller behavior

    If ingress.class and controllerType are not set within the values file, then the old ingress-nginx is installed.

  2. insights-on-k8s must be updated to the latest version. If you are using the --insights-on-k8s-version you must update the version to the latest or remove the flag.

  3. Run the following command, which steps through the upgrade, prompting you as required.

    kxi install upgrade --filepath $INSTALL_CONFIG_FILE --version $INSIGHTS_VERSION --skip-packages
    

    The output should look similar to the following:

    running nginx-f5 encryption in flight task
    Deploying task encryption-in-flight-f5 deploy
    Task action: [JobStart        ]
    
    ...
    running nginx-f5 config task
    Deploying task ingress-mgmt-f5 configure-nginx-f5
    Task action: [JobStart        ]
    ...
    Upgrade to version x.x complete
    ...
    
  4. Validate the new ingress class is deployed.

    kubectl get ingress
    NAME                          CLASS             ...
    insights-api-gateway          nginx-community   ...
    insights-api-gateway-minion   nginx-community   ...
    
  5. Update DNS to point to F5 NGINX Ingress Loadbalancer/IP.

Once upgraded, your ingress will point to the F5 NGINX Ingress Loadbalancer/IP.

To access the kdb Insights Enterprise Web Interface, you need to update your DNS Record following the DNS setup instructions.

Monitoring Stack migration steps

If you have deployed the Monitoring Stack into your cluster and have an ingress for Grafana, this must also be migrated to the F5 NGINX Ingress Controller. To do this, reinstall the stack using the following installation command:

kxi monitoring install [OPTIONS] INSIGHTS_CLUSTER_NAME {s3|azure|gcs} CREDENTIALS_PATH --ingress-type nginx-community

Ensure that the --ingress-type argument matches your ingress configuration.

Remove the Legacy Ingress Controller

Note

Remove the Legacy Ingress Controller only when all kdb Insights Enterprise installations across the cluster have been successfully upgraded and traffic is flowing through the new F5 NGINX Ingress Controller.

The process for removing the Legacy Ingress Controller depends on how you have deployed your cluster.

  • KX Terraform Scripts: To remove the legacy Ingress Controller follow the steps here

  • Azure Marketplace: The legacy Ingress Controller removal should already be complete as part of the switchover guide here