-
Notifications
You must be signed in to change notification settings - Fork 6k
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
[Serve][Doc] Add loadbalancer and monitoring section for K8s #36775
Conversation
Signed-off-by: Sihan Wang <sihanwang41@gmail.com>
You can setup ingress to expose your Serve application to the internet. See [example](https://github.com/ray-project/kuberay/blob/master/ray-operator/config/samples/ray_v1alpha1_rayservice-alb-ingress.yaml) | ||
|
||
:::{note} | ||
- Ray Serve provisions an HTTP proxy on every node, allowing you to use `/-/routes` as the endpoint for node health checks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Ray Serve provisions an HTTP proxy on every node, allowing you to use `/-/routes` as the endpoint for node health checks. | |
- Ray Serve runs an HTTP proxy on every node. Each proxy exposes contains a `/healthz` endpoint that you can query to check its health. |
|
||
:::{note} | ||
- Ray Serve provisions an HTTP proxy on every node, allowing you to use `/-/routes` as the endpoint for node health checks. | ||
- Ray Serve uses port 8000 as the default HTTP proxy traffic port. You can change the port by setting `http_options` in the Serve config. Learn more details [here](serve-multi-application) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Ray Serve uses port 8000 as the default HTTP proxy traffic port. You can change the port by setting `http_options` in the Serve config. Learn more details [here](serve-multi-application) | |
- Ray Serve uses port 8000 as the default HTTP proxy traffic port. You can change the port by setting `http_options` in the Serve config. See [Deploy Multiple Applications](serve-multi-application) for more details. |
@@ -255,6 +255,21 @@ To enable autoscaling in a KubeRay Cluster, you need to set `enableInTreeAutosca | |||
In most use cases, it is recommended to enable Kubernetes autoscaling to fully utilize the resources in your cluster. If you are using GKE, you can utilize the AutoPilot Kubernetes cluster. For instructions, see [Create an Autopilot Cluster]((https://cloud.google.com/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster)). For EKS, you can enable Kubernetes cluster autoscaling by utilizing the Cluster Autoscaler. For detailed information, see [Cluster Autoscaler on AWS](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md). To understand the relationship between Kubernetes autoscaling and Ray autoscaling, see [Ray Autoscaler with Kubernetes Cluster Autoscaler](kuberay-autoscaler-with-ray-autoscaler). | |||
::: | |||
|
|||
## Load balancer | |||
Set up ingress to expose your Serve application to the internet. See [this configuration](https://github.com/ray-project/kuberay/blob/master/ray-operator/config/samples/ray_v1alpha1_rayservice-alb-ingress.yaml) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if you want an internal service (not exposed to the internet)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rephrased. Basically it depends on network config whether your ingress can be connected by external. (not related to the ingress itself)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the ray_v1alpha1_rayservice.yaml needs to be updated to use serveConfigV2
Hi @akshay-anyscale, the corresponding link can be updated after the new kuberay version is released. Currently ray_v1alpha1_rayservice.yaml in latest master is already using service v2 config. Normally we will have doc version audit in the ray doc everytime we have a new version of kuberay release. |
Got it, don't those changes need to be done before Ray 2.6 release? CC: @kevin85421 |
- Ray Serve uses port 8000 as the default HTTP proxy traffic port. You can change the port by setting `http_options` in the Serve config. Learn more details [here](serve-multi-application). | ||
::: | ||
|
||
## Monitoring |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also add the links for how to hook up 3rd party observability providers here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also add how to get to the kuberay logs for troubleshooting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added logging with Loki link and trouble shooting notes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for updating! Do we have anything we recommend for metrics too? Btw I noticed this guide as well - https://docs.ray.io/en/latest/cluster/kubernetes/user-guides/logging.html . @scottsun94 which one do you usually recommend?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For log aggregation tools, we list a few here: Fluent Bit, Vector, Fluentd, Filebeat, and Promtail. We use Fluent Bit as an example but any of them should work and it depends on the users' preferences.
Serve doc have instructions for how to use Promtail with Loki which is good. It doesn't expand on how to persist the logs using Promtail. Here is my suggestion for how to reorganize the links in this section:
- people need to learn how to export metrics first (if they want to see them in ray dashboard, Grafana, CW, or whatever monitoring tools they want)
- learn how to configure and use dashboard
- lastly, log persistence
Learn how to export metrics and set up Grafana [here](https://ray-project.github.io/kuberay/guidance/prometheus-grafana/)
Learn more about how to configure and manage Dashboard [here](observability-configure-manage-dashboard).
Learn about the Ray Serve Dashboard [here](serve-monitoring).
Learn about the [Ray Serve logs](serve-logging) and how to [persistent logs](https://docs.ray.io/en/latest/cluster/kubernetes/user-guides/logging.html)on Kubernetes clusters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated!
Signed-off-by: Sihan Wang <sihanwang41@gmail.com>
Yeah, we can update the doc link after the kuberay 0.6.0 version is out. (Don't want to use nightly link in 2.6 release) |
- Learn more about how to configure and manage Dashboard [here](observability-configure-manage-dashboard). | ||
- Learn about the Ray Serve Dashboard [here](serve-monitoring). | ||
- Learn how to set up the Grafana for Dashboard [here](https://ray-project.github.io/kuberay/guidance/prometheus-grafana/) | ||
- Learn about the [Ray Serve logs](serve-logging) and how to [persistent logs](https://docs.ray.io/en/latest/cluster/kubernetes/user-guides/logging.html) on Kubernetes clusters. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Learn about the [Ray Serve logs](serve-logging) and how to [persistent logs](https://docs.ray.io/en/latest/cluster/kubernetes/user-guides/logging.html) on Kubernetes clusters. | |
- Learn about the [Ray Serve logs](serve-logging) and how to [persistent logs](kuberay-logging) on Kubernetes. |
I shouldn't use the absolute URLs. Does this anchor work?
…ject#36775) Signed-off-by: Sihan Wang <sihanwang41@gmail.com> Signed-off-by: e428265 <arvind.chandramouli@lmco.com>
Why are these changes needed?
Related issue number
Checks
git commit -s
) in this PR.scripts/format.sh
to lint the changes in this PR.method in Tune, I've added it in
doc/source/tune/api/
under thecorresponding
.rst
file.