- A Kuberentes Cluster with a recent version (e.g. between 1.14 and 1.19)
- The cluster needs to be able to provision
PersistentVolumeClaims. No special file systems are required. Any default file system capable of
ReadWriteOnceaccess mode is sufficient.
- Helm (only v3 is compatible from Helm version
Weaviate Helm chart
To obtain and install the Weaviate chart on your Kubernetes cluster, take the following steps:
Verify tool setup and cluster access
# Check if helm is installed $ helm version # Make sure `kubectl` is configured correctly and you can access the cluster. # For example, try listing the pods in the currently configured namespace. $ kubectl get pods
Obtain the Helm Chart
Get the Helm chart and
values.yml configuration file.
# Set the Weaviate chart version export CHART_VERSION="v" # Download the Weaviate Helm chart wget https://github.com/semi-technologies/weaviate-helm/releases/download/$CHART_VERSION/weaviate.tgz # Download an example values.yml (with the default configuration) wget https://raw.githubusercontent.com/semi-technologies/weaviate-helm/$CHART_VERSION/weaviate/values.yaml
Adjust the configuration in the values.yml (Optional)
Note: You can skip this step and run with all default values. In any case,
make sure that you set the correct Weaviate version. This may either be through
explicitly setting it as part of the
values.yaml or through overwriting the
default as outlined in the deploy step below.
file you can tweak the configuration to align it with your
setup. The yaml file is extensively documented to help you align the
configuration with your setup.
Out of the box, the configuration file is setup for:
- 1 Weaviate replica. (This cannot be changed at the moment, see below)
text2vec-contextionarymodule is enabled and running with 1 replica. (This can be adjusted based on the expected load).
- Other modules, such as
img2vec-neuralare disabled by default. They can be enabled by setting the respective
See the resource requests and limits in the example
values.yml. You can
adjust them based on your expected load and the resources available on the
Deploy (install the Helm chart)
You can deploy the helm charts as follows:
# Create a Weaviate namespace $ kubectl create namespace weaviate # set the desired Weaviate version export WEAVIATE_VERSION="1.15.2" # Deploy $ helm upgrade \ "weaviate" \ weaviate.tgz \ --install \ --namespace "weaviate" \ --values ./values.yaml \ --set "image.tag=$WEAVIATE_VERSION"
The above assumes that you have permissions to create a new namespace. If you
have only namespace-level permissions, you can skip creating a new
namespace and adjust the namespace argument on
helm upgrade according to the
name of your pre-configured namespage.
Updating the installation after the initial deployment
The above command (
helm upgrade...) is idempotent, you can run it again, for
example after adjusting your desired configuration.
Additional Configuration Help
- Cannot list resource “configmaps” in API group when deploying Weaviate k8s setup on GCP
- Error: UPGRADE FAILED: configmaps is forbidden
If you can’t find the answer to your question here, please look at the: