Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backup restore #33

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Backup restore #33

wants to merge 8 commits into from

Conversation

roypaulin
Copy link
Owner

This PR is just to stay in sync with main branch.

roypaulin and others added 8 commits March 30, 2022 20:48
This adds support for the horizontal pod autoscaler (HPA) to work with
VerticaDB. With this integration, you can have k8s automatically scale a
VerticaDB based on metrics from your workload.

We want flexibility in how we scale. Depending on the use case we are going to
look at providing two types:

- Subcluster: Scale by adding or removing subclusters. This is the preferred
  approach for "dashboard" style of queries, which typically run in a short
  amount of time. Multiple subclusters will all share the same service object.
  This means the client connections do not have to change their endpoints.
- Pod: Scale by adding or removing pods to an existing subcluster. This is the
  preferred approach for longer running analytic queries. We recommend a shard
  to node ration of 2:1 or 3:1. If the ratio in the subcluster is smaller, it
  could benefit from increasing the size.

To allow either of these use cases to be used, or to add support for a
different type of scaling, we are introducing a new custom resource that will
manage autoscaling of a set of subclusters. The new CR is called
VerticaAutoscaler.

We created a separate package to handle reconciliation of the new CR. It is
handle by the same operator though.

A webhook was added for this new CR.

Sample usage:

1. Create your VerticaDB as normal. Be sure to include a CPU resource setting
   if scaling by CPU percent. Note, to scale beyond 3 nodes be sure to include
   your license.
    kubectl apply -f config/samples/v1beta1_verticadb.yaml

2. Create the VerticaAutoscaler to indicate how we want to scale. The default
   in this file will scale by adding/removing subclusters.
    kubectl apply -f config/samples/v1beta1_verticaautoscaler.yaml

3. Create the HPA object to tell k8s to autoscale.
    kubectl autoscale verticaautoscaler/verticaautoscaler-sample --cpu-percent=70 --min=3 --max=6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant