Skip to main content

Troubleshooting

This page summarises common issues with centron and Kubernetes and shows you how to narrow down the cause – from connectivity to the cluster and pods that won’t start, through to network, storage and faulty nodes. For questions regarding features and billing, see FAQ.

Prerequisites

  • A Kubernetes cluster with the status Running and a verified connection via kubectl

General procedure

Most causes can be narrowed down using three commands:

# Zustand der Ressource und deren Events
kubectl describe <ressourcentyp> <name>

# Logs der Anwendung
kubectl logs <pod-name>

# Ereignisse im Cluster, zeitlich sortiert
kubectl get events --sort-by=.metadata.creationTimestamp

The Events section in the describe output usually specifies the specific cause.

Connection to the cluster

MessageCause and solution
The connection to the server ... was refusedThe cluster is still being provisioned. Check the status in the Kubernetes overview.
error: You must be logged in to the server (Unauthorized)The configuration file is out of date. Download it again via Download Config File in the Overview tab.
Unable to connect to the server: ... i/o timeoutAccess to the API endpoint is blocked – check your network and firewall configuration.
error: no configuration has been providedKUBECONFIG is not set or points to an incorrect path.

See Connecting to the cluster.

Pods are not starting

First of all, get an overview:

kubectl get pods --all-namespaces

Pending

The pod cannot be assigned to any node.

kubectl describe pod <pod-name>
Note in the eventsCause
Insufficient cpu / Insufficient memoryThe nodes have no free capacity. Increase the node pool or enable autoscaling.
node(s) didn't match Pod's node affinitynodeSelector or affinity rules do not match any node. Check kubectl get nodes --show-labels.
pod has unbound immediate PersistentVolumeClaimsThe PVC has not been bound yet; see below.
Hinweis

The scheduler makes its decision based on the requested requests values, not on the actual utilisation. requests values set too high tie up capacity that is not actually being used.

ImagePullBackOff / ErrImagePull

The container image cannot be loaded. Common causes:

  • Incorrect image name or non-existent tag
  • Private registry with no access credentials stored
  • The secret is in a different namespace to the pod

See Connecting the Container Registry.

CrashLoopBackOff

The container starts up but keeps terminating. The cause is almost always down to the application:

# Logs des aktuellen Versuchs
kubectl logs <pod-name>

# Logs der vorherigen, abgestürzten Instanz
kubectl logs <pod-name> --previous

Common causes include missing environment variables, unreachable dependencies or incorrect configuration.

OOMKilled

The container has exceeded its memory limit and has been terminated. Increase resources.limits.memory or reduce the application’s memory requirements.

kubectl describe pod <pod-name> | grep -A5 "Last State"

Application not available

EXTERNAL-IP remains <pending>

Services of type LoadBalancer do not receive an external address in this cluster – no Cloud Controller Manager has been set up. The <pending> state persists indefinitely.

Use NodePort instead; see Deploying the first image.

Connection rejected

Check whether the service is collecting pods at all:

kubectl get endpoints <service-name>

If no addresses are listed, the labels in the service’s selector do not match the labels on the pods – the most common cause of all.

503 via Ingress

The referenced service or its pods are not ready. Check the readiness probes and kubectl get endpoints.

See Installing the Ingress Controller.

Storage

PVC remains on Pending

Persistent volumes (CSI/PVC) are supported. If a PVC nevertheless remains on Pending, first check which storage classes are available in the cluster:

kubectl get storageclass

Then check that the PVC requests an existing storageClassName and that the requested size is within the limits. kubectl describe pvc <name> shows the relevant events. See Storage Features.

Nodes

Node with status NotReady

kubectl describe node <node-name>

The Conditions section displays messages such as MemoryPressure or DiskPressure. If the node remains faulty, reset it using Recycle; see Node Remediation.

Sustained high capacity utilisation

Check the Analytics tab, as well as:

kubectl top nodes
kubectl top pods --all-namespaces --sort-by=cpu

See View metrics and Select plan.

Contact Support

If you are unable to pinpoint the problem, please have the following details to hand:

  • Cluster name and region
  • Time of occurrence
  • Affected namespaces, pods or nodes
  • Output from kubectl describe and kubectl logs for the affected resource

The scope of support is described in Scope of Support.