Troubleshooting issues¶
This section is your go-to resource for tackling common issues and finding solutions.
For known issues, see the known limitations section.
General troubleshooting guidelines¶
Before troubleshooting, it’s important to understand how Percona Everest works at a high level. Understanding how it works can help narrow down potential areas to investigate.
-
Refer to the kubectl quick reference for commonly used commands to inspect and troubleshoot Kubernetes resources when working with Percona Everest.
-
Use logs and events for debugging.
Key logs and commands¶
You can review different logs for additional information depending on the specific issue.
-
Everest Core Components
Logs Command Percona Everest operator kubectl logs -f deploy/everest-operator -n everest-system
Percona Everest server kubectl logs -f deploy/everest-server -n everest-system
-
Database Operators (in Namespaces)
Operator type Namespace Command PostgreSQL everest
kubectl logs -f deploy/percona-postgresql-operator -n everest
MongoDB everest
kubectl logs -f deploy/percona-server-mongodb-operator -n everest
PXC everest
kubectl logs -f deploy/percona-xtradb-cluster-operator -n everest
Note
Update the namespace (
-n <namespace>
) in your commands if your database clusters are deployed in a namespace other than the default one. -
Monitoring
Component Command VictoriaMetrics Operator kubectl logs -f deploy/vm-operator -n everest-monitoring
VM Agent kubectl logs -f deploy/vmagent-everest-monitoring -n everest-monitoring
-
Database and Proxy Pods
kubectl logs -f <pod-name of database or proxy> -c <database-container>
-
Kubernetes Events
Important
Events (Events are stored only for 60 mins; if there are any events older than 60 minutes, they will be lost).
kubectl get events --sort-by=".lastTimestamp"
Troubleshooting key areas¶
Installation issues¶
For troubleshooting Percona Everest installation issues using everestctl or the Helm chart, the following steps may be helpful:
-
Permissions and privileges
Installing database operators and their dependencies may require appropriate privileges.
- Percona Everest installation may require
cluster-admin
privileges for:- Operator Lifecycle Manager (OLM)
- CustomResourceDefinitions (CRDs)
If you encounter failures during installation, ensure your user account has the appropriate permissions.
Note
Application teams frequently encounter problems when installing operators due to insufficient privileges.
Run the following command to check if the required privileges are granted:
kubectl auth can-i <verb> <resource> --namespace <namespace>
To verify if you can create CRDs, run the following command:
kubectl auth can-i create crd
Ensure that your cluster administrator grants the required privileges before you retry the installation.
- Percona Everest installation may require
-
Helm Chart validation
-
Verify the installation status of the Helm chart. A properly functioning chart should be in a Deployed status.
To verify the values used during the chart installation, run the following command:
helm list -n everest-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION everest-core everest-system 1 2025-01-16 16:24:56.577713 +0530 IST deployed everest-1.4.0 1.4.0
-
The Percona Everest installation has many components, so it will fail if any subcomponent installations fail. Check the relevant namespace where components are installed, along with the logs and events.
-
-
Resource availability
When a job is created to approve the installation plan for operators, if the cluster has no available resources to run pods, the Helm installation will wait for the specified
--timeout
or the default 5 minutes before failing.In such cases, check if any pod is stuck in the Pending state due to insufficient resources:
kubectl get pods -A --field-selector=status.phase=Pending
Note
This behavior is not confined to jobs alone. If the cluster lacks sufficient resources, any component may remain in a Pending state.
UI, API and authorization issues¶
To troubleshoot issues with the Percona Everest UI, API, or authorization, check the everest-server deployment.
-
Check everest-server Pod health
If the Percona Everest API is not working, check the status of the everest-server pod, specifically its Status and Restarts.
kubectl get po -l app.kubernetes.io/name=everest-server -n everest-system NAME READY STATUS RESTARTS AGE everest-server-78699679d4-kgqk5 1/1 Running 0 4d23h
-
Check
everest-server
logskubectl logs -f deploy/everest-server -n everest-system
-
RBAC validation
To resolve authorization and access issues, check the Percona Everest server logs. If Role-Based Access Control (RBAC) is enabled, validate or check the permissions using
everestctl
.kubectl get configmap everest-rbac -n everest-system
-
Local access via Port Forwarding
If you experience any access issues or lag in the Percona Everest UI or API, try port-forwarding to the service and check the latency compared to accessing it via a LoadBalancer or NodePort.
Once you have set up the port-forward, access the webpage using http://localhost:8080.kubectl port-forward svc/everest 8080:8080
Database operation issues¶
Here are the common issues related to the database operations:
-
Check the
everest-operator
logsCheck the
everest-operator
logs if theDatabaseCluster
object has not been created or if there are any issues.kubectl logs -f deploy/everest-operator -n everest-system
-
Check the
DatabaseCluster
objectVerify the status of the
DatabaseCluster
object and events. The status should be Ready. If it is anything other than Ready, further investigation is required. Describing theDatabaseCluster
object provides details about the database configuration.kubectl get DatabaseCluster <DatabaseCluster-Name> kubectl describe DatabaseCluster <DatabaseCluster-Name> kubectl get DatabaseCluster <DatabaseCluster-Name> -oyaml
-
Database objects
Check the operator logs and the relevant database objects, such as PXC, PSMDB, and PG. For instance, check the PXC object followed by the operator logs.
kubectl get pxc <database-name> kubectl describe pxc <database-name> kubectl get pxc <database-name> -oyaml kubectl logs -f deploy/percona-xtradb-cluster-operator # Change to pxc, psmdb, pg for respective database
-
Check the database pod logs
kubectl logs -f <database-pod-name> -c <database-container-name> # (container name could be database, pxc, mongo)
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.