Skip to content

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:

  1. Install Helm v3 .

  2. Install yq .

  3. 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).

    Create EKS cluster Create GKE cluster

  4. 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:

  1. Add the Percona Helm repository.

    helm repo add percona https://percona.github.io/percona-helm-charts/
    helm repo update
    
  2. Install Percona Everest.

    helm install everest-core percona/everest \
    --namespace everest-system \
    --create-namespace
    
    Once Percona Everest is running successfully, you can create additional database namespaces. For detailed information, refer to the section on namespace management.

    Note

    • If dbNamespace.namespaceOverride is set, the specified namespace will be provisioned instead of the default everest namespace.
    • If dbNamespace.enabled=false is set, no namespaces will be provisioned. You can provision namespaces later with the everestctl namespaces add <NAMESPACE> command.

Post-installation steps

Once you have successfully installed Percona Everest, proceed with the following steps:

  1. 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.

  2. Access the Everest UI/API using one of the following options, as the everest Service is not exposed with an external IP by default:

    1. Use the following command to change the Everest service type to LoadBalancer:

      kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "LoadBalancer"}}'
      
    2. 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
      
    1. Run the following command to change the Everest service type to NodePort:

      kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "NodePort"}}
      
    2. 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
      
    3. 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
      
    4. 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 use kubectl 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

Provision a database

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.