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.
F5 NGINX on 1.18
If you switched to F5 ingress, then future upgrades must be to 1.18.3 or later. 1.18.0, 1.18.1 and 1.18.2 do not support F5 ingress.
-
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.
-
Add to the base config file
$INSTALL_CONFIG_FILEwith the recommended settings for the F5 NGINX Ingress Controller:global: ingress: class: nginx-community controllerType: f5-nginxDefault ingress controller behavior
If
ingress.classandcontrollerTypeare not set within the values file, then the old ingress-nginx is installed. -
insights-on-k8smust be updated to the latest version. If you are using the--insights-on-k8s-versionyou must update the version to the latest or remove the flag. -
Run the following command, which steps through the upgrade, prompting you as required.
kxi install upgrade --filepath $INSTALL_CONFIG_FILE --version $INSIGHTS_VERSION --skip-packagesThe 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 ... -
Validate the new ingress class is deployed.
kubectl get ingress NAME CLASS ... insights-api-gateway nginx-community ... insights-api-gateway-minion nginx-community ... -
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 then this must also be migrated to the F5 NGINX Ingress Controller using the steps below.
Prerequisites
Before beginning the migration, ensure that:
helmandyq(version v4.45.1 or above) utilities are installed- You have sufficient cluster permissions to create namespaces, deploy resources, and upgrade deploys using helm
- Your current monitoring installation uses ingress-nginx as the ingress controller
Migration Steps
Firstly, add the prometheus-community helm repository to your helm repositories:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
-
Create the base configuration file
kx-prom-f5-overlay.yamlwith the settings for the F5 NGINX Ingress Controller:grafana: ingress: annotations: nginx.org/location-snippets: "" nginx.org/mergeable-ingress-type: minion nginx.org/proxy-read-timeout: 900s ingressClassName: nginx-community -
Extract and preserve the configuration from your existing ingress-nginx based
Prometheusdeploymenthelm get values -n monitoring kx-prom -o yaml > kx-prom.yaml -
Helm upgrade your
Prometheusdeployment with your F5 overlay valueshelm upgrade -n monitoring kx-prom prometheus-community/kube-prometheus-stack -f kx-prom.yaml -f kx-prom-f5-overlay.yaml -
Check your
kx-prom-grafanaingress now points to your F5 NGINX Ingress LoadBalancer or IP and its Ingress Class is nownginx-communitykubectl get ingress -n monitoring
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.