This topic provides solutions for some installation issues.
Issue: Services are in Pending state after you run kubectl get pods -n xvm.
Reason: Labels for the region and zone nodes are incorrectly configured.
For example: kubectl label node zonal1-node-xvm region=reg1.
cd /etc/xvm/controlplane_node_binaries ./loadPodsInControlPlaneNode.sh
Issue: Services are in ErrImagePull or ImagePullBackOff state after you run kubectl get pods -n xvm.
Reason: You tried to create a pod that references an image name or tag that does not exist. This issue can be caused by a version mismatch or by an incorrect label configuration.
docker load < /etc/xvm/<ABC>_node_binaries/<docker_image.tar.gz>
For example: kubectl label node zonal1-node-xvm region=reg1.
cd /etc/xvm/controlplane_node_binaries ./loadPodsInControlPlaneNode.sh
Issue: The crms-ms does not start or does not run correctly and pods are in CrashLoopBackOff state.
Reason: An incorrect parameter may be configured in the /opt/crms/locations.csv file.
Do not insert spaces after commas or in any fields other than the geographical location fields. Ensure that the IP addresses are valid. Zone names and host names can consist of numeric characters and lowercase alphabetic characters. For example:
usa,region-1,10.37.138.187,east-zone,10.37.138.187,zone-187,Duff, 36.4467° N,84.0674° W usa,region-1,10.37.138.188,west-zone,10.37.138.187,zone-188,Las Vegas, 36.1699° N,115.1398° W
cd /etc/xvm/controlplane_node_binaries ./loadPodsInControlPlaneNode.sh
Issue: Nodes are not listed after you run kubectl get nodes on the control plane VM.
Reason: There are two possibilities. An
incorrect join token was applied to the region and zone VMs. Or the host name is
incorrectly configured on the region and zone VMs. For example, the same host name
is used for more than one node in the xvmconf
file.
kubeadm token create --print-join-command.
For more information, see Configure and Verify the System.
/etc/xvm/<node>_binaries/<node>_startup.sh
kubectl label nodes cat-region1-evm region=reg1 kubectl label nodes cat-region2-evm region=reg1 kubectl label nodes cat-region3-evm region=reg1 kubectl label nodes cat-zone1-evm zone=reg1-zone1
The final command differs from the others in two ways. It has a different label and the label value is assigned.
cd /etc/xvm/controlplane_node_binaries ./loadPodsInControlPlaneNode.sh
kubectl cordon <node-name> kubectl drain <node-name> --ignore-daemonsets kubectl delete node <node-name>
The drain waits for graceful termination. Do not operate the node's VM until the command completes. To put the node back into service, run kubectl uncordon <node-name>, which makes the node able to be scheduled.
/etc/xvm/<ABC>_node_binaries/<ABC>_startup.sh
<ABC> can be a region or a zone. For example: /region_startup.sh.
kubeadm token create --print-join-command
Alternatively, you can reuse a previously used join token if it is available.
kubectl label nodes cat-region1-evm region=reg1 kubectl label nodes cat-region2-evm region=reg1 kubectl label nodes cat-region3-evm region=reg1 kubectl label nodes cat-zone1-evm zone=reg1-zone1
The final command differs from the others in two ways. It has a different label and the label value is assigned.
# patronictl -c /opt/app/patroni/etc/postgresql.yml list postgres
The output identifies the node with the Leader role and displays an * in the Pending Restart column.
patroni
service:
sudo systemctl restart patroni
patronictl -c /opt/app/patroni/etc/postgresql.yml list postgres
cd /etc/xvm/controlplane_node_binaries ./loadPodsInControlPlaneNode.sh