Which Kubernetes version do you support?
GigaSpaces products can be used with Kubernetes release 1.9 or later.
What is Helm?
Helm is a popular package manager for Kubernetes that's used to manage the orchestration of an application cluster. GigaSpaces uses Helm to deploy the InsightEdge Platform and the XAP data grid on Kubernetes.
Helm employs a packaging format called a chart, which is a collection of files that describe a related set of Kubernetes resources.
For more information about Helm and Helm charts, see the Helm documentation.
Do the InsightEdge and XAP open-source editions support Kubernetes-based deployment?
No, only the commercial editions (InsightEdge Platform, XAP Premium, and XAP Enterprise) support Kubernetes. GigaSpaces provides a 24-hour tryme license and a longer (30-day) trial license so you can evaluate these products in the Kubernetes environment.
How is deploying GigaSpaces products over Kubernetes different from deploying them to the Service Grid?
KubeGrid (the GigaSpaces integration of InsightEdge and XAP with Kubernetes) was designed to utilize Kubernetes' scheduling and native controllers to leverage any new features introduced in future releases and the open-source community. Additionally, KubeGrid uses the key features of the Kubernetes platform like cloud-native orchestration automation with self-healing, cooperative multi-tenancy, RBAC authorization, and auto-scaling instead of Service Grid components (such as the Grid Service Agent and Grid Service Manager).
Do GigaSpaces products support the major cloud providers, such as AWS, Microsoft Azure, and Google Cloud Platform?
Kubernetes can be used in any type of environment (on-premise, cloud, or hybrid) and is supported by every major cloud provider, including public cloud platforms like Amazon EKS, Microsoft Azure AKS and Google's GCP GKE. InsightEdge and XAP can be deployed over Kubernetes, therefore we support all the major cloud providers that can be used with Kubernetes.
Installing the InsightEdge Platform and XAP in Kubernetes
What do Helm charts look like in terms of structure and dependencies?
A Helm chart has the following directory structure:
<the application name>/ Chart.yaml # A YAML file containing information about the chart LICENSE # OPTIONAL: A plain text file containing the license for the chart README.md # OPTIONAL: A human-readable README file requirements.yaml # OPTIONAL: A YAML file listing dependencies for the chart values.yaml # The default configuration values for this chart charts/ # A directory containing any charts upon which this chart depends. templates/ # A directory of templates that, when combined with values, # will generate valid Kubernetes manifest files. templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes
For more information about Helm chart file structure, see this section of the Helm documentation.
What type of Helm charts are included in with InsightEdge and XAP?
The InsightEdge Platform and XAP data grid can each be installed using one main Helm chart (
xap). The following additional sub-charts are available for those who want to customize the configuration of one or more Pod types:
manager(for the Manager Pod)
pu(for the Data Pod)
zeppelin(for InsightEdge only)
Gigaspaces charts are hosted in the GigaSpaces Helm repository. This repository can be added to Helm using the following command:
helm repo add gigaspaces https://resources.gigaspaces.com/helm-charts
The GigaSpaces charts can be fetched and copied to a local disk using the following command:
helm fetch gigaspaces/insightedge --version=14.2 --untar
Can I deploy multiple Processing Units in a Data Pod?
This is theoretically possible but not practical to implement, because it negates the advantages of the Kubernetes architecture.
The best practice for a Kubernetes- based architecture is for each Data Pod to be the smallest and simplest unit, meaning it holds a single Processing Unit. This architecture enables auto-recovery and auto-scaling with each Processing Unit as a standalone, so an out of memory exception or high CPU utilization in a single Processing Unit won't trigger Kubernetes to perform Data Pod recovery or auto-scaling for other, unaffected Processing Units.
At deployment time, a Processing Unit JAR is provided via a resource URL during the Helm installation. The Processing Unit is then associated with a Data Pod (each Data Pod contains a single Processing Unit instance).
Administering the InsightEdge Platform and XAP in Kubernetes
How do I monitor InsightEdge and XAP in Kubernetes?
The Kubernetes dashboard can be used to verify the following:
- Pod status - In the Workloads>Pods area, you can see the deployment status of each Pods
- CPU and memory - In the Clusters>Nodes area, click a Node to see the CPU and memory usage.
To view system metrics, you can use Grafana with InfluxDB. The integration process for Influxdb and Grafana with InsightEdge and XAP are described in the Solutions and Best Practices section of the documentation website.
Can I debug my application and see the application logs in Kubernetes?
Yes. See the Kubernetes documentation for instructions.
Using InsightEdge in Kubernetes
How do I set security rules/RBAC in Kubernetes?
In a Kubernetes clusters with Role-Based Access Control (RBAC) enabled, users can configure the Kubernetes RBAC roles and service accounts that are used by the various Spark jobs on Kubernetes components to access the Kubernetes API server. See the Kubernetes documentation for more information.
Can I submit a Spark Job with dependency JARs locally or remotely?
Spark’s best practice is to package dependencies as an uber-JAR, and deploy them this way (as a single JAR). This best practice applies for InsightEdge.
For more information, see Running a Spark Job in Kubernetes.
In some scenarios, it is possible to submit Spark jobs with multiple dependencies, but this is a complicated scenario. See the Spark documentation for more information.
InsightEdge 14.2 has been certified with Spark 2.3.2. Client mode is not supported in Spark 2.3.