Collecting MustGather data for initial Commerce+ Kubernetes deployment issues
Prepare the following MustGather information before you call HCL Support to help with initial Commerce+ deployment issues. This information will significantly speed up the troubleshooting process.
Procedure
-
Deployment Information:
- Helm Chart Versions: Specify the exact versions of the Helm charts used for deploying Commerce+.
- Values Files: Provide the values.yaml files used for each Helm chart, including any customizations.
- Kubernetes Version: Specify the version of Kubernetes running on your cluster.
- Deployment Commands: Provide the exact Helm commands used for
deployment. For example:
helm install -f myvalues.yaml commerce commerce-x.y.z- Deploy Vault (To deploy Vault first and then
Commerce)
- Navigate to the vault folder.
- Run the deploy.sh file. Inside this
file, the command to deploy Vault is already added:
kubectl apply -f vault-ca.yaml helm upgrade --install vault-consul ../..hcl-commerce-vaultconsul/ -f vault_values.yaml -n vault
- Deploy Commerce
- Navigate to the commerce folder.
- Run the deploy.sh file. Inside this
file, the command to deploy Vault is already added:
helm upgrade {}install ${TENANT}{-}${ENVIRONMENT} \ ../../../../hcl-commerce- helmchart/stable/hcl-commerce/ -f $VALUES_FILE -n $NAMESPACE \$HELM_ARGS
- Deploy Vault (To deploy Vault first and then
Commerce)
-
Pod Status and Logs:
- Pod Status: Run kubectl get pods to get the status of all pods in the
Commerce namespace. Note: Check any pods that are in a Pending and Error state.
- Command
Example
kubectl get pods -n esdb2
- Command
Example
- Pod Logs: For any pods with issues, collect the logs using
kubectl logs <pod-name>. If there are
previous instances of the pod, use kubectl logs <pod-name>
--previous to get logs from those instances.
- Command Example
-
kubectl logs podname -n esdb2 -
kubectl describe pod podname -n esdb2
-
- Command Example
- Pod Status: Run kubectl get pods to get the status of all pods in the
Commerce namespace.
-
Service and Ingress Information:
- Service Status: Run kubectl get services to check the status of the
Commerce services. Make sure they are running and accessible.
- Command Example
-
kubectl get svc -n esdb2 -
kubectl get services -n esdb2
-
- Command Example
- Ingress Configuration: If you're using an Ingress controller, provide
the Ingress configuration YAML file. Check the Ingress status with
kubectl get ingress.
- Command Example
-
kubectl get ingress -n esdb2 -
kubectl describe ingress my-ingress -n esdb2
-
- Command Example
- Service Status: Run kubectl get services to check the status of the
Commerce services. Make sure they are running and accessible.
-
Database Type and Version:
- Specify the type and version of the database you're using (Postgres, Db2, Oracle).
- If the db is Pod base, please provide that details.
- Command Example
-
kubectl get events -n <namespace> > k8s_events.txt -
kubectl get events -n esdb2 > k8s_events.txt
-
- Command Example
-
Capture Kubernetes events from the namespace. This can highlight deployment
issues, resource constraints, or other cluster-level problems.
- kubectl get events -n <namespace> > k8s_events.txt
-
Specific pod logs: Capture logs from the following pods, which are critical for
Commerce+. Collect logs from all instances of these pods.
- ts-app: The transaction server pod
kubectl logs <tsapp> -n <namespace> > transaction.log- Command Example
-
kubectl logs <tsapp> -n <namespace> > transaction.log -
kubectl logs ivtesdb2authts-app-f48879fff-6b8gp -n esdb2 > transaction.log
-
- Command Example
- redis:
kubectl logs <redis-pod> -n <namespace> > redis.log- Command Example
-
kubectl logs hcl-commerce-redis-master-0 -n esdb2 > redis.log
-
- Command Example
- ts-app: The transaction server pod
-
Collect logs from the following Kubernetes resources. Replace
<namespace> with the correct namespace, and
<pod-name> with the actual pod name.
- Get all the pods:
This gets all the pod's name, status, number of restarts, and node it runs on.kubectl get pods -n <namespace> o wide > all_pods.txt- Command Example
-
kubectl get pods -n esdb2 -o wide > all_pods.txt
-
- Command Example
- Get all the services:
kubectl get services -n <namespace> > all_services.txt- Command Example
-
kubectl get services -n esdb2 -o wide > all_services.txt
-
- Command Example
- Get all the pods:
-
Ensure to get the previous logs of all pods : This retrieves the logs from the
previous instance of the container, which is important for debugging crash loops
or restart issues.
-
kubectl logs -p <pod-name> -n <namespace> > <pod-name>-previous.log - Command Example
-
kubectl logs -p <pod-name> -n <namespace> > <pod-name>-previous.log -
kubectl logs -p ivtesdb2authdb-75995bb7ff-7k79c -n esdb2
-
-