From 89810c563727d52853f7236988b65606b0986591 Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Mon, 15 Apr 2024 13:17:12 +0200 Subject: [PATCH] Adapt Hybrid Cloud docs - Cleanup Managed Cloud main page - Adapt networkpolicies to new default - Cleanup operator configuration - Add platform specific docs --- .../content/documentation/cloud/_index.md | 61 ++++-------- .../networking-logging-monitoring.md | 44 +-------- .../hybrid-cloud/operator-configuration.md | 30 +++--- .../platform-deployment-options.md | 96 ++++++++++++++++++- 4 files changed, 127 insertions(+), 104 deletions(-) diff --git a/qdrant-landing/content/documentation/cloud/_index.md b/qdrant-landing/content/documentation/cloud/_index.md index 266ab4566..ce1773b71 100644 --- a/qdrant-landing/content/documentation/cloud/_index.md +++ b/qdrant-landing/content/documentation/cloud/_index.md @@ -1,68 +1,43 @@ --- -title: Qdrant Cloud +title: Managed Cloud weight: 14 aliases: - /documentation/overview/qdrant-alternatives/documentation/cloud/ --- -# About Qdrant Cloud +# About Qdrant Managed Cloud -Qdrant Cloud is our SaaS (software-as-a-service) solution, providing managed -Qdrant instances on the cloud. We provide you the same fast and reliable -similarity search engine, but without the need to maintain your own infrastructure. +Qdrant Managed Cloud is our SaaS (software-as-a-service) solution, providing managed Qdrant database clusters on the cloud. We provide you the same fast and reliable similarity search engine, but without the need to maintain your own infrastructure. -Transitioning from on-premise to the cloud version of Qdrant does not change -how you interact with the service. All you need is a [Qdrant Cloud account](https://qdrant.to/cloud/) -and an [API key](/documentation/cloud/authentication/) for each request. +Transitioning to the Managed Cloud version of Qdrant does not change how you interact with the service. All you need is a [Qdrant Cloud account](https://qdrant.to/cloud/) and an [API key](/documentation/cloud/authentication/) for each request. -Our official [client libraries](/documentation/interfaces/#client-libraries/) -can help. For example, if you use the [Python Client](https://github.com/qdrant/qdrant-client/) -you can take advantage of the built-in API key. With that client, you provide -the API key only once, when the QdrantClient instance is created. - -*Available as of v1.8.2* - -You can also attach your own infrastructure as a private region on the Hybrid -Cloud. Once attached, you can control this cloud using the same tools and UI -that you use for other cloud providers. For details, see our -[Hybrid Cloud](/documentation/hybrid-cloud/) documentation. +You can also attach your own infrastructure as a Hybrid Cloud Environment. For details, see our [Hybrid Cloud](/documentation/hybrid-cloud/) documentation. ## Cluster configuration -Each instance comes pre-configured with the following tools, features, and -support services: +Each database cluster comes pre-configured with the following tools, features, and support services: -- Uses the latest available version of Qdrant. +- Allows the creation of highly available clusters with automatic failover. - Supports upgrades to later versions of Qdrant as they are released. +- Upgrades are zero-downtime on highly available clusters. - Includes monitoring and logging to observe the health of each cluster. -- Configurable through the Qdrant Cloud Console. -- Vertically scalable. +- Horizontally and vertically scalable. - Available natively on AWS and GCP, and Azure. -- Available on other providers if you use the Hybrid Cloud. +- Available on your own infrastructure and other providers if you use the Hybrid Cloud. -## Getting started with Qdrant Cloud +## Getting started with Qdrant Managed Cloud -To use Qdrant Cloud, you need at least one cluster. You can create one in the -following ways: +To use Qdrant Managed Cloud, you need at least one cluster. You can create one in the following ways: -1. [**Create a Free Tier cluster**](/documentation/cloud/quickstart-cloud/) with - one node and a default configuration (1 GB RAM, 0.5 CPU and 4 GB Disk). This - option is perfect for prototyping. You don't need a credit card to join. -2. [**Configure a custom cluster**](/documentation/cloud/create-cluster/) with - additional nodes and resources. For this option, you need billing information. +1. [**Create a Free Tier cluster**](/documentation/cloud/quickstart-cloud/) with one node and a default configuration (1 GB RAM, 0.5 CPU and 4 GB Disk). This option is perfect for prototyping. You don't need a credit card to join. +2. [**Configure a custom cluster**](/documentation/cloud/create-cluster/) with additional nodes and resources. For this option, you need billing information. -If you're testing Qdrant, We recommend the Free Tier cluster. The capacity -should be enough to serve up to 1 M vectors of 768 dimensions. To calculate -your needs, refer to our documentation on [Capacity and sizing](/documentation/cloud/capacity-sizing/). +If you're testing Qdrant, We recommend the Free Tier cluster. The capacity should be enough to serve up to 1 M vectors of 768 dimensions. To calculate your needs, refer to our documentation on [Capacity and sizing](/documentation/cloud/capacity-sizing/). -We recommend that you use the Free Tier cluster for testing purposes. The -capacity should be enough to serve up to 1 M vectors of 768 dimensions. To -calculate your needs, refer to our documentation on [Capacity and sizing](/documentation/cloud/capacity-sizing/). +We recommend that you use the Free Tier cluster for testing purposes. The capacity should be enough to serve up to 1 M vectors of 768 dimensions. To calculate your needs, refer to our documentation on [Capacity and sizing](/documentation/cloud/capacity-sizing/). ## Support & Troubleshooting -All Qdrant Cloud users are welcome to join our [Discord community](https://qdrant.to/discord/). -Our Support Engineers are available to help you anytime. +All Qdrant Cloud users are welcome to join our [Discord community](https://qdrant.to/discord/). Our Support Engineers are available to help you anytime. -Paid customers can also contact support through channels provided during cluster -creation and/or on-boarding. +Paid customers can also contact support directly. Links to the support portal are available in the Qdrant Cloud Console. diff --git a/qdrant-landing/content/documentation/hybrid-cloud/networking-logging-monitoring.md b/qdrant-landing/content/documentation/hybrid-cloud/networking-logging-monitoring.md index bd44c5f9c..17bc4ab81 100644 --- a/qdrant-landing/content/documentation/hybrid-cloud/networking-logging-monitoring.md +++ b/qdrant-landing/content/documentation/hybrid-cloud/networking-logging-monitoring.md @@ -5,47 +5,9 @@ weight: 3 ## Network policies -For security reasons, each database cluster is secured with tight network policies. By default, database pods only allow egress traffic between each and only allow ingress traffic from the operator for monitoring. +For security reasons, each database cluster is secured with network policies. By default, database pods only allow egress traffic between each and allow ingress traffic to ports 6333 (rest) and 6334 (grpc) from within the Kubernetes cluster. -To allow additional ingress or egress traffic, you can either deploy additional network policies on your own. - -```yaml -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24 - namespace: qdrant-namespace -spec: - podSelector: - matchLabels: - app: qdrant - cluster-id: 9a9f48c7-bb90-4fb2-816f-418a46a74b24 - policyTypes: - - Ingress - ingress: - - from: - - ipBlock: - cidr: 192.168.0.0/22 - - podSelector: - matchLabels: - app: client-app - namespaceSelector: - matchLabels: - kubernetes.io/metadata.name: client-namespace - - podSelector: - matchLabels: - app: traefik - namespaceSelector: - matchLabels: - kubernetes.io/metadata.name: kube-system - ports: - - protocol: TCP - port: 6333 - - protocol: TCP - port: 6334 -``` - -Or you can modify the default network policies in the Hybrid Cloud environment configuration: +You can modify the default network policies in the Hybrid Cloud environment configuration: ```yaml qdrant: @@ -85,4 +47,4 @@ kubectl -n qdrant-namespace logs -l app=qdrant,cluster-id=9a9f48c7-bb90-4fb2-816 ## Monitoring -The Qdrant Cloud console gives you access to basic metrics about CPU, memory and disk usage of your Qdrant clusters. You can also access Prometheus metrics endpoint of yourQdrant databases. Finally, you can use a Kubernetes workload monitoring tool of your choice to monitor your Qdrant clusters. +The Qdrant Cloud console gives you access to basic metrics about CPU, memory and disk usage of your Qdrant clusters. You can also access Prometheus metrics endpoint of your Qdrant databases. Finally, you can use a Kubernetes workload monitoring tool of your choice to monitor your Qdrant clusters. diff --git a/qdrant-landing/content/documentation/hybrid-cloud/operator-configuration.md b/qdrant-landing/content/documentation/hybrid-cloud/operator-configuration.md index 1c0424737..7991569f3 100644 --- a/qdrant-landing/content/documentation/hybrid-cloud/operator-configuration.md +++ b/qdrant-landing/content/documentation/hybrid-cloud/operator-configuration.md @@ -1,12 +1,13 @@ --- -title: Qdrant Operator configuration +title: Advanced Qdrant Operator configuration weight: 2 --- -# Qdrant Operator configuration +# Advanced Qdrant Operator configuration -You should configure the Qdrant Operator with the configuration for Hybrid Cloud. -Use the following options, in YAML format: +The Qdrant Operator has several configuration options, which can be configured inthe advanced section of your Hybrid Cloud Environment. + +The following YAML shows all configuration options with their default values: ```yaml # Configuration for the Qdrant operator @@ -70,21 +71,12 @@ settings: # log_level: INFO # Default network policies to create for a qdrant cluster networkPolicies: -# ingress: -# - from: -# - podSelector: -# matchLabels: -# app.kubernetes.io/name: traefik -# namespaceSelector: -# matchLabels: -# kubernetes.io/metadata.name: kube-system -# ports: -# - protocol: TCP -# port: 6333 -# - protocol: TCP -# port: 6334 -# - protocol: TCP -# port: 6335 + ingress: + ports: + - protocol: TCP + port: 6333 + - protocol: TCP + port: 6334 # Allow DNS resolution from qdrant pods at Kubernetes internal DNS server egress: - to: diff --git a/qdrant-landing/content/documentation/hybrid-cloud/platform-deployment-options.md b/qdrant-landing/content/documentation/hybrid-cloud/platform-deployment-options.md index 9750c1e54..1a0627380 100644 --- a/qdrant-landing/content/documentation/hybrid-cloud/platform-deployment-options.md +++ b/qdrant-landing/content/documentation/hybrid-cloud/platform-deployment-options.md @@ -5,6 +5,10 @@ weight: 4 # Platform Deployment Options +This page provides an overview of how to deploy Qdrant Hybrid Cloud on various managed Kubernetes platforms. + +For a general list of prerequisites and installation steps, see our [Hybrid Cloud setup guide](/documentation/hybrid-cloud/hybrid-cloud-setup/). + ![Akamai](/documentation/cloud/cloud-providers/akamai.jpg) ## Akamai (Linode) @@ -19,6 +23,8 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [LKE Guides](https://www.linode.com/docs/products/compute/kubernetes/guides/) - [LKE API Reference](https://www.linode.com/docs/api/) +At the time of writing, Linode [does not support CSI Volume Snaphots](https://github.com/linode/linode-blockstorage-csi-driver/issues/107). + ![AWS](/documentation/cloud/cloud-providers/aws.jpg) ## Amazon Web Services (AWS) @@ -33,6 +39,39 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [Amazon EKS User Guide](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) - [Amazon EKS API Reference](https://docs.aws.amazon.com/eks/latest/APIReference/Welcome.html) +Your EKS cluster needs the EKS EBS CSI driver, or a similar storage driver: +- [Amazon EBS CSI Driver](https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html) + +To allow vertical scaling, you need a StorageClass with volume expansion enabled: +- [Amazon EBS CSI Volume Resizing](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/examples/kubernetes/resizing/README.md) + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + annotations: + storageclass.kubernetes.io/is-default-class: "true" + name: ebs-sc +provisioner: ebs.csi.aws.com +reclaimPolicy: Delete +volumeBindingMode: WaitForFirstConsumer +allowVolumeExpansion: true +``` + +To allow backups and restores, your EKS cluster needs the CSI snaphost controller: +- [Amazon EBS CSI Snapshot Controller](https://docs.aws.amazon.com/eks/latest/userguide/csi-snapshot-controller.html) + +And you need to create a VolumeSnapshotClass: + +```yaml +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-snapclass +deletionPolicy: Delete +driver: ebs.csi.aws.com +``` + ![Digital Ocean](/documentation/cloud/cloud-providers/digital-ocean.jpg) ## Digital Ocean @@ -61,6 +100,18 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [GKE Tutorials](https://cloud.google.com/kubernetes-engine/docs/tutorials) - [GKE Documentation](https://cloud.google.com/kubernetes-engine/docs/) +To allow backups and restores, your GKE cluster needs the CSI VolumeSnapshot controller and class: +- [Google GKE Volume Snapshots](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/volume-snapshots) + +```yaml +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-snapclass +deletionPolicy: Delete +driver: pd.csi.storage.gke.io +``` + ![Microsoft Azure](/documentation/cloud/cloud-providers/azure.jpg) ## Mircrosoft Azure @@ -75,6 +126,18 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [AKS Documentation](https://learn.microsoft.com/en-in/azure/aks/) - [Best Practices with AKS](https://learn.microsoft.com/en-in/azure/aks/best-practices) +To allow backups and restores, your AKS cluster needs the CSI VolumeSnapshot controller and class: +- [Azure AKS Volume Snapshots](https://learn.microsoft.com/en-us/azure/aks/azure-disk-csi#create-a-volume-snapshot) + +```yaml +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-snapclass +deletionPolicy: Delete +driver: disk.csi.azure.com +``` + ![Oracle Cloud Infrastructure](/documentation/cloud/cloud-providers/oracle.jpg) ## Oracle Cloud Infrastructure @@ -89,6 +152,19 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [Frequently Asked Questions on OCI](https://www.oracle.com/in/cloud/cloud-native/container-engine-kubernetes/faq/) - [OCI Product Updates](https://docs.oracle.com/en-us/iaas/releasenotes/services/conteng/) +To allow backups and restores, your OCI cluster needs the CSI VolumeSnapshot controller and class: +- [Prerequisites for Creating Volume Snapshots +](https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim_topic-Provisioning_PVCs_on_BV.htm#contengcreatingpersistentvolumeclaim_topic-Provisioning_PVCs_on_BV-PV_From_Snapshot_CSI__section_volume-snapshot-prerequisites) + +```yaml +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-snapclass +deletionPolicy: Delete +driver: blockvolume.csi.oraclecloud.com +``` + ![OVHcloud](/documentation/cloud/cloud-providers/ovh.jpg) ## OVHcloud @@ -117,6 +193,12 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [Red Hat OpenShift Kubernetes Documentation](https://docs.openshift.com/container-platform/4.15/welcome/index.html) - [Installing on Container Platforms](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/html/installing/index) +Qdrant databases need a persistent storage solution. See [Openshift Storage Overview](https://docs.openshift.com/container-platform/4.15/storage/index.html). + +To allow vertical scaling, you need a StorageClass with [volume expansion enabled](https://docs.openshift.com/container-platform/4.15/storage/expanding-persistent-volumes.html). + +To allow backups and restores, your OpenShift cluster needs the [CSI snaphost controller](https://docs.openshift.com/container-platform/4.15/storage/container_storage_interface/persistent-storage-csi-snapshots.html), and you need to create a VolumeSnapshotClass. + ![Scaleway](/documentation/cloud/cloud-providers/scaleway.jpg) ## Scaleway @@ -145,6 +227,17 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to - [SKE Tutorials](https://docs.stackit.cloud/stackit/en/tutorials-ske-66683162.html) - [Frequently Asked Questions on SKE](https://docs.stackit.cloud/stackit/en/faq-known-issues-of-ske-28476393.html) +o allow backups and restores, you need to create a VolumeSnapshotClass: + +```yaml +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-snapclass +deletionPolicy: Delete +driver: cinder.csi.openstack.org +``` + ![Vultr](/documentation/cloud/cloud-providers/vultr.jpg) ## Vultr @@ -153,12 +246,13 @@ First, consult your platform's managed Kubernetes instructions below. Then, **to First, consult your platform's managed Kubernetes instructions below. Then, **to setup Qdrant Hybrid Cloud on Vultr**, follow our [step-by step documentation](/documentation/hybrid-cloud/hybrid-cloud-setup/). -### More on Vulr Kubernetes Engine +### More on Vultr Kubernetes Engine - [VKE Guide](https://docs.vultr.com/vultr-kubernetes-engine) - [VKE Documentation](https://docs.vultr.com/) - [Frequently Asked Questions on VKE](https://docs.vultr.com/vultr-kubernetes-engine#frequently-asked-questions) +At the time of writing, Vultr does not support CSI Volume Snaphots. ## Next Steps