Install Percona Everest¶
The installation instructions in this guide go through all the manual installation and provisioning steps.
To get started with Percona Everest as quickly as possible, Percona provides a script that automatically performs most steps.
For more information, see the Quickstart guide.
Setup¶
Percona Everest has two primary components:
- Percona Everest CLI, which connects Percona Everest to your Kubernetes cluster.
- Percona Everest application with the UI, which you can spin up using the instructions below.
Supported operators¶
- Percona Operator for MySQL Based on Percona XtraDB Cluster (PXC) 1.13.0
- Percona Operator for MongoDB (PSMDB) 1.14.0
- Percona Operator for PostgreSQL (PG) 2.2.0
Supported k8s clusters¶
- Google Kubernetes Engine (GKE)
- Amazon Elastic Kubernetes Service (EKS) (1.24 - 1.25)
Before you start¶
Percona Everest assists with installing all the necessary operators and required packages, but does not currently help with spinning up a publicly accessible Kubernetes cluster.
We recommend setting up Percona Everest on the Amazon Elastic Kubernetes Service (EKS) or on Google Kubernetes Engine (GKE), as Percona Everest may not work as expected on local Kubernetes installations (minikube, kind, k3d, or similar products) due to network issues.
Prerequisites¶
Before getting started with Percona Everest, we recommend that you:
- Install Docker Engine (1.13.0 and higher) with the Docker compose plugin.
- Install AWS CLI for EKS or the gcloud CLI for GKE.
-
Verify that you have access to the Kubernetes cluster that you want to use with Everest. By default, Everest uses the kubeconfig file available under ~/.kube/config. Run the following command:
kubectl get nodes
Expected output
NAME STATUS ROLES AGE VERSION gke-<name>-default-pool-75d48bfc-bx8g Ready <none> 11h v1.26.7-gke.500 gke-<name>-default-pool-75d48bfc-c2df Ready <none> 11h v1.26.7-gke.500 gke-<name>-default-pool-75d48bfc-zl7k Ready <none> 11h v1.26.7-gke.500
Get started¶
To install and provision Percona Everest:
-
Download the Docker compose file:
curl https://raw.githubusercontent.com/percona/percona-everest-backend/release-0.3.0/deploy/quickstart-compose.yml -o quickstart-compose.yml
-
Initialize the Everest container and its internal PostgreSQL database by executing one of the following commands, each offering distinct access configurations:
- to limit access to the localhost interface (default):
docker compose -f quickstart-compose.yml up -d
- to expose Everest though a specific interface, use that interface’s IP address:
EVEREST_BIND_ADDR=<ip address>; docker compose -f quickstart-compose.yml up -d
- to allow access from any interface on the host machine (not recommended):
EVEREST_BIND_ADDR=0.0.0.0; docker compose -f quickstart-compose.yml up -d
-
(Optional) Verify if the services started correctly:
docker compose -f quickstart-compose.yml ps --services --filter 'status=running'
Expected output
everest pg
-
Download the latest release of everestctl to provision Percona Everest.
-
Rename the downloaded file using the following command and replacing the placeholder
everestctl-darwin-amd64
to match the file downloaded in the previous step:mv everestctl-darwin-amd64 everestctl
-
Modify the file permissions:
chmod +x everestctl
-
From the installation wizard, provision and register the Kubernetes cluster in Everest using the following commands. Everest will search for the kubeconfig file in the
~/.kube/config
path. If your file is located elsewhere, set theKUBECONFIG
environment variable before running the command:export KUBECONFIG=~/.kube/config
./everestctl install operators
This will install all needed components in a namespace called
percona-everest
.Example
? Everest URL http://127.0.0.1:8080 ? Choose your Kubernetes Cluster name k3d-dbaas-tilt ? Do you want to enable monitoring? Yes ? PMM URL Endpoint http://127.0.0.1 ? Username admin ? Password ***** ? Name for the new monitoring instance my-pmm ? Do you want to enable backups? No ? What operators do you want to install? MySQL, MongoDB, PostgreSQL
Alternatively, you can provision and register the Kubernetes cluster by running the installation in headless mode:
./everestctl install operators --backup.enable=false --everest.endpoint=http://127.0.0.1:8080 --operator.mongodb=true --operator.postgresql=true --operator.xtradb-cluster=true --monitoring.enable=true --monitoring.type=pmm --monitoring.new-instance-name=my-pmm --monitoring.pmm.endpoint=http://127.0.0.1 --monitoring.pmm.username=admin --monitoring.pmm.password=admin --skip-wizard
Limitations¶
-
If the Everest CLI fails to install the operators, do the following:
-
Install Percona Everest, starting with the second step.
-
If you install an operator after the initial provisioning and want to create a database cluster, restart the
everest-operator pod
by running the following commands:kubectl -n percona-everest get po kubectl -n percona-everest delete pod everest-operator-pod-name
This will fix the database cluster creation. The issue will be fixed in the upcoming releases.
-
If you don’t enable monitoring during this provisioning step then you won’t be able to enable it from the UI later. Make sure to fill in the monitoring details in the wizard.
-
If you are using a PMM server instance with a self-signed certificate you cannot use HTTPS in the PMM URL endpoint.
-
-
Go to http://127.0.0.1:8080 to open the Everest UI and create your first database cluster.
Get expert help¶
If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.