Este contenido no está disponible en el idioma seleccionado.
Troubleshooting
Find troubleshooting information for Red Hat Advanced Cluster Management.
Abstract
Chapter 1. Troubleshooting Copiar enlaceEnlace copiado en el portapapeles!
View troubleshooting topics for Red Hat Advanced Cluster Management components. Before using the Troubleshooting guides, you can run a must-gather command to gather details, logs, and take steps in debugging issues.
For must-gather information, see the following sections:
Additionally, check your role-based access. See Role-based access control for details.
1.1. Documented troubleshooting Copiar enlaceEnlace copiado en el portapapeles!
View the list of troubleshooting topics for Red Hat Advanced Cluster Management for Kubernetes:
Installation
To view the main documentation for the installing tasks, see Installing and upgrading.
Backup and restore
To view the main documentation for backup and restore, see Backup and restore.
Cluster management
To view the main documentation about managing your clusters, see The multicluster engine operator cluster lifecycle overview.
- Troubleshooting an offline cluster
- Troubleshooting a managed cluster import failure
- Troubleshooting cluster with pending import status
- Troubleshooting imported clusters offline after certificate change
- Troubleshooting cluster status changing from offline to available
- Troubleshooting cluster creation on VMware vSphere
- Troubleshooting cluster in console with pending or failed status
- Troubleshooting Klusterlet with degraded conditions
- Troubleshooting Object storage channel secret
- Namespace remains after deleting a cluster
- Auto-import-secret-exists error when importing a cluster
- Troubleshooting the cinder Container Storage Interface (CSI) driver for VolSync
- Troubleshooting cluster curator automatic template failure to deploy
multicluster global hub
To view the main documentation about the multicluster global hub, see multicluster global hub.
Application management
To view the main documentation about application management, see Managing applications.
Governance
Console observability
Console observability includes Search, along with header and navigation function. To view the Observability guide, see Observability in the console.
Submariner networking and service discovery
This section lists the Submariner troubleshooting procedures that can occur when using Submariner with Red Hat Advanced Cluster Management or multicluster engine operator. For general Submariner troubleshooting information, see Troubleshooting in the Submariner documentation.
To view the main documentation for the Submariner networking service and service discovery, see Submariner multicluster networking and service discovery.
1.2. Running the must-gather command to troubleshoot Red Hat Advanced Cluster Management components Copiar enlaceEnlace copiado en el portapapeles!
To get started with troubleshooting, learn about the troubleshooting scenarios for users to run the must-gather command to debug the issues, then see the procedures to start using the command.
Required access: Cluster administrator
1.2.1. Must-gather scenarios Copiar enlaceEnlace copiado en el portapapeles!
Scenario one: Use the Documented troubleshooting section to see if a solution to your problem is documented. The guide is organized by the major functions of the product.
With this scenario, you check the guide to see if your solution is in the documentation. For instance, for trouble with creating a cluster, you might find a solution in the Manage cluster section.
-
Scenario two: If your problem is not documented with steps to resolve, run the
must-gathercommand and use the output to debug the issue. -
Scenario three: If you cannot debug the issue using your output from the
must-gathercommand, then share your output with Red Hat Support.
1.2.2. Must-gather procedure Copiar enlaceEnlace copiado en el portapapeles!
See the following procedure to start using the must-gather command:
-
Learn about the
must-gathercommand and install the prerequisites that you need at Gathering data about your cluster in the Red Hat OpenShift Container Platform documentation. Log in to your cluster. Add the Red Hat Advanced Cluster Management for Kubernetes image that is used for gathering data and the directory. Run the following command, where you insert the image and the directory for the output:
oc adm must-gather --image=registry.redhat.io/rhacm2/acm-must-gather-rhel9:v2.14 --dest-dir=<directory>
oc adm must-gather --image=registry.redhat.io/rhacm2/acm-must-gather-rhel9:v2.14 --dest-dir=<directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow For the usual use-case, you should run the
must-gatherwhile you are logged into your hub cluster.Note: If you want to check your managed clusters, find the
gather-managed.logfile that is located in thecluster-scoped-resourcesdirectory:<your-directory>/cluster-scoped-resources/gather-managed.log>
<your-directory>/cluster-scoped-resources/gather-managed.log>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check for managed clusters that are not set
Truefor the JOINED and AVAILABLE column. You can run themust-gathercommand on those clusters that are not connected withTruestatus.Go to your specified directory to see your output, which is organized in the following levels:
-
Two peer levels:
cluster-scoped-resourcesandnamespaceresources. - Sub-level for each: API group for the custom resource definitions for both cluster-scope and namespace-scoped resources.
-
Next level for each: YAML file sorted by
kind.
-
Two peer levels:
1.2.3. Must-gather in a disconnected environment Copiar enlaceEnlace copiado en el portapapeles!
Complete the following steps to run the must-gather command in a disconnected environment:
- In a disconnected environment, mirror the Red Hat operator catalog images into their mirror registry. For more information, see Installing in disconnected network environments.
Run the following commands to collect all of the information, replacing
<2.x>with the supported version for both<acm-must-gather>, for example2.14, and<multicluster-engine/must-gather>, for example2.9.REGISTRY=<internal.repo.address:port> IMAGE1=$REGISTRY/rhacm2/acm-must-gather-rhel9:v<2.x> oc adm must-gather --image=$IMAGE1 --dest-dir=<directory>
REGISTRY=<internal.repo.address:port> IMAGE1=$REGISTRY/rhacm2/acm-must-gather-rhel9:v<2.x> oc adm must-gather --image=$IMAGE1 --dest-dir=<directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If you experience issues with one of the currently supported releases, or the product documentation, go to Red Hat Support where you can troubleshoot further, view Knowledgebase articles, connect with the Support Team, or open a case. You must log in with your Red Hat credentials.
1.3. Running the must-gather command to troubleshoot issues with multicluster global hub Copiar enlaceEnlace copiado en el portapapeles!
You can run the must-gather command for troubleshooting issues with multicluster global hub. Run the must-gather command to gather details, logs, and take steps in debugging issues. This debugging information is also useful when you open a support request.
The oc adm must-gather command collects the information from your cluster that is often needed for debugging issues, including information for the following items:
- Resource definitions
- Service logs
1.3.1. Prerequisites Copiar enlaceEnlace copiado en el portapapeles!
You must meet the following prerequisites to run the must-gather command:
-
Access to the global hub and managed hub clusters as a user with the
cluster-adminrole. - Install the OpenShift Container Platform command-line interface on your local machine. For more information, see the Getting started with the OpenShift CLI in the OpenShift Container Platform documentation.
-
Learn about the
must-gathercommand and install the prerequisites that you need by reading the Gathering data about your cluster in the OpenShift Container Platform documentation.
1.3.2. Running the must-gather command Copiar enlaceEnlace copiado en el portapapeles!
Complete the following procedure to collect information by using the must-gather command:
- Log in to your global hub cluster
Run the following command:
oc adm must-gather --image=registry.redhat.io/rhacm2/acm-must-gather-rhel9:v2.14 --dest-dir=<directory>
oc adm must-gather --image=registry.redhat.io/rhacm2/acm-must-gather-rhel9:v2.14 --dest-dir=<directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
If you want to check your managed hub clusters, run the
must-gathercommand on those clusters.
Information is collected for the following resources:
-
Two peer levels:
cluster-scoped-resourcesandnamespacesresources. - Sub-level for each: API group for the custom resource definitions for both cluster-scope and namespace-scoped resources.
-
Next level for each: YAML file sorted by
kind. -
For the multicluster global hub cluster, you can check the
PostgresClusterandKafkain thenamespacesresources. -
For the global hub cluster, you can check the multicluster global hub related pods and logs in
podsofnamespacesresources. -
For the managed hub cluster, you can check the multicluster global hub agent pods and logs in
podsofnamespacesresources.
1.4. Must-gather procedure for the Red Hat Edge Manager agent Copiar enlaceEnlace copiado en el portapapeles!
To debug the Red Hat Edge Manager agent on your devices, you can use the flightctl-must-gather command.
Required access: Cluster administrator
See the following procedure:
- Run the following command on the device that you want to debug:
sudo flightctl-must-gather
sudo flightctl-must-gather
1.5. Troubleshooting installation status stuck in installing or pending Copiar enlaceEnlace copiado en el portapapeles!
When installing Red Hat Advanced Cluster Management, the MultiClusterHub remains in Installing phase, or multiple pods maintain a Pending status.
1.5.1. Symptom: Stuck in Pending status Copiar enlaceEnlace copiado en el portapapeles!
More than ten minutes passed since you installed MultiClusterHub and one or more components from the status.components field of the MultiClusterHub resource report ProgressDeadlineExceeded. Resource constraints on the cluster might be the issue.
Check the pods in the namespace where Multiclusterhub was installed. You might see Pending with a status similar to the following:
reason: Unschedulable
message: '0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had taint {node-role.kubernetes.io/master:
}, that the pod didn't tolerate.'
reason: Unschedulable
message: '0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had taint {node-role.kubernetes.io/master:
}, that the pod didn't tolerate.'
In this case, the worker nodes resources are not sufficient in the cluster to run the product.
1.5.2. Resolving the problem: Adjust worker node sizing Copiar enlaceEnlace copiado en el portapapeles!
If you have this problem, then your cluster needs to be updated with either larger or more worker nodes. See Sizing your cluster for guidelines on sizing your cluster.
1.6. Troubleshooting an offline cluster Copiar enlaceEnlace copiado en el portapapeles!
There are a few common causes for a cluster showing an offline status.
1.6.1. Symptom: Cluster status is offline Copiar enlaceEnlace copiado en el portapapeles!
After you complete the procedure for creating a cluster, you cannot access it from the Red Hat Advanced Cluster Management console, and it shows a status of offline.
1.6.2. Resolving the problem: Cluster status is offline Copiar enlaceEnlace copiado en el portapapeles!
Determine if the managed cluster is available. You can check this in the Clusters area of the Red Hat Advanced Cluster Management console.
If it is not available, try restarting the managed cluster.
If the managed cluster status is still offline, complete the following steps:
-
Run the
oc get managedcluster <cluster_name> -o yamlcommand on the hub cluster. Replace<cluster_name>with the name of your cluster. -
Find the
status.conditionssection. -
Check the messages for
type: ManagedClusterConditionAvailableand resolve any problems.
-
Run the
1.7. Troubleshooting a managed cluster import failure Copiar enlaceEnlace copiado en el portapapeles!
If your cluster import fails, there are a few steps that you can take to determine why the cluster import failed.
1.7.1. Symptom: Imported cluster not available Copiar enlaceEnlace copiado en el portapapeles!
After you complete the procedure for importing a cluster, you cannot access it from the Red Hat Advanced Cluster Management for Kubernetes console.
1.7.2. Resolving the problem: Imported cluster not available Copiar enlaceEnlace copiado en el portapapeles!
There can be a few reasons why an imported cluster is not available after an attempt to import it. If the cluster import fails, complete the following steps, until you find the reason for the failed import:
On the Red Hat Advanced Cluster Management hub cluster, run the following command to ensure that the Red Hat Advanced Cluster Management import controller is running.
kubectl -n multicluster-engine get pods -l app=managedcluster-import-controller-v2
kubectl -n multicluster-engine get pods -l app=managedcluster-import-controller-v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow You should see two pods that are running. If either of the pods is not running, run the following command to view the log to determine the reason:
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow On the Red Hat Advanced Cluster Management hub cluster, run the following command to determine if the managed cluster import secret was generated successfully by the Red Hat Advanced Cluster Management import controller:
kubectl -n <managed_cluster_name> get secrets <managed_cluster_name>-import
kubectl -n <managed_cluster_name> get secrets <managed_cluster_name>-importCopy to Clipboard Copied! Toggle word wrap Toggle overflow If the import secret does not exist, run the following command to view the log entries for the import controller and determine why it was not created:
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1 | grep importconfig-controller
kubectl -n multicluster-engine logs -l app=managedcluster-import-controller-v2 --tail=-1 | grep importconfig-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow On the Red Hat Advanced Cluster Management hub cluster, if your managed cluster is the
local-cluster, which is provisioned by Hive, or has an auto-import secret, run the following command to check the import status of the managed cluster.kubectl get managedcluster <managed_cluster_name> -o=jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.message}{"\n"}{end}' | grep ManagedClusterImportSucceededkubectl get managedcluster <managed_cluster_name> -o=jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.message}{"\n"}{end}' | grep ManagedClusterImportSucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow If the condition
ManagedClusterImportSucceededis nottrue, the result of the command indicates the reason for the failure.- Check the Klusterlet status of the managed cluster for a degraded condition. See Troubleshooting Klusterlet with degraded conditions to find the reason that the Klusterlet is degraded.
1.8. Troubleshooting cluster with pending import status Copiar enlaceEnlace copiado en el portapapeles!
If you receive Pending import continually on the console of your cluster, follow the procedure to troubleshoot the problem.
1.8.1. Symptom: Cluster with pending import status Copiar enlaceEnlace copiado en el portapapeles!
After importing a cluster by using the Red Hat Advanced Cluster Management console, the cluster appears in the console with a status of Pending import.
1.8.2. Identifying the problem: Cluster with pending import status Copiar enlaceEnlace copiado en el portapapeles!
Run the following command on the managed cluster to view the Kubernetes pod names that are having the issue:
kubectl get pod -n open-cluster-management-agent | grep klusterlet-agent
kubectl get pod -n open-cluster-management-agent | grep klusterlet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following command on the managed cluster to find the log entry for the error:
kubectl logs <klusterlet_agent_pod> -n open-cluster-management-agent
kubectl logs <klusterlet_agent_pod> -n open-cluster-management-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace klusterlet_agent_pod with the pod name that you identified in step 1.
-
Search the returned results for text that indicates there was a networking connectivity problem. Example includes:
no such host.
1.8.3. Resolving the problem: Cluster with pending import status Copiar enlaceEnlace copiado en el portapapeles!
Retrieve the port number that is having the problem by entering the following command on the hub cluster:
oc get infrastructure cluster -o yaml | grep apiServerURL
oc get infrastructure cluster -o yaml | grep apiServerURLCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ensure that the hostname from the managed cluster can be resolved, and that outbound connectivity to the host and port is occurring.
If the communication cannot be established by the managed cluster, the cluster import is not complete. The cluster status for the managed cluster is Pending import.
1.9. Troubleshooting cluster with already exists error Copiar enlaceEnlace copiado en el portapapeles!
If you are unable to import an OpenShift Container Platform cluster into Red Hat Advanced Cluster Management MultiClusterHub and receive an AlreadyExists error, follow the procedure to troubleshoot the problem.
1.9.1. Symptom Copiar enlaceEnlace copiado en el portapapeles!
An error log shows up when importing an OpenShift Container Platform cluster into Red Hat Advanced Cluster Management MultiClusterHub:
1.9.2. Identifying the problem Copiar enlaceEnlace copiado en el portapapeles!
Check if there are any Red Hat Advanced Cluster Management-related resources on the cluster that you want to import to new the Red Hat Advanced Cluster Management MultiClusterHub by running the following commands:
oc get all -n open-cluster-management-agent oc get all -n open-cluster-management-agent-addon
oc get all -n open-cluster-management-agent
oc get all -n open-cluster-management-agent-addon
1.9.3. Resolving the problem: Already exists when importing OpenShift Container Platform cluster Copiar enlaceEnlace copiado en el portapapeles!
Remove the klusterlet custom resource by using the following command:
oc get klusterlet | grep klusterlet | awk '{print $1}' | xargs oc patch klusterlet --type=merge -p '{"metadata":{"finalizers": []}}'
oc get klusterlet | grep klusterlet | awk '{print $1}' | xargs oc patch klusterlet --type=merge -p '{"metadata":{"finalizers": []}}'
Run the following commands to remove pre-existing resources:
oc delete namespaces open-cluster-management-agent open-cluster-management-agent-addon --wait=false
oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc delete crds --wait=false
oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc patch crds --type=merge -p '{"metadata":{"finalizers": []}}'
oc delete namespaces open-cluster-management-agent open-cluster-management-agent-addon --wait=false
oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc delete crds --wait=false
oc get crds | grep open-cluster-management.io | awk '{print $1}' | xargs oc patch crds --type=merge -p '{"metadata":{"finalizers": []}}'
1.10. Troubleshooting cluster creation on VMware vSphere Copiar enlaceEnlace copiado en el portapapeles!
If you experience a problem when creating a Red Hat OpenShift Container Platform cluster on VMware vSphere, see the following troubleshooting information to see if one of them addresses your problem.
Note: Sometimes when the cluster creation process fails on VMware vSphere, the link is not enabled for you to view the logs. If this happens, you can identify the problem by viewing the log of the hive-controllers pod. The hive-controllers log is in the hive namespace.
1.10.1. Managed cluster creation fails with certificate IP SAN error Copiar enlaceEnlace copiado en el portapapeles!
1.10.1.1. Symptom: Managed cluster creation fails with certificate IP SAN error Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails with an error message that indicates a certificate IP SAN error.
1.10.1.2. Identifying the problem: Managed cluster creation fails with certificate IP SAN error Copiar enlaceEnlace copiado en el portapapeles!
The deployment of the managed cluster fails and returns the following errors in the deployment log:
time="2020-08-07T15:27:55Z" level=error msg="Error: error setting up new vSphere SOAP client: Post https://147.1.1.1/sdk: x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs" time="2020-08-07T15:27:55Z" level=error
time="2020-08-07T15:27:55Z" level=error msg="Error: error setting up new vSphere SOAP client: Post https://147.1.1.1/sdk: x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs"
time="2020-08-07T15:27:55Z" level=error
1.10.1.3. Resolving the problem: Managed cluster creation fails with certificate IP SAN error Copiar enlaceEnlace copiado en el portapapeles!
Use the VMware vCenter server fully-qualified host name instead of the IP address in the credential. You can also update the VMware vCenter CA certificate to contain the IP SAN.
1.10.2. Managed cluster creation fails with unknown certificate authority Copiar enlaceEnlace copiado en el portapapeles!
1.10.2.1. Symptom: Managed cluster creation fails with unknown certificate authority Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because the certificate is signed by an unknown authority.
1.10.2.2. Identifying the problem: Managed cluster creation fails with unknown certificate authority Copiar enlaceEnlace copiado en el portapapeles!
The deployment of the managed cluster fails and returns the following errors in the deployment log:
Error: error setting up new vSphere SOAP client: Post https://vspherehost.com/sdk: x509: certificate signed by unknown authority"
Error: error setting up new vSphere SOAP client: Post https://vspherehost.com/sdk: x509: certificate signed by unknown authority"
1.10.2.3. Resolving the problem: Managed cluster creation fails with unknown certificate authority Copiar enlaceEnlace copiado en el portapapeles!
Ensure you entered the correct certificate from the certificate authority when creating the credential.
1.10.3. Managed cluster creation fails with expired certificate Copiar enlaceEnlace copiado en el portapapeles!
1.10.3.1. Symptom: Managed cluster creation fails with expired certificate Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because the certificate is expired or is not yet valid.
1.10.3.2. Identifying the problem: Managed cluster creation fails with expired certificate Copiar enlaceEnlace copiado en el portapapeles!
The deployment of the managed cluster fails and returns the following errors in the deployment log:
x509: certificate has expired or is not yet valid
x509: certificate has expired or is not yet valid
1.10.3.3. Resolving the problem: Managed cluster creation fails with expired certificate Copiar enlaceEnlace copiado en el portapapeles!
Ensure that the time on your ESXi hosts is synchronized.
1.10.4. Managed cluster creation fails with insufficient privilege for tagging Copiar enlaceEnlace copiado en el portapapeles!
1.10.4.1. Symptom: Managed cluster creation fails with insufficient privilege for tagging Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because there is insufficient privilege to use tagging.
1.10.4.2. Identifying the problem: Managed cluster creation fails with insufficient privilege for tagging Copiar enlaceEnlace copiado en el portapapeles!
The deployment of the managed cluster fails and returns the following errors in the deployment log:
1.10.4.3. Resolving the problem: Managed cluster creation fails with insufficient privilege for tagging Copiar enlaceEnlace copiado en el portapapeles!
Ensure that your VMware vCenter required account privileges are correct. See Installer-provisioned infrastructure for more information.
1.10.5. Managed cluster creation fails with invalid dnsVIP Copiar enlaceEnlace copiado en el portapapeles!
1.10.5.1. Symptom: Managed cluster creation fails with invalid dnsVIP Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because there is an invalid dnsVIP.
1.10.5.2. Identifying the problem: Managed cluster creation fails with invalid dnsVIP Copiar enlaceEnlace copiado en el portapapeles!
If you see the following message when trying to deploy a new managed cluster with VMware vSphere, it is because you have an older OpenShift Container Platform release image that does not support VMware Installer Provisioned Infrastructure (IPI):
failed to fetch Master Machines: failed to load asset \\\"Install Config\\\": invalid \\\"install-config.yaml\\\" file: platform.vsphere.dnsVIP: Invalid value: \\\"\\\": \\\"\\\" is not a valid IP
failed to fetch Master Machines: failed to load asset \\\"Install Config\\\": invalid \\\"install-config.yaml\\\" file: platform.vsphere.dnsVIP: Invalid value: \\\"\\\": \\\"\\\" is not a valid IP
1.10.5.3. Resolving the problem: Managed cluster creation fails with invalid dnsVIP Copiar enlaceEnlace copiado en el portapapeles!
Select a release image from a later version of OpenShift Container Platform that supports VMware Installer Provisioned Infrastructure.
1.10.6. Managed cluster creation fails with incorrect network type Copiar enlaceEnlace copiado en el portapapeles!
1.10.6.1. Symptom: Managed cluster creation fails with incorrect network type Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because there is an incorrect network type specified.
1.10.6.2. Identifying the problem: Managed cluster creation fails with incorrect network type Copiar enlaceEnlace copiado en el portapapeles!
If you see the following message when trying to deploy a new managed cluster with VMware vSphere, it is because you have an older OpenShift Container Platform image that does not support VMware Installer Provisioned Infrastructure (IPI):
1.10.6.3. Resolving the problem: Managed cluster creation fails with incorrect network type Copiar enlaceEnlace copiado en el portapapeles!
Select a valid VMware vSphere network type for the specified VMware cluster.
1.10.7. Managed cluster creation fails with an error processing disk changes Copiar enlaceEnlace copiado en el portapapeles!
1.10.7.1. Symptom: Adding the VMware vSphere managed cluster fails due to an error processing disk changes Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on VMware vSphere, the cluster fails because there is an error when processing disk changes.
1.10.7.2. Identifying the problem: Adding the VMware vSphere managed cluster fails due to an error processing disk changes Copiar enlaceEnlace copiado en el portapapeles!
A message similar to the following is displayed in the logs:
ERROR ERROR Error: error reconfiguring virtual machine: error processing disk changes post-clone: disk.0: ServerFaultCode: NoPermission: RESOURCE (vm-71:2000), ACTION (queryAssociatedProfile): RESOURCE (vm-71), ACTION (PolicyIDByVirtualDisk)
ERROR
ERROR Error: error reconfiguring virtual machine: error processing disk changes post-clone: disk.0: ServerFaultCode: NoPermission: RESOURCE (vm-71:2000), ACTION (queryAssociatedProfile): RESOURCE (vm-71), ACTION (PolicyIDByVirtualDisk)
1.10.7.3. Resolving the problem: Adding the VMware vSphere managed cluster fails due to an error processing disk changes Copiar enlaceEnlace copiado en el portapapeles!
Use the VMware vSphere client to give the user All privileges for Profile-driven Storage Privileges.
1.11. Troubleshooting managed cluster creation fails on Red Hat OpenStack Platform with unknown authority error Copiar enlaceEnlace copiado en el portapapeles!
If you experience a problem when creating a Red Hat OpenShift Container Platform cluster on Red Hat OpenStack Platform, see the following troubleshooting information to see if one of them addresses your problem.
1.11.1. Symptom: Managed cluster creation fails with unknown authority error Copiar enlaceEnlace copiado en el portapapeles!
After creating a new Red Hat OpenShift Container Platform cluster on Red Hat OpenStack Platform using self-signed certificates, the cluster fails with an error message that indicates an unknown authority error.
1.11.2. Identifying the problem: Managed cluster creation fails with unknown authority error Copiar enlaceEnlace copiado en el portapapeles!
The deployment of the managed cluster fails and returns the following error message:
x509: certificate signed by unknown authority
1.11.3. Resolving the problem: Managed cluster creation fails with unknown authority error Copiar enlaceEnlace copiado en el portapapeles!
Verify that the following files are configured correctly:
The
clouds.yamlfile must specify the path to theca.crtfile in thecacertparameter. Thecacertparameter is passed to the OpenShift installer when generating the ignition shim. See the following example:clouds: openstack: cacert: "/etc/pki/ca-trust/source/anchors/ca.crt"clouds: openstack: cacert: "/etc/pki/ca-trust/source/anchors/ca.crt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
certificatesSecretRefparemeter must reference a secret with a file name matching theca.crtfile. See the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow To create a secret with a matching file name, run the following command:
oc create secret generic txue-osspoke-openstack-certificatebundle --from-file=ca.crt=ca.crt.pem -n $CLUSTERNAME
oc create secret generic txue-osspoke-openstack-certificatebundle --from-file=ca.crt=ca.crt.pem -n $CLUSTERNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow -
The size of the
ca.certfile must be less than 63 thousand bytes.
1.12. Troubleshooting imported clusters offline after certificate change Copiar enlaceEnlace copiado en el portapapeles!
Installing a custom apiserver certificate is supported, but one or more clusters that were imported before you changed the certificate information are in offline status.
1.12.1. Symptom: Clusters offline after certificate change Copiar enlaceEnlace copiado en el portapapeles!
After you complete the procedure for updating a certificate secret, one or more of your clusters that were online now display offline status in the console.
1.12.2. Identifying the problem: Clusters offline after certificate change Copiar enlaceEnlace copiado en el portapapeles!
After updating the information for a custom API server certificate, clusters that were imported and running before the new certificate are now in an offline state.
The errors that indicate that the certificate is the problem are found in the logs for the pods in the open-cluster-management-agent namespace of the offline managed cluster. The following examples are similar to the errors that are displayed in the logs:
See the following klusterlet-agent log:
1.12.3. Resolving the problem: Clusters offline after certificate change Copiar enlaceEnlace copiado en el portapapeles!
If you want to recover a managed cluster, complete the following steps to import the managed cluster again:
On the hub cluster, recreate the managed cluster import secret by running the following command:
oc delete secret -n <cluster_name> <cluster_name>-import
oc delete secret -n <cluster_name> <cluster_name>-importCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<cluster_name>with the name of the managed cluster that you want to import.On the hub cluster, expose the managed cluster import secret to a YAML file by running the following command:
oc get secret -n <cluster_name> <cluster_name>-import -ojsonpath='{.data.import\.yaml}' | base64 --decode > import.yamloc get secret -n <cluster_name> <cluster_name>-import -ojsonpath='{.data.import\.yaml}' | base64 --decode > import.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<cluster_name>with the name of the managed cluster that you want to import.On the managed cluster, apply the
import.yamlfile by running the following command:oc apply -f import.yaml
oc apply -f import.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Note: The previous steps do not detach the managed cluster from the hub cluster. The steps update the required manifests with current settings on the managed cluster, including the new certificate information.
1.13. Namespace remains after deleting a cluster Copiar enlaceEnlace copiado en el portapapeles!
When you remove a managed cluster, the namespace is normally removed as part of the cluster removal process. In rare cases, the namespace remains with some artifacts in it. In that case, you must manually remove the namespace.
1.13.1. Symptom: Namespace remains after deleting a cluster Copiar enlaceEnlace copiado en el portapapeles!
After removing a managed cluster, the namespace is not removed.
1.13.2. Resolving the problem: Namespace remains after deleting a cluster Copiar enlaceEnlace copiado en el portapapeles!
Complete the following steps to remove the namespace manually:
Run the following command to produce a list of the resources that remain in the <cluster_name> namespace:
oc api-resources --verbs=list --namespaced -o name | grep -E '^secrets|^serviceaccounts|^managedclusteraddons|^roles|^rolebindings|^manifestworks|^leases|^managedclusterinfo|^appliedmanifestworks'|^clusteroauths' | xargs -n 1 oc get --show-kind --ignore-not-found -n <cluster_name>
oc api-resources --verbs=list --namespaced -o name | grep -E '^secrets|^serviceaccounts|^managedclusteraddons|^roles|^rolebindings|^manifestworks|^leases|^managedclusterinfo|^appliedmanifestworks'|^clusteroauths' | xargs -n 1 oc get --show-kind --ignore-not-found -n <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
cluster_namewith the name of the namespace for the cluster that you attempted to remove.Delete each identified resource on the list that does not have a status of
Deleteby entering the following command to edit the list:oc edit <resource_kind> <resource_name> -n <namespace>
oc edit <resource_kind> <resource_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
resource_kindwith the kind of the resource. Replaceresource_namewith the name of the resource. Replacenamespacewith the name of the namespace of the resource.-
Locate the
finalizerattribute in the in the metadata. -
Delete the non-Kubernetes finalizers by using the vi editor
ddcommand. -
Save the list and exit the
vieditor by entering the:wqcommand. Delete the namespace by entering the following command:
oc delete ns <cluster-name>
oc delete ns <cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
cluster-namewith the name of the namespace that you are trying to delete.
1.14. Auto-import-secret-exists error when importing a cluster Copiar enlaceEnlace copiado en el portapapeles!
Your cluster import fails with an error message that reads: auto import secret exists.
1.14.1. Symptom: Auto import secret exists error when importing a cluster Copiar enlaceEnlace copiado en el portapapeles!
When importing a hive cluster for management, an auto-import-secret already exists error is displayed.
1.14.2. Resolving the problem: Auto-import-secret-exists error when importing a cluster Copiar enlaceEnlace copiado en el portapapeles!
This problem occurs when you attempt to import a cluster that was previously managed by Red Hat Advanced Cluster Management. When this happens, the secrets conflict when you try to reimport the cluster.
To work around this problem, complete the following steps:
To manually delete the existing
auto-import-secret, run the following command on the hub cluster:oc delete secret auto-import-secret -n <cluster-namespace>
oc delete secret auto-import-secret -n <cluster-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
cluster-namespacewith the namespace of your cluster.- Import your cluster again by using the procedure in Cluster import introduction.
1.15. Troubleshooting the cinder Container Storage Interface (CSI) driver for VolSync Copiar enlaceEnlace copiado en el portapapeles!
If you use VolSync or use a default setting in a cinder Container Storage Interface (CSI) driver, you might encounter errors for the PVC that is in use.
1.15.1. Symptom: Volumesnapshot error state Copiar enlaceEnlace copiado en el portapapeles!
You can configure a VolSync ReplicationSource or ReplicationDestination to use snapshots. Also, you can configure the storageclass and volumesnapshotclass in the ReplicationSource and ReplicationDestination. There is a parameter on the cinder volumesnapshotclass called force-create with a default value of false. This force-create parameter on the volumesnapshotclass means cinder does not allow the volumesnapshot to be taken of a PVC in use. As a result, the volumesnapshot is in an error state.
1.15.2. Resolving the problem: Setting the parameter to true Copiar enlaceEnlace copiado en el portapapeles!
-
Create a new
volumesnapshotclassfor the cinder CSI driver. Change the paramater,
force-create, totrue. See the following sample YAML:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.16. Troubleshooting by accessing the PostgreSQL database Copiar enlaceEnlace copiado en el portapapeles!
1.16.1. Symptom: Errors with multicluster global hub Copiar enlaceEnlace copiado en el portapapeles!
You might experience various errors with multicluster global hub. You can access the provisioned PostgreSQL database to view messages that might be helpful for troubleshooting issues with multicluster global hub.
1.16.2. Resolving the problem: Accessing the PostgresSQL database Copiar enlaceEnlace copiado en el portapapeles!
There are two ways to access the provisioned PostgreSQL database.
There are two ways to access the provisioned PostgreSQL database.
Using the
ClusterIPserviceoc exec -it multicluster-global-hub-postgresql-0 -c multicluster-global-hub-postgresql -n multicluster-global-hub -- psql -U postgres -d hoh # Or access the database installed by crunchy operator oc exec -it $(kubectl get pods -n multicluster-global-hub -l postgres-operator.crunchydata.com/role=master -o jsonpath='{.items..metadata.name}') -c database -n multicluster-global-hub -- psql -U postgres -d hoh -c "SELECT 1"oc exec -it multicluster-global-hub-postgresql-0 -c multicluster-global-hub-postgresql -n multicluster-global-hub -- psql -U postgres -d hoh # Or access the database installed by crunchy operator oc exec -it $(kubectl get pods -n multicluster-global-hub -l postgres-operator.crunchydata.com/role=master -o jsonpath='{.items..metadata.name}') -c database -n multicluster-global-hub -- psql -U postgres -d hoh -c "SELECT 1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow LoadBalancerExpose the service type to
LoadBalancerprovisioned by default:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following command to get your the credentials:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expose the service type to
LoadBalancerprovisioned by crunchy operator:oc patch postgrescluster postgres -n multicluster-global-hub -p '{"spec":{"service":{"type":"LoadBalancer"}}}' --type mergeoc patch postgrescluster postgres -n multicluster-global-hub -p '{"spec":{"service":{"type":"LoadBalancer"}}}' --type mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following command to get your the credentials:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.17. Troubleshooting by using the database dump and restore Copiar enlaceEnlace copiado en el portapapeles!
In a production environment, back up your PostgreSQL database regularly as a database management task. The backup can also be used for debugging the multicluster global hub.
1.17.1. Symptom: Errors with multicluster global hub Copiar enlaceEnlace copiado en el portapapeles!
You might experience various errors with multicluster global hub. You can use the database dump and restore for troubleshooting issues with multicluster global hub.
1.17.2. Resolving the problem: Dumping the output of the database for dubugging Copiar enlaceEnlace copiado en el portapapeles!
Sometimes you need to dump the output in the multicluster global hub database to debug a problem. The PostgreSQL database provides the pg_dump command line tool to dump the contents of the database. To dump data from localhost database server, run the following command:
pg_dump hoh > hoh.sql
pg_dump hoh > hoh.sql
To dump the multicluster global hub database located on a remote server with compressed format, use the command-line options to control the connection details, as shown in the following example:
pg_dump -h my.host.com -p 5432 -U postgres -F t hoh -f hoh-$(date +%d-%m-%y_%H-%M).tar
pg_dump -h my.host.com -p 5432 -U postgres -F t hoh -f hoh-$(date +%d-%m-%y_%H-%M).tar
1.17.3. Resolving the problem: Restore database from dump Copiar enlaceEnlace copiado en el portapapeles!
To restore a PostgreSQL database, you can use the psql or pg_restore command line tools. The psql tool is used to restore plain text files created by pg_dump:
psql -h another.host.com -p 5432 -U postgres -d hoh < hoh.sql
psql -h another.host.com -p 5432 -U postgres -d hoh < hoh.sql
The pg_restore tool is used to restore a PostgreSQL database from an archive created by pg_dump in one of the non-plain-text formats (custom, tar, or directory):
pg_restore -h another.host.com -p 5432 -U postgres -d hoh hoh-$(date +%d-%m-%y_%H-%M).tar
pg_restore -h another.host.com -p 5432 -U postgres -d hoh hoh-$(date +%d-%m-%y_%H-%M).tar
1.18. Troubleshooting cluster status changing from offline to available Copiar enlaceEnlace copiado en el portapapeles!
The status of the managed cluster alternates between offline and available without any manual change to the environment or cluster.
1.18.1. Symptom: Cluster status changing from offline to available Copiar enlaceEnlace copiado en el portapapeles!
When the network that connects the managed cluster to the hub cluster is unstable, the status of the managed cluster that is reported by the hub cluster cycles between offline and available.
The connection between the hub cluster and managed cluster is maintained through a lease that is validated at the leaseDurationSeconds interval value. If the lease is not validated within five consecutive attempts of the leaseDurationSeconds value, then the cluster is marked offline.
For example, the cluster is marked offline after five minutes with a leaseDurationSeconds interval of 60 seconds. This configuration can be inadequate for reasons such as connectivity issues or latency, causing instability.
1.18.2. Resolving the problem: Cluster status changing from offline to available Copiar enlaceEnlace copiado en el portapapeles!
The five validation attempts is default and cannot be changed, but you can change the leaseDurationSeconds interval.
Determine the amount of time, in minutes, that you want the cluster to be marked as offline, then multiply that value by 60 to convert to seconds. Then divide by the default five number of attempts. The result is your leaseDurationSeconds value.
Edit your
ManagedClusterspecification on the hub cluster by entering the following command, but replacecluster-namewith the name of your managed cluster:oc edit managedcluster <cluster-name>
oc edit managedcluster <cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Increase the value of
leaseDurationSecondsin yourManagedClusterspecification, as seen in the following sample YAML:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Save and apply the file.
1.19. Troubleshooting cluster in console with pending or failed status Copiar enlaceEnlace copiado en el portapapeles!
If you observe Pending status or Failed status in the console for a cluster you created, follow the procedure to troubleshoot the problem.
1.19.1. Symptom: Cluster in console with pending or failed status Copiar enlaceEnlace copiado en el portapapeles!
After creating a new cluster by using the Red Hat Advanced Cluster Management for Kubernetes console, the cluster does not progress beyond the status of Pending or displays Failed status.
1.19.2. Identifying the problem: Cluster in console with pending or failed status Copiar enlaceEnlace copiado en el portapapeles!
If the cluster displays Failed status, navigate to the details page for the cluster and follow the link to the logs provided. If no logs are found or the cluster displays Pending status, continue with the following procedure to check for logs:
Procedure 1
Run the following command on the hub cluster to view the names of the Kubernetes pods that were created in the namespace for the new cluster:
oc get pod -n <new_cluster_name>
oc get pod -n <new_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
new_cluster_namewith the name of the cluster that you created.If no pod that contains the string
provisionin the name is listed, continue with Procedure 2. If there is a pod withprovisionin the title, run the following command on the hub cluster to view the logs of that pod:oc logs <new_cluster_name_provision_pod_name> -n <new_cluster_name> -c hive
oc logs <new_cluster_name_provision_pod_name> -n <new_cluster_name> -c hiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
new_cluster_name_provision_pod_namewith the name of the cluster that you created, followed by the pod name that containsprovision.- Search for errors in the logs that might explain the cause of the problem.
Procedure 2
If there is not a pod with
provisionin its name, the problem occurred earlier in the process. Complete the following procedure to view the logs:Run the following command on the hub cluster:
oc describe clusterdeployments -n <new_cluster_name>
oc describe clusterdeployments -n <new_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
new_cluster_namewith the name of the cluster that you created. For more information about cluster installation logs, see Gathering installation logs in the Red Hat OpenShift documentation.- See if there is additional information about the problem in the Status.Conditions.Message and Status.Conditions.Reason entries of the resource.
1.19.3. Resolving the problem: Cluster in console with pending or failed status Copiar enlaceEnlace copiado en el portapapeles!
After you identify the errors in the logs, determine how to resolve the errors before you destroy the cluster and create it again.
The following example provides a possible log error of selecting an unsupported zone, and the actions that are required to resolve it:
No subnets provided for zones
No subnets provided for zones
When you created your cluster, you selected one or more zones within a region that are not supported. Complete one of the following actions when you recreate your cluster to resolve the issue:
- Select a different zone within the region.
- Omit the zone that does not provide the support, if you have other zones listed.
- Select a different region for your cluster.
After determining the issues from the log, destroy the cluster and recreate it.
See Creating clusters for more information about creating a cluster.
1.20. Troubleshooting Grafana Copiar enlaceEnlace copiado en el portapapeles!
When you query some time-consuming metrics in the Grafana explorer, you might encounter a Gateway Time-out error.
1.20.1. Symptom: Grafana explorer gateway timeout Copiar enlaceEnlace copiado en el portapapeles!
If you hit the Gateway Time-out error when you query some time-consuming metrics in the Grafana explorer, it is possible that the timeout is caused by the Grafana in the open-cluster-management-observability namespace.
1.20.2. Resolving the problem: Configure the Grafana Copiar enlaceEnlace copiado en el portapapeles!
If you have this problem, complete the following steps:
Verify that the default configuration of Grafana has expected timeout settings:
To verify that the default timeout setting of Grafana, run the following command:
oc get secret grafana-config -n open-cluster-management-observability -o jsonpath="{.data.grafana\.ini}" | base64 -d | grep dataproxy -A 4oc get secret grafana-config -n open-cluster-management-observability -o jsonpath="{.data.grafana\.ini}" | base64 -d | grep dataproxy -A 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow The following timeout settings should be displayed:
[dataproxy] timeout = 300 dial_timeout = 30 keep_alive_seconds = 300
[dataproxy] timeout = 300 dial_timeout = 30 keep_alive_seconds = 300Copy to Clipboard Copied! Toggle word wrap Toggle overflow To verify the default data source query timeout for Grafana, run the following command:
oc get secret/grafana-datasources -n open-cluster-management-observability -o jsonpath="{.data.datasources\.yaml}" | base64 -d | grep queryTimeoutoc get secret/grafana-datasources -n open-cluster-management-observability -o jsonpath="{.data.datasources\.yaml}" | base64 -d | grep queryTimeoutCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following timeout settings should be displayed:
queryTimeout: 300s
queryTimeout: 300sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
If you verified the default configuration of Grafana has expected timeout settings, then you can configure the Grafana in the
open-cluster-management-observabilitynamespace by running the following command:oc annotate route grafana -n open-cluster-management-observability --overwrite haproxy.router.openshift.io/timeout=300s
oc annotate route grafana -n open-cluster-management-observability --overwrite haproxy.router.openshift.io/timeout=300sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Refresh the Grafana page and try to query the metrics again. The Gateway Time-out error is no longer displayed.
1.21. Troubleshooting local cluster not selected with placement rule Copiar enlaceEnlace copiado en el portapapeles!
The managed clusters are selected with a placement rule, but the local-cluster, which is a hub cluster that is also managed, is not selected. The placement rule user is not granted permission to get the managedcluster resources in the your-local-cluster-name namespace.
1.21.1. Symptom: Troubleshooting local cluster not selected as a managed cluster Copiar enlaceEnlace copiado en el portapapeles!
All managed clusters are selected with a placement rule, but the local-cluster is not. The placement rule user is not granted permission to get the managedcluster resources in the your-local-cluster-name namespace.
1.21.2. Resolving the problem: Troubleshooting local cluster not selected as a managed cluster Copiar enlaceEnlace copiado en el portapapeles!
Deprecated: PlacementRule
To resolve this issue, you need to grant the managedcluster administrative permission in the your-local-cluster-name namespace. Complete the following steps:
Confirm that the list of managed clusters does include
local-cluster, and that the placement ruledecisionslist does not display thelocal-cluster. Run the following command and view the results:% oc get managedclusters
% oc get managedclustersCopy to Clipboard Copied! Toggle word wrap Toggle overflow See in the sample output that
local-clusteris joined, but it is not in the YAML forPlacementRule:NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true True True 56d cluster1 true True True 16h
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true True True 56d cluster1 true True True 16hCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
Rolein your YAML file to grant themanagedclusteradministrative permission in the<your-local-cluster-name>namespace. See the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
RoleBindingresource to grant the placement rule user access to the<your-local-cluster-name>namespace. See the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.22. Troubleshooting application Kubernetes deployment version Copiar enlaceEnlace copiado en el portapapeles!
A managed cluster with a deprecated Kubernetes apiVersion might not be supported. See the Kubernetes issue for more details about the deprecated API version.
1.22.1. Symptom: Application deployment version Copiar enlaceEnlace copiado en el portapapeles!
If one or more of your application resources in the Subscription YAML file uses the deprecated API, you might receive an error similar to the following error:
failed to install release: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"
failed to install release: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for
kind "Deployment" in version "extensions/v1beta1"
Or with new Kubernetes API version in your YAML file named old.yaml for instance, you might receive the following error:
error: unable to recognize "old.yaml": no matches for kind "Deployment" in version "deployment/v1beta1"
error: unable to recognize "old.yaml": no matches for kind "Deployment" in version "deployment/v1beta1"
1.22.2. Resolving the problem: Application deployment version Copiar enlaceEnlace copiado en el portapapeles!
Update the
apiVersionin the resource. For example, if the error displays for Deployment kind in the subscription YAML file, you need to update theapiVersionfromextensions/v1beta1toapps/v1.See the following example:
apiVersion: apps/v1 kind: Deployment
apiVersion: apps/v1 kind: DeploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the available versions by running the following command on the managed cluster:
kubectl explain <resource>
kubectl explain <resource>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Check for
VERSION.
1.23. Troubleshooting Klusterlet with degraded conditions Copiar enlaceEnlace copiado en el portapapeles!
The Klusterlet degraded conditions can help to diagnose the status of the klusterlet agent on managed cluster. If a Klusterlet is in the degraded condition, the klusterlet agent on managed cluster might have errors that need to be troubleshooted. See the following information for Klusterlet degraded conditions that are set to True.
1.23.1. Symptom: Klusterlet is in the degraded condition Copiar enlaceEnlace copiado en el portapapeles!
After deploying a Klusterlet on managed cluster, the KlusterletRegistrationDegraded or KlusterletWorkDegraded condition displays a status of True.
1.23.2. Identifying the problem: Klusterlet is in the degraded condition Copiar enlaceEnlace copiado en el portapapeles!
Run the following command on the managed cluster to view the Klusterlet status:
kubectl get klusterlets klusterlet -oyaml
kubectl get klusterlets klusterlet -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Check
KlusterletRegistrationDegradedorKlusterletWorkDegradedto see if the condition is set toTrue. Proceed to Resolving the problem for any degraded conditions that are listed.
1.23.3. Resolving the problem: Klusterlet is in the degraded condition Copiar enlaceEnlace copiado en el portapapeles!
See the following list of degraded statuses and how you can attempt to resolve those issues:
-
If the
KlusterletRegistrationDegradedcondition with a status of True and the condition reason is: BootStrapSecretMissing, you need create a bootstrap secret onopen-cluster-management-agentnamespace. -
If the
KlusterletRegistrationDegradedcondition displays True and the condition reason is a BootstrapSecretError, or BootstrapSecretUnauthorized, then the current bootstrap secret is invalid. Delete the current bootstrap secret and recreate a valid bootstrap secret onopen-cluster-management-agentnamespace. -
If the
KlusterletRegistrationDegradedandKlusterletWorkDegradeddisplays True and the condition reason is HubKubeConfigSecretMissing, delete the Klusterlet and recreate it. -
If the
KlusterletRegistrationDegradedandKlusterletWorkDegradeddisplays True and the condition reason is: ClusterNameMissing, KubeConfigMissing, HubConfigSecretError, or HubConfigSecretUnauthorized, delete the hub cluster kubeconfig secret fromopen-cluster-management-agentnamespace. The klusterlet agent creates a new hub cluster kubeconfig secret. -
If the
KlusterletRegistrationDegradeddisplays True and the condition reason is GetRegistrationDeploymentFailed, or UnavailableRegistrationPod, you can check the condition message to get the problem details and attempt to resolve. -
If the
KlusterletWorkDegradeddisplays True and the condition reason is GetWorkDeploymentFailed ,or UnavailableWorkPod, you can check the condition message to get the problem details and attempt to resolve.
1.24. Troubleshooting Object storage channel secret Copiar enlaceEnlace copiado en el portapapeles!
If you change the SecretAccessKey, the subscription of an Object storage channel cannot pick up the updated secret automatically and you receive an error.
1.24.1. Symptom: Object storage channel secret Copiar enlaceEnlace copiado en el portapapeles!
The subscription of an Object storage channel cannot pick up the updated secret automatically. This prevents the subscription operator from reconciliation and deploys resources from Object storage to the managed cluster.
1.24.2. Resolving the problem: Object storage channel secret Copiar enlaceEnlace copiado en el portapapeles!
You need to manually input the credentials to create a secret, then refer to the secret within a channel.
Annotate the subscription CR in order to generate a reconcile single to subscription operator. See the following
dataspecification:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run
oc annotateto test:oc annotate appsub -n <subscription-namespace> <subscription-name> test=true
oc annotate appsub -n <subscription-namespace> <subscription-name> test=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
After you run the command, you can go to the Application console to verify that the resource is deployed to the managed cluster. Or you can log in to the managed cluster to see if the application resource is created at the given namespace.
1.25. Troubleshooting observability Copiar enlaceEnlace copiado en el portapapeles!
After you install the observability component, the component might be stuck and an Installing status is displayed.
1.25.1. Symptom: MultiClusterObservability resource status stuck Copiar enlaceEnlace copiado en el portapapeles!
If the observability status is stuck in an Installing status after you install and create the Observability custom resource definition (CRD), it is possible that there is no value defined for the spec:storageConfig:storageClass parameter. Alternatively, the observability component automatically finds the default storageClass, but if there is no value for the storage, the component remains stuck with the Installing status.
1.25.2. Resolving the problem: MultiClusterObservability resource status stuck Copiar enlaceEnlace copiado en el portapapeles!
If you have this problem, complete the following steps:
Verify that the observability components are installed:
To verify that the
multicluster-observability-operator, run the following command:kubectl get pods -n open-cluster-management|grep observability
kubectl get pods -n open-cluster-management|grep observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the appropriate CRDs are present, run the following command:
kubectl get crd|grep observ
kubectl get crd|grep observCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following CRDs must be displayed before you enable the component:
multiclusterobservabilities.observability.open-cluster-management.io observabilityaddons.observability.open-cluster-management.io observatoria.core.observatorium.io
multiclusterobservabilities.observability.open-cluster-management.io observabilityaddons.observability.open-cluster-management.io observatoria.core.observatorium.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- If you create your own storageClass for a Bare Metal cluster, see Persistent storage using NFS.
-
To ensure that the observability component can find the default storageClass, update the
storageClassparameter in themulticluster-observability-operatorcustom resource definition. Your parameter might resemble the following value:
storageclass.kubernetes.io/is-default-class: "true"
storageclass.kubernetes.io/is-default-class: "true"
The observability component status is updated to a Ready status when the installation is complete. If the installation fails to complete, the Fail status is displayed.
1.26. Troubleshooting OpenShift monitoring service Copiar enlaceEnlace copiado en el portapapeles!
Observability service in a managed cluster needs to scrape metrics from the OpenShift Container Platform monitoring stack. The metrics-collector is not installed if the OpenShift Container Platform monitoring stack is not ready.
1.26.1. Symptom: OpenShift monitoring service is not ready Copiar enlaceEnlace copiado en el portapapeles!
The endpoint-observability-operator-x pod checks if the prometheus-k8s service is available in the openshift-monitoring namespace. If the service is not present in the openshift-monitoring namespace, then the metrics-collector is not deployed. You might receive the following error message: Failed to get prometheus resource.
1.26.2. Resolving the problem: OpenShift monitoring service is not ready Copiar enlaceEnlace copiado en el portapapeles!
If you have this problem, complete the following steps:
- Log in to your OpenShift Container Platform cluster.
-
Access the
openshift-monitoringnamespace to verify that theprometheus-k8sservice is available. -
Restart
endpoint-observability-operator-xpod in theopen-cluster-management-addon-observabilitynamespace of the managed cluster.
1.27. Troubleshooting metrics-collector Copiar enlaceEnlace copiado en el portapapeles!
When the observability-client-ca-certificate secret is not refreshed in the managed cluster, you might receive an internal server error.
1.28. Troubleshooting Thanos compactor halts Copiar enlaceEnlace copiado en el portapapeles!
You might receive an error message that the compactor is halted. This can occur when there are corrupted blocks or when there is insufficient space on the Thanos compactor persistent volume claim (PVC).
1.28.1. Symptom: Thanos compactor halts Copiar enlaceEnlace copiado en el portapapeles!
The Thanos compactor halts because there is no space left on your persistent volume claim (PVC). You receive the following message:
ts=2024-01-24T15:34:51.948653839Z caller=compact.go:491 level=error msg="critical error detected; halting" err="compaction: group 0@5827190780573537664: compact blocks [ /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE]: 2 errors: populate block: add series: write series data: write /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE.tmp-for-creation/index: no space left on device; write /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE.tmp-for-creation/index: no space left on device"
ts=2024-01-24T15:34:51.948653839Z caller=compact.go:491 level=error msg="critical error detected; halting" err="compaction: group 0@5827190780573537664: compact blocks [ /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE]: 2 errors: populate block: add series: write series data: write /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE.tmp-for-creation/index: no space left on device; write /var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE.tmp-for-creation/index: no space left on device"
1.28.2. Resolving the problem: Thanos compactor halts Copiar enlaceEnlace copiado en el portapapeles!
To resolve the problem, increase the storage space of the Thanos compactor PVC. Complete the following steps:
-
Increase the storage space for the
data-observability-thanos-compact-0PVC. See Increasing and decreasing persistent volumes and persistent volume claims for more information. Restart the
observability-thanos-compactpod by deleting the pod. The new pod is automatically created and started.oc delete pod observability-thanos-compact-0 -n open-cluster-management-observability
oc delete pod observability-thanos-compact-0 -n open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
After you restart the
observability-thanos-compactpod, check theacm_thanos_compact_todo_compactionsmetric. As the Thanos compactor works through the backlog, the metric value decreases. Confirm that the metric changes in a consistent cycle and check the disk usage. Then you can reattempt to decrease the PVC again.
Note: This might take several weeks.
1.28.3. Symptom: Thanos compactor halts Copiar enlaceEnlace copiado en el portapapeles!
The Thanos compactor halts because you have corrupted blocks. You might receive the following output where the 01HKZYEZ2DVDQXF1STVEXAMPLE block is corrupted:
ts=2024-01-24T15:34:51.948653839Z caller=compact.go:491 level=error msg="critical error detected; halting" err="compaction: group 0@15699422364132557315: compact blocks [/var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HKZQK7TD06J2XWGR5EXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HKZYEZ2DVDQXF1STVEXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HM05APAHXBQSNC0N5EXAMPLE]: populate block: chunk iter: cannot populate chunk 8 from block 01HKZYEZ2DVDQXF1STVEXAMPLE: segment index 0 out of range"
ts=2024-01-24T15:34:51.948653839Z caller=compact.go:491 level=error msg="critical error detected; halting" err="compaction: group 0@15699422364132557315: compact blocks [/var/thanos/compact/compact/0@15699422364132557315/01HKZGQGJCKQWF3XMA8EXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HKZQK7TD06J2XWGR5EXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HKZYEZ2DVDQXF1STVEXAMPLE /var/thanos/compact/compact/0@15699422364132557315/01HM05APAHXBQSNC0N5EXAMPLE]: populate block: chunk iter: cannot populate chunk 8 from block 01HKZYEZ2DVDQXF1STVEXAMPLE: segment index 0 out of range"
1.28.4. Resolving the problem: Thanos compactor halts Copiar enlaceEnlace copiado en el portapapeles!
Add the thanos bucket verify command to the object storage configuration. Complete the following steps:
Resolve the block error by adding the
thanos bucket verifycommand to the object storage configuration. Set the configuration in theobservability-thanos-compactpod by using the following commands:oc rsh observability-thanos-compact-0 [..] thanos tools bucket verify -r --objstore.config="$OBJSTORE_CONFIG" --objstore-backup.config="$OBJSTORE_CONFIG" --id=01HKZYEZ2DVDQXF1STVEXAMPLE
oc rsh observability-thanos-compact-0 [..] thanos tools bucket verify -r --objstore.config="$OBJSTORE_CONFIG" --objstore-backup.config="$OBJSTORE_CONFIG" --id=01HKZYEZ2DVDQXF1STVEXAMPLECopy to Clipboard Copied! Toggle word wrap Toggle overflow If the previous command does not work, you must mark the block for deletion because it might be corrupted. Run the following commands:
thanos tools bucket mark --id "01HKZYEZ2DVDQXF1STVEXAMPLE" --objstore.config="$OBJSTORE_CONFIG" --marker=deletion-mark.json --details=DELETE
thanos tools bucket mark --id "01HKZYEZ2DVDQXF1STVEXAMPLE" --objstore.config="$OBJSTORE_CONFIG" --marker=deletion-mark.json --details=DELETECopy to Clipboard Copied! Toggle word wrap Toggle overflow If you are blocked for deletion, clean up the marked blocks by running the following command:
thanos tools bucket cleanup --objstore.config="$OBJSTORE_CONFIG"
thanos tools bucket cleanup --objstore.config="$OBJSTORE_CONFIG"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.30. Troubleshooting Submariner not connecting after installation Copiar enlaceEnlace copiado en el portapapeles!
If Submariner does not run correctly after you configure it, complete the following steps to diagnose the issue.
1.30.1. Symptom: Submariner not connecting after installation Copiar enlaceEnlace copiado en el portapapeles!
Your Submariner network is not communicating after installation.
1.30.2. Identifying the problem: Submariner not connecting after installation Copiar enlaceEnlace copiado en el portapapeles!
If the network connectivity is not established after deploying Submariner, begin the troubleshooting steps. Note that it might take several minutes for the processes to complete when you deploy Submariner.
1.30.3. Resolving the problem: Submariner not connecting after installation Copiar enlaceEnlace copiado en el portapapeles!
When Submariner does not run correctly after deployment, complete the following steps:
Check for the following requirements to determine whether the components of Submariner deployed correctly:
-
The
submariner-addonpod is running in theopen-cluster-managementnamespace of your hub cluster. The following pods are running in the
submariner-operatornamespace of each managed cluster:- submariner-addon
- submariner-gateway
- submariner-routeagent
- submariner-operator
- submariner-globalnet (only if Globalnet is enabled in the ClusterSet)
- submariner-lighthouse-agent
- submariner-lighthouse-coredns
-
submariner-networkplugin-syncer (only if the specified CNI value is
OVNKubernetes) - submariner-metrics-proxy
-
The
-
Run the
subctl diagnose allcommand to check the status of the required pods, with the exception of thesubmariner-addonpods. -
Make sure to run the
must-gathercommand to collect logs that can help with debugging issues.
1.31. Troubleshooting Submariner end-to-end test failures Copiar enlaceEnlace copiado en el portapapeles!
After running Submariner end-to-end tests, you might get failures. Use the following sections to help you troubleshoot these end-to-end test failures.
1.31.1. Symptom: Submariner end-to-end data plane test fails Copiar enlaceEnlace copiado en el portapapeles!
When the end-to-end data plane test fails, the Submariner tests show that the connector pod can connect to the listener pod, but later the connector pod gets stuck in the listening phase.
1.31.2. Resolving the problem: Submariner end-to-end data plane test fails Copiar enlaceEnlace copiado en el portapapeles!
The maximum transmission unit (MTU) can cause the end-to-end data plane test failure. For example, the MTU might cause the inter-cluster traffic over the Internet Protocol Security (IPsec) to fail. Verify if the MTU causes the failure by running an end-to-end data plane test that uses a small packet size.
To run this type of test, run the following command in your Submariner workspace:
subctl verify --verbose --only connectivity --context <from_context> --tocontext <to_context> --image-override submariner-nettest=quay.io/submariner/nettest:devel --packet-size 200
subctl verify --verbose --only connectivity --context <from_context> --tocontext <to_context> --image-override submariner-nettest=quay.io/submariner/nettest:devel --packet-size 200
If the test succeeds with this small packet size, you can resolve the connection issues by setting the transmission control protocol (TCP) maximum segment size (MSS). Set the TCP MSS by completing the following steps:
Set the TCP MSS
clampingvalue by annotating the gateway node. For example, run the following command with a value of1200:oc annotate node <node_name> submariner.io/tcp-clamp-mss=1200
oc annotate node <node_name> submariner.io/tcp-clamp-mss=1200Copy to Clipboard Copied! Toggle word wrap Toggle overflow Restart all the
RouteAgentpods by running the following command:oc delete pod -n submariner-operator -l app=submariner-routeagent
oc delete pod -n submariner-operator -l app=submariner-routeagentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.31.3. Symptom: Submariner end-to-end test fails for bare-metal clusters Copiar enlaceEnlace copiado en el portapapeles!
The end-to-end data plane tests might fail for the bare-metal cluster if the container network interface (CNI) is OpenShiftSDN, or if the virtual extensible local-area network (VXLAN) is used for the inter-cluster tunnels.
1.31.4. Resolving the problem: Submariner end-to-end test fails for bare-metal clusters Copiar enlaceEnlace copiado en el portapapeles!
A bug in the User Datagram Protocal (UDP) checksum calculation by the hardware can be the root cause for the end-to-end data plane test failures for bare-metal clusters. To troubleshoot this bug, disable the hardware offloading by applying the following YAML file:
1.32. Troubleshooting restore status finishes with errors Copiar enlaceEnlace copiado en el portapapeles!
After you restore a backup, resources are restored correctly but the Red Hat Advanced Cluster Management restore resource shows a FinishedWithErrors status.
1.32.1. Symptom: Troubleshooting restore status finishes with errors Copiar enlaceEnlace copiado en el portapapeles!
Red Hat Advanced Cluster Management shows a FinishedWithErrors status and one or more of the Velero restore resources created by the Red Hat Advanced Cluster Management restore show a PartiallyFailed status.
1.32.2. Resolving the problem: Troubleshooting restore status finishes with errors Copiar enlaceEnlace copiado en el portapapeles!
If you restore from a backup that is empty, you can safely ignore the FinishedWithErrors status.
Red Hat Advanced Cluster Management for Kubernetes restore shows a cumulative status for all Velero restore resources. If one status is PartiallyFailed and the others are Completed, the cumulative status you see is PartiallyFailed to notify you that there is at least one issue.
To resolve the issue, check the status for all individual Velero restore resources with a PartiallyFailed status and view the logs for more details. You can get the log from the object storage directly, or download it from the OADP Operator by using the DownloadRequest custom resource.
To create a DownloadRequest from the console, complete the following steps:
- Navigate to Operators > Installed Operators > Create DownloadRequest.
-
Select
BackupLogas your Kind and follow the console instructions to complete theDownloadRequestcreation.
1.33. Troubleshooting multiline YAML parsing Copiar enlaceEnlace copiado en el portapapeles!
When you want to use the fromSecret function to add contents of a Secret resource into a Route resource, the contents are displayed incorrectly.
1.33.1. Symptom: Troubleshooting multiline YAML parsing Copiar enlaceEnlace copiado en el portapapeles!
When the managed cluster and hub cluster are the same cluster the certificate data is redacted, so the contents are not parsed as a template JSON string. You might receive the following error messages:
1.33.2. Resolving the problem: Troubleshooting multiline YAML parsing Copiar enlaceEnlace copiado en el portapapeles!
Configure your certificate policy to retrieve the hub cluster and managed cluster fromSecret values. Use the autoindent function to update your certificate policy with the following content:
tls:
certificate: |
{{ print "{{hub fromSecret "open-cluster-management" "minio-cert" "tls.crt" hub}}" | base64dec | autoindent }}
tls:
certificate: |
{{ print "{{hub fromSecret "open-cluster-management" "minio-cert" "tls.crt" hub}}" | base64dec | autoindent }}
1.34. Troubleshooting ClusterCurator automatic template failure to deploy Copiar enlaceEnlace copiado en el portapapeles!
If you are using the ClusterCurator automatic template and it fails to deploy, follow the procedure to troubleshoot the problem.
1.34.1. Symptom: ClusterCurator automatic template failure to deploy Copiar enlaceEnlace copiado en el portapapeles!
You are unable to deploy managed clusters by using the ClusterCurator automatic template. The process might become stuck on the posthooks and might not create any logs.
1.34.2. Resolving the problem: ClusterCurator automatic template failure to deploy Copiar enlaceEnlace copiado en el portapapeles!
Complete the following steps to identify and resolve the problem:
-
Check the
ClusterCuratorresource status in the cluster namespace for any messages or errors. -
In the
Jobresource named,curator-job-*, which is in the same cluster namespace as the previous step, check the pod log for any errors.
Note: The job is removed after one hour due to a one hour time to live (TTL) setting.