Percona Everest quick install guide¶
Warning
Google Container Registry (GCR) is scheduled to be deprecated and will officially shut down on March 18, 2025. All versions of Percona Everest prior to 1.4.0 depend on images hosted on GCR, meaning that downloading those images will fail after the shutdown date. We strongly recommend upgrading to Percona Everest version 1.4.0 as soon as possible. If you do not upgrade, Percona Everest will no longer function.
For more details, refer to the Container Registry Deprecation documentation.
Helm simplifies the installation of Percona Everest. With this guide, you’ll be up and running with Percona Everest in no time. However, we also have a comprehensive installation guide that covers all possibilities.
Percona Helm charts can be found in percona/percona-helm-charts repository in Github.
Alternative installation method
If you prefer an alternative method, you can install Percona Everest using the CLI.
Prerequisites¶
Before getting started with Percona Everest, do the following:
-
Install Helm v3 .
-
Install yq .
-
Set up a Kubernetes cluster.
Note
Percona Everest assists with installing all the necessary operators and required packages, but does not deploy a Kubernetes cluster.
We recommend setting up Percona Everest on the Amazon Elastic Kubernetes Service (EKS) or Google Kubernetes Engine (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
.If your file is located elsewhere, use the export command below to set the
KUBECONFIG
environment variable:export KUBECONFIG=~/.kube/config
To verify access to the Kubernetes cluster, 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
Install Percona Everest¶
To install Percona Everest using Helm follow these steps:
-
Add the Percona Helm repository.
helm repo add percona https://percona.github.io/percona-helm-charts/ helm repo update
-
Install Percona Everest.
Once Percona Everest is running successfully, you can create additional database namespaces. For detailed information, refer to the section on namespace management.helm install everest-core percona/everest \ --namespace everest-system \ --create-namespace
Note
- If
dbNamespace.namespaceOverride
is set, the specified namespace will be provisioned instead of the defaulteverest
namespace. - If
dbNamespace.enabled=false
is set, no namespaces will be provisioned. You can provision namespaces later with theeverestctl namespaces add <NAMESPACE>
command.
- If
Post-installation steps¶
Once you have successfully installed Percona Everest, proceed with the following steps:
-
Retrieve the
admin
password.kubectl get secret everest-accounts -n everest-system -o jsonpath='{.data.users\.yaml}' | base64 --decode | yq '.admin.passwordHash'
Note
The default admin password is stored in plain text. It is highly recommended to update the password using
everestctl
to ensure that the passwords are hashed.For information on user management, see the section manage users in Percona Everest.
-
Access the Everest UI/API using one of the following options, as the
everest
Service is not exposed with an external IP by default:-
Use the following command to change the Everest service type to
LoadBalancer
:kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "LoadBalancer"}}'
-
Retrieve the external IP address for the Everest service. This is the address where you can then launch Everest at the end of the installation procedure. In this example, the external IP address used is http://34.175.201.246:
kubectl get svc/everest -n everest-system
-
Run the following command to change the Everest service type to
NodePort
:kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "NodePort"}}
-
The following command displays the port assigned by Kubernetes to the everest service, which is
32349
in this case.kubectl get svc/everest -n everest-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE everest NodePort 10.43.139.191 <none> 8080:32349/TCP 28m
-
Retrieve the external IP addresses for the kubernetes cluster nodes.
Expected output
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME gke-everest-test-default-pool-8bbed860-65gx Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.199 34.175.155.135 Container-Optimized OS from Google 6.1.100+ containerd://1.7.19 gke-everest-test-default-pool-8bbed860-pqzb Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.200 34.175.120.50 Container-Optimized OS from Google 6.1.100+ containerd://1.7.19 gke-everest-test-default-pool-8bbed860-s0hg Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.201 34.175.201.246 Container-Optimized OS from Google 6.1.100+ containerd://1.7.19
-
To launch the Percona Everest UI and create your first database cluster, go to the IP address/port found in steps 2 and 3. In this example, the external IP address used is http://34.175.155.135:32349. Nevertheless, you have the option to use any node IP specified in the above steps.
The
kubectl port-forward
command in Kubernetes is used to create a temporary connection between your local machine and a specific Kubernetes resource (e.g., a Pod, Service, or Deployment) by forwarding traffic from a local port to a port on the resource. Run the following command to usekubectl port-forwarding
for connecting to Everest service from your machine without exposing it outside of the K8s cluster:kubectl port-forward svc/everest 8080:8080 -n everest-system
Percona Everest will be available at http://127.0.0.1:8080. This method is mostly useful for testing purposes.
-
Next steps¶
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.