Installation Troubleshooting
During the installation process of Rainbond in various environments, you may encounter various issues. This chapter will troubleshoot common problems during the Rainbond installation process.
1. Quick Installation Troubleshooting
Rainbond Quick Installation Version runs all services in a single container for user convenience. Running K3s in Docker Container, all troubleshooting operations are performed in the rainbond container.
Troubleshooting Approach
The container startup process is controlled by K3s. During troubleshooting, we can follow these steps to identify issues:
- Check the startup logs of the
rainbondcontainer for any error messages. - Check if the
k3sservice in therainbondcontainer has started normally. - Check if all
rainbondservices in therainbondcontainer have started normally.
K3s Startup Phase
First, check the startup logs of the rainbond container for any error messages.
docker logs -f rainbond
Execute the following command to enter the rainbond container and check if the k3s service has started normally.
docker exec -it rainbond bash
Execute the following command to check if the k3s service has started normally.
kubectl get node
Rainbond Startup Phase
Execute the following command to check if all rainbond services in the rainbond container have started normally.
kubectl get pod -n rbd-system
Possible Issues
The Rainbond quick installation version stores data in the /opt/rainbond directory by default. If disk space is insufficient, Rainbond may fail to start normally.
- For Mac and Windows installations, the local directory cannot be changed. Please expand storage space through Docker Desktop.
- For Linux installations, you can modify the default local directory by changing the
volumefield in theinstall.shinstallation script, as shown below:
$ vim install.sh
VOLUME_OPTS="-v /opt/rainbond:/opt/rainbond"
- Delete the
rainbondcontainer and re-execute theinstall.shscript.
docker rm -f rainbond
bash ./install.sh
2. Kubernetes-based Installation Troubleshooting
Pods in Pending, CrashLoopBackOff, Evicted, ImagePullBackOff, etc. states
-
Pending: When a Pod is in the Pending state, it means it has not entered the normal startup process. Use the command
kubectl describe pod xxx -n rbd-systemto observe event details for further troubleshooting. -
CrashLoopBackOff: The CrashLoopBackOff state means the current Pod can start normally, but its internal container exits on its own, usually due to internal service issues. Use the command
kubectl logs -f xxx -n rbd-systemto observe log output and determine the cause through business logs. -
Evicted: The Evicted state means the current Pod has been evicted by the scheduling system. Reasons for eviction may include high root partition disk usage, high container runtime data partition disk usage, etc. Based on experience, these reasons are most common and require disk space cleanup to resolve the eviction state. You can use the command
kubectl describe nodeto observe theConditionsparagraph output to determine the current node's state. -
ImagePullBackOff: The ImagePullBackOff state means the Pod image download failed and exited, usually due to large image size or poor network. Use the command
kubectl describe pod xxx -n rbd-systemto observe event details for further troubleshooting.
3. Host-based Installation Troubleshooting
K8S Installation Phase
In this phase, Rainbond provides a command for installing the K8S cluster. The actual installation process is executed locally. Normally, after executing the command, the K8S cluster will be automatically installed until the nodes show as Ready status in the page, then you can proceed to the next step.
Troubleshooting Approach
After executing the installation command on the target server, it will automatically register with the Rainbond cluster and be in the registering state. If it remains in the registering state for a long time, check the following issues:
-
First, check if the K8S cluster was installed successfully by viewing the node status with the following command.
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
/var/lib/rancher/rke2/bin/kubectl get nodes- If the command returns no information, check the log information through
journalctl -u rke2-serverorjournalctl -u rke2-agent. - If the node status is
NotReadyafter executing the command, check the output of thekubectl get pod -n kube-systemcommand to see if Pods likekube-proxy,coredns,metrics-serverare in theRunningstate.
- If the command returns no information, check the log information through
-
Check if the Rainbond console's network can connect to the target server's 6443 port. By default, it will connect through
https://<internal IP>:6443(if an external IP is filled in, it will connect throughhttps://<external IP>:6443).
Rainbond Installation Phase
Common Issues
- rbd-gateway cannot start, usually because
rbd-gatewayhas a port conflict. You can check the logs ofrbd-gatewaywith the following command.
kubectl logs -f -n rbd-system -l name=rbd-gateway -c apisix