Skip to content
This repository was archived by the owner on Jan 9, 2020. It is now read-only.

Commit 7f06745

Browse files
committed
Add Support for some kubernetes client settings
Add Support for `spark.kubernetes.client.watch.reconnectInterval`(which is relevant to KUBERNETES_WATCH_RECONNECT_INTERVAL_SYSTEM_PROPERTY in io.fabric8.kubernetes.client.Config.) Add Support for `spark.kubernetes.client.watch.reconnectLimit`(which is relevant to KUBERNETES_WATCH_RECONNECT_LIMIT_SYSTEM_PROPERTY in io.fabric8.kubernetes.client.Config.) Add Support for `spark.kubernetes.client.connection.timeout`(which is relevant to KUBERNETES_CONNECTION_TIMEOUT_SYSTEM_PROPERTY in io.fabric8.kubernetes.client.Config.) Add Support for `spark.kubernetes.client.request.timeout`(which is relevant to KUBERNETES_REQUEST_TIMEOUT_SYSTEM_PROPERTY in io.fabric8.kubernetes.client.Config.) Signed-off-by: duyanghao <1294057873@qq.com>
1 parent 728ba0a commit 7f06745

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

Diff for: docs/running-on-kubernetes.md

+28
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,34 @@ from the other deployment modes. See the [configuration page](configuration.html
798798
the Driver process. The user can specify multiple of these to set multiple environment variables.
799799
</td>
800800
</tr>
801+
<tr>
802+
<td><code>spark.kubernetes.client.watch.reconnectIntervalInMs</code></td>
803+
<td><code>1s</code></td>
804+
<td>
805+
Connection retry interval for kubernetes client requests.
806+
</td>
807+
</tr>
808+
<tr>
809+
<td><code>spark.kubernetes.client.watch.reconnectLimit</code></td>
810+
<td><code>-1</code></td>
811+
<td>
812+
Limit of times connections can be attempted for kubernetes client requests.
813+
</td>
814+
</tr>
815+
<tr>
816+
<td><code>spark.kubernetes.client.connection.timeoutInMs</code></td>
817+
<td><code>10s</code></td>
818+
<td>
819+
Connection timeout for kubernetes client requests.
820+
</td>
821+
</tr>
822+
<tr>
823+
<td><code>spark.kubernetes.client.request.timeoutInMs</code></td>
824+
<td><code>10s</code></td>
825+
<td>
826+
Request timeout for kubernetes client requests.
827+
</td>
828+
</tr>
801829
</table>
802830

803831

Diff for: resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/kubernetes/SparkKubernetesClientFactory.scala

+12
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,18 @@ private[spark] object SparkKubernetesClientFactory {
8181
}.withOption(namespace) {
8282
(ns, configBuilder) => configBuilder.withNamespace(ns)
8383
}.build()
84+
val connTimeoutPropertiesMs = sparkConf.get(
85+
KUBERNETES_CLIENT_CONNECTION_TIMEOUT_SYSTEM_PROPERTY)
86+
config.setConnectionTimeout(connTimeoutPropertiesMs.toInt)
87+
val reqTimeoutPropertiesMs = sparkConf.get(
88+
KUBERNETES_CLIENT_REQUEST_TIMEOUT_SYSTEM_PROPERTY)
89+
config.setRequestTimeout(reqTimeoutPropertiesMs.toInt)
90+
val reconnectIntervalPropertiesMs = sparkConf.get(
91+
KUBERNETES_CLIENT_WATCH_RECONNECT_INTERVAL_SYSTEM_PROPERTY)
92+
config.setWatchReconnectInterval(reconnectIntervalPropertiesMs.toInt)
93+
val reconnectLimitProperties = sparkConf.get(
94+
KUBERNETES_CLIENT_WATCH_RECONNECT_LIMIT_SYSTEM_PROPERTY)
95+
config.setWatchReconnectLimit(reconnectLimitProperties)
8496
val baseHttpClient = HttpClientUtils.createHttpClient(config)
8597
val httpClientWithCustomDispatcher = baseHttpClient.newBuilder()
8698
.dispatcher(dispatcher)

Diff for: resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/kubernetes/config.scala

+24
Original file line numberDiff line numberDiff line change
@@ -545,4 +545,28 @@ package object config extends Logging {
545545
resolvedURL
546546
}
547547
}
548+
549+
private[spark] val KUBERNETES_CLIENT_WATCH_RECONNECT_INTERVAL_SYSTEM_PROPERTY =
550+
ConfigBuilder("spark.kubernetes.client.watch.reconnectIntervalInMs")
551+
.doc("Connection retry interval for kubernetes client requests.")
552+
.timeConf(TimeUnit.MILLISECONDS)
553+
.createWithDefaultString("1s")
554+
555+
private[spark] val KUBERNETES_CLIENT_WATCH_RECONNECT_LIMIT_SYSTEM_PROPERTY =
556+
ConfigBuilder("spark.kubernetes.client.watch.reconnectLimit")
557+
.doc("Limit of times connections can be attempted for kubernetes client requests.")
558+
.intConf
559+
.createWithDefault(-1)
560+
561+
private[spark] val KUBERNETES_CLIENT_CONNECTION_TIMEOUT_SYSTEM_PROPERTY =
562+
ConfigBuilder("spark.kubernetes.client.connection.timeoutInMs")
563+
.doc("Connection timeout for kubernetes client requests.")
564+
.timeConf(TimeUnit.MILLISECONDS)
565+
.createWithDefaultString("10s")
566+
567+
private[spark] val KUBERNETES_CLIENT_REQUEST_TIMEOUT_SYSTEM_PROPERTY =
568+
ConfigBuilder("spark.kubernetes.client.request.timeoutInMs")
569+
.doc("Request timeout for kubernetes client requests.")
570+
.timeConf(TimeUnit.MILLISECONDS)
571+
.createWithDefaultString("10s")
548572
}

0 commit comments

Comments
 (0)