You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2026/03/28 23:18:00 UTC

[jira] [Updated] (SPARK-56275) Set appProtocol on Kubernetes service ports

     [ https://issues.apache.org/jira/browse/SPARK-56275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ASF GitHub Bot updated SPARK-56275:
-----------------------------------
    Labels: pull-request-available  (was: )

> Set appProtocol on Kubernetes service ports
> -------------------------------------------
>
>                 Key: SPARK-56275
>                 URL: https://issues.apache.org/jira/browse/SPARK-56275
>             Project: Spark
>          Issue Type: Improvement
>          Components: Kubernetes
>    Affects Versions: kubernetes-operator-0.9.0
>            Reporter: Jiwon Park
>            Priority: Minor
>              Labels: pull-request-available
>
> Kubernetes service ports support an {{appProtocol}} field that hints service meshes
> (e.g. Istio, Linkerd) and ingress controllers about the application-layer protocol
> in use on each port. Without this field, service meshes treat all traffic as opaque
> TCP, which prevents L7-aware load balancing, protocol-specific retries, and gRPC
> health checking.
> This improvement sets {{appProtocol}} on service ports managed by the Spark Kubernetes Operator:
> *SparkCluster services* (created directly by the operator):
>  * Master service: {{web}} (8080) → {{{}http{}}}, {{spark}} (7077) → {{{}tcp{}}}, {{rest}} (6066) → {{http}}
>  * Worker service: {{web}} (8081) → {{http}}
> *SparkApplication driver service* (created by Spark's DriverServiceFeatureStep and included in driverResources):
>  * {{driver-rpc-port}} → {{tcp}}
>  * {{blockmanager}} → {{tcp}}
>  * {{spark-ui}} → {{http}}
>  * {{spark-connect}} → {{grpc}}
> For SparkApplication, ports that already have {{appProtocol}} set (e.g. via user-defined service templates) are left unchanged to preserve user overrides.
> This change is non-breaking: environments without a service mesh simply ignore the field.
> See also: [https://github.com/kubeflow/spark-operator/pull/2823]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org