<p>I'm trying to aggregate all the metrics, EC2 (CPU, ram, disk) and Pods (CPU, ram, disk) from inside a EKS cluster using an existing Prometheus (external to the cluster). I started adding data using node-exporter, kube-state-metrics but I'm stuck at deploying metrics-server. Using helm I conf and installed it, <code>kube top</code> and <code>kubectl get --raw "/apis/metrics.k8s.io/v1beta1/pods" | jq</code> are pulling data, but can someone advise on how can I pull all this to my external Prometheus ? 
Is there a way to expose this to a /metrics URL?
Thank you!</p>

<p>I think your best bet here is to use prometheus federation. In that setup, </p>

<ol>
<li><p>You'll have one in-cluster prometheus and your original external prometheus. The in-cluster prometheus does the actual collection and temporary storage. </p></li>
<li><p>In your external prometheus, you'll scrape the <code>/federate</code> endpoint of your in-cluster prometheus. The <code>/federate</code> is specifically designed for the use case you are trying </p></li>
</ol>

<p>This is the best method for having performant and reliable scraping of metrics. Getting the metrics via apiserver would not be a good way. Even if it's possible, would put unnecessary strain on the apiserver. </p>
