-
Notifications
You must be signed in to change notification settings - Fork 402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Set appProtocol correctly for head service #1946
Comments
Ideally, the service should look like this (unsure about the gcs port):
If I manually patch the service after creation by the operator, Istio works as expected. |
I was able to figure out a hacky workaround for this. We can add port definitions using the So the solution is to set up apiVersion: ray.io/v1alpha1
kind: RayCluster
metadata:
name: ray-test
spec:
...
headGroupSpec:
...
headService:
spec:
ports:
- appProtocol: grpc
name: client
port: 10001
protocol: TCP
targetPort: 10001
- appProtocol: http
name: dashboard
port: 8265
protocol: TCP
targetPort: 8265
- appProtocol: tcp
name: gcs
port: 6379
protocol: TCP
targetPort: 6379
- appProtocol: http
name: serve
port: 8000
protocol: TCP
targetPort: 8000
...
template:
spec:
containers:
- name: ray-head
ports:
- name: metrics
containerPort: 8080
... |
Search before asking
Description
#668 set the appProtocol to all ports in the head service to
tcp
. I believe the goal was to provide compatibility with OpenServiceMesh (see #625). Whiletcp
basically works, we lose features that service meshes like Istio and (I assume) OSM can provide by not providing a more specific protocol. Aside from possibly the GCS port, these ports all use HTTP or gRPC. Is there any reason not to provide the correct protocol?Background:
http
,tcp
,grpc
and a few other values.http
,tcp
, andgrpc
Use case
I'm deploying Kuberay into a cluster that runs Istio. I'd like to be able to expose head services outside the cluster, ideally with routing based on hostname. For example, I'd like cluster1.ray.example.com to go to cluster1 and cluster2.ray.example.target.com to go to cluster2.
Related issues
#1025 notes that JWT RequestAuthentication in istio can only be applied to ports with
appProtocol: http
.Are you willing to submit a PR?
The text was updated successfully, but these errors were encountered: