Troubleshoot Installation#

Check Deployment Logs#

If you run into an error during deployment (i.e., kubectl apply -f kustomized.yaml), you can safely retry the (i.e., kubectl apply -f kustomized.yaml) as the operation is idempotent.

You can also check the log of a specific resource deployment that errored:

You can probably find out more by running: kubectl -n ess logs <resource>

Check Status of Your ESS Services#

You can check the status of the various ESS services:

kubectl get all -n ess

The operation returns the various ESS services and their status (the content has been abbreviated):

NAME                                               READY   STATUS             RESTARTS   AGE
pod/ess-....                                       1/1     Running            0          7m30s
...

NAME                                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/ess-...                       ClusterIP.  10.105.231.242   <none>        443/TCP,9000/TCP             8m25s
...

NAME                                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/ess-...                               0/1     1            0           7m34s
...

NAME                                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/ess-...                                          1         1         0       7m33s

Debug a Service#

When a service is not in Running status, you can investigate by issuing the kubectl describe command:

kubectl describe -n ess <resource>

For example, consider the following pod statuses (the status output has been abbreviated):

NAME                                                  READY   STATUS       RESTARTS   AGE
...

pod/strimzi-cluster-operator-655b4f74c8-dg7bc         0/1     Running      0          29m
...

The pod/strimzi-cluster-operator-655b4f74c8-dg7bc is Running but has 0 instance in Ready state. To investigate, use the kubectl describe command on the resource:

kubectl -n ess describe pod/strimzi-cluster-operator-655b4f74c8-dg7bc

In the output, go to the Events section at the bottom(the output has been abbreviated):

Name:         strimzi-cluster-operator-655b4f74c8-dg7bc
Namespace:    ess
Priority:     0

...

Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  30m                default-scheduler  Successfully assigned ess/strimzi-cluster-operator-655b4f74c8-dg7bc to minikube
  Normal   Pulling    26m                kubelet            Pulling image "quay.io/strimzi/operator:0.21.1"
  Normal   Pulled     116s               kubelet            Successfully pulled image "quay.io/strimzi/operator:0.21.1" in 24m56.677087628s
  Normal   Created    110s               kubelet            Created container strimzi-cluster-operator
  Normal   Started    91s                kubelet            Started container strimzi-cluster-operator
  Warning  Unhealthy  23s (x3 over 83s)  kubelet            Liveness probe failed: Get "http://172.17.0.11:8080/healthy": dial tcp 172.17.0.11:8080: connect: connection refused
  Warning  Unhealthy  4s (x3 over 64s)   kubelet            Readiness probe failed: Get "http://172.17.0.11:8080/ready": dial tcp 172.17.0.11:8080: connect: connection refused

The Events section lists the reason why the service did not start; namely. Review the messages to help diagnose and address any issue.

Alternatively, you can also access the Events information through the kubectl get events command on the resource name strimzi-cluster-operator-655b4f74c8-dg7bc (do not include the resource type, e.g., pod/):

kubectl -n ess get events --sort-by=.metadata.creationTimestamp --field-selector involvedObject.name=strimzi-cluster-operator-655b4f74c8-dg7bc
LAST SEEN   TYPE      REASON                 OBJECT                                          MESSAGE
43m         Normal    Scheduled              pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Successfully assigned ess/strimzi-cluster-operator-655b4f74c8-dg7bc to minikube
39m         Normal    Pulling                pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Pulling image "quay.io/strimzi/operator:0.21.1"
14m         Normal    Pulled                 pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Successfully pulled image "quay.io/strimzi/operator:0.21.1" in 24m56.677087628s
9m51s       Normal    Created                pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Created container strimzi-cluster-operator
11m         Normal    Started                pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Started container strimzi-cluster-operator
4m50s       Warning   Unhealthy              pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Liveness probe failed: Get "http://172.17.0.11:8080/healthy": dial tcp 172.17.0.11:8080: connect: connection refused
9m31s       Warning   Unhealthy              pod/strimzi-cluster-operator-655b4f74c8-dg7bc   Readiness probe failed: Get "http://172.17.0.11:8080/ready": dial tcp 172.17.0.11:8080: connect: connection refused