You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/troubleshooting/01_trouble-shooting.adoc
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,23 @@ This page will be updated and maintained over time to include common issues we s
39
39
40
40
== Issues
41
41
42
+
[#start-timeout]
43
+
=== The Operator fails to start with a timeout error
44
+
45
+
One of the first things the operator does on start-up os to log the Kubernetes server version.
46
+
This is done by making a request to the API server with a default timeout of one minute.
47
+
If the network policies, firewall rules, or RBAC are blocking the operator from connecting to the API server this
48
+
request will time out with an error like the one below
49
+
50
+
[source]
51
+
----
52
+
2025-10-16T09:05:29Z INFO setup ERROR: failed to get Kubernetes server version {"Host": "https://10.96.0.1:443", "Error": "Get \"https://10.96.0.1:443/version?timeout=32s\": dial tcp 10.96.0.1:443: i/o timeout"}
53
+
Error: unable to get kubernetes server version: Get "https://10.96.0.1:443/version?timeout=32s": dial tcp 10.96.0.1:443: i/o timeout
54
+
----
55
+
56
+
The error message in the operator's logs will include the host name and port that the operator attempted to use,
57
+
so this can be used to then ensure egress is allowed to the correct host and port.
58
+
42
59
[#no-operator]
43
60
=== I Uninstalled the Operator and Cannot Delete the Coherence Clusters
44
61
@@ -97,6 +114,9 @@ not cleanly shut down and will then not be able to be restarted using the persis
97
114
The readiness/liveness probe used by the Operator in the Coherence Pods checks a number of things to determine whether the Pods is ready, one of these is whether the JVM is a cluster member.
98
115
If your application uses a custom main class and is not properly bootstrapping Coherence then the Pod will not be ready until your application code actually touches a Coherence resource causing Coherence to start and join the cluster.
99
116
117
+
If you have overridden the configuration for the readiness or liveness probes for the Coherence cluster with custom endpoints,
118
+
then you need to debug your own code.
119
+
100
120
When running in clusters with the Operator using custom main classes it is advisable to properly bootstrap Coherence
101
121
from within your `main` method. This can be done using the new Coherence bootstrap API available from CE release 20.12
102
122
or by calling `com.tangosol.net.DefaultCacheServer.startServerDaemon().waitForServiceStart();`
setupLog.Info(fmt.Sprintf("Default Coherence Image (only used when no image is specified for a Coherence resource): %s", operator.GetDefaultCoherenceImage()))
84
86
85
87
// if the enable-http2 flag is false (the default), http/2 should be disabled
86
88
// due to its vulnerabilities. More specifically, disabling http/2 will
returnerrors.Wrap(err, "unable to create client set")
120
122
}
123
+
setupLog.Info("Successfully created kubernetes client", "Host", cfg.Host)
121
124
122
-
version, err:=cs.DiscoveryClient.ServerVersion()
125
+
// Get and display the k8s version of the server.
126
+
// This will also verify that we can actually talk to the k8s API server.
127
+
// For example, incorrectly configured network polices or RBAC rules can prevent us from talking to the server.
128
+
sv, err:=getServerVersion(cs, v)
123
129
iferr!=nil {
130
+
setupLog.Info("ERROR: failed to get the Kubernetes server version. This could be cause by misconfigured network policies, RBAC rules or firewalls, etc.",
131
+
"Host", cfg.Host, "Error", err.Error())
124
132
returnerrors.Wrap(err, "unable to get kubernetes server version")
125
133
}
126
-
setupLog.Info("Kubernetes server version", "Major", version.Major, "Minor", version.Minor, "Platform", version.Platform)
0 commit comments