title: What is the difference among kubernetes_sd_config (within prometheus) and metrics-server and kube-state-metrics?
body: <p>I've read some pages about monitoring k8s, and I found <strong><em>kubernetes_sd_config</em></strong> (within prometheus), <strong><em>metrics-server</em></strong> (took the place of <em>heapster</em>) and <strong><em>kube-state-metrics</em></strong>. All of them could provides metrics, but what's the difference? </p>
  
  <ol>
  <li>Does kubernetes_sd_config (within prometheus) provide all the data those I can get using metrics-server and kube-state-metrics? </li>
  <li>Is kubernetes_sd_config just enough for monitoring? </li>
  <li>Is metrics-server just for providing data (less than kubernetes_sd_config) to the internal components(such as hpa controller)?</li>
  <li>Is kube-state-metrics just for the objects (pod, deployment...) in k8s?</li>
  <li>what is their own target respectively?</li>
  </ol>