Component | Version |
---|---|
Solr | 8.11.1 |
ZooKeeper | 3.6.2 |
Spark | 2.4.5 |
Kubernetes | GKE, AKS, EKS 1.22 Rancher (RKE) and OpenShift 4 compatible with Kubernetes 1.22 OpenStack and customized Kubernetes installs not supported. See Kubernetes support for end of support dates. |
Ingress Controllers | Nginx, Ambassador (Envoy), GKE Ingress Controller Istio not supported. |
Deploy Fusion 5 on Other Kubernetes Platforms
setup_f5_k8s.sh
script in the fusion-cloud-native
repository provides deployment support for any Kubernetes platform, including on-premise, private cloud, public cloud, and hybrid platforms.This script is used by the setup_f5_gke.sh
, setup_f5_eks.sh
, and setup_f5_aks.sh
scripts, which provide additional platform-specific support for Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), and Azure Kubernetes Service (AKS).This topic explains how to deploy a Fusion cluster in Kubernetes using the setup_f5_k8s.sh
script in the fusion-cloud-native
repository.If you’re deploying on-premises or using a localized repository, you’ll need to use a private repository for Docker images.helm
as it is required to install Fusion for any K8s platform.
On MacOS, you can do:3.0.0
; check your Helm version by running helm version --short
.install-roles
directory.kubectl
, e.g.:role.yaml
and cluster-role.yaml
files to that namespacehelm install
command as the <install_user>
fusion-cloud-native-master
directory.YAML
file. If you use one of our setup scripts, such as setup_f5_gke.sh
, then it will create a custom values YAML file for you the first time you run it using https://github.com/lucidworks/fusion-cloud-native/blob/master/customize_fusion_values.yaml.example as a template.If you’re working with Helm directly and not using one of our setup scripts, then run the https://github.com/lucidworks/fusion-cloud-native/blob/master/customize_fusion_values.sh script to create a custom values YAML file from our https://github.com/lucidworks/fusion-cloud-native/blob/master/customize_fusion_values.yaml.example template as a starting point:--help
for usage details.<provider>
is the K8s platform you’re running on, such as gke
<cluster>
is the name of your cluster
<namespace>
is the K8s namespace where you plan to install Fusion
--node-pool
option specifies the node selector label for determining which nodes to run Fusion pods. You can pass "{}"
to let Kubernetes decide which nodes to schedule pods on.${MY_VALUES}
in the commands belo. Replace the filename with the correct filename for your environment. Keep this file handy, as you’ll need it to customize Fusion settings and upgrade to a newer version.Review the settings in the custom values YAML file to ensure the defaults are appropriate for your environment, including the number of Solr and Zookeeper replicas.Add the Lucidworks Helm repo:customize_fusion_values.sh
script creates an upgrade script to install/upgrade Fusion into Kubernetes using Helm. Look in the directory where you ran customize_fusion_values.sh
for a script named like:
<provider>_<cluster>_<namespace>_upgrade_fusion.sh
. Run this script to install Fusion.\https://<fusion-host>:6764/admin/
.kubectl
if not using the default:-n
with every command.Get a list of running pods: k get pods
Get logs for a pod using a label: k logs –l app.kubernetes.io/component=query-pipeline
Get pod deployment spec and details: k get pods <pod_id> -o yaml
Get details about a pod events: k describe po <pod_id>
Port forward to a specific pod: k port-forward <pod_id> 8983:8983
SSH into a pod: k exec -it <pod_id> -- /bin/bash
CPU/Memory usage report for pods: k top pods
Forcefully kill a pod: k delete po <pod_id> --force --grace-period 0
Scale up (or down) a deployment: k scale deployment.v1.apps/<id> --replicas=N
Get a list of pod versions: k get po -o jsonpath='{..image}' | tr -s '[[:space:]]' '\n' | sort | uniq
kubectl logs <pod_id>
to see the logs for that pod; to see the logs for previous versions of a pod, use: kubectl logs <pod_id> -p
.
You can also look at the actions Kubernetes performed on the pod using kubectl describe po <pod_id>
.To see a list of Fusion services, do:--upgrade
option with our setup scripts in this repo.The scripts in this repo automatically pull in the latest chart updates from our Helm repository and deploy any updates needed by doing a diff of your current installation and the latest release from Lucidworks.
To see what would be upgraded, you can pass the --dry-run
option to the script.kubectl get services --namespace <namespace>
to determine when the load balancer is setup and its IP address. Direct your browser to http://<GrafanaIP>:3000
and enter the username admin@localhost
and the password that was returned in the previous step.This will log you into the application. It is recommended that you create another administrative user with a more desirable password.The dashboards and datasoure will be setup for you in grafana, simply navigate to Dashboards
-> Manage
to view the vailable dashboardsSchedule a Job
default.timezone
is set to another time zone in fusion.cors
(fusion.properties
in Fusion 4.x). See the Quartz documentation for additional details.
Merchandising Zero Results
Use Hierarchical Facets
with
keyword syntax in the JavaScript Query Stage has been removed, as usage can result in random errors. See MDN Web Docs for more information.
Use Predictive Merchandiser Facets
solrconfig.xml
, all cache classes that use solr.LRUCache
must be changed to solr.search.CaffeineCache
. See Cache Implementations for more information.