11

I am using kubeadm to deploy single node kubernetes 1.11 cluster. I am unable to find servicemonitor resources.

➜  kube-prometheus git:(master) ✗ kubectl get servicemonitor
error: the server doesn't have a resource type "servicemonitor"

➜  kube-prometheus git:(master) ✗ kubectl create -f manifests/prometheus-serviceMonitor.yaml
error: unable to recognize "manifests/prometheus-serviceMonitor.yaml": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

How do I enable servicemonitor with kubeadm?

Steve
  • 863
  • 3
  • 9
  • 21

3 Answers3

9

The ServiceMonitor resource not part of Kubernetes itself. It is a custom resource which is part of the Prometheus operator as described here.

Make sure that you have installed the Prometheus operator (including the custom resources) beforehand to enable creating a ServiceMonitor object.

Andreas Jägle
  • 11,632
  • 3
  • 31
  • 31
2

kubectl create -f manifests/prometheus-serviceMonitor.yaml try to create resource type of ServiceMontor for prometheus. But you haven't created that custom resource type yet. So first create CustomResource ServiceMonitor by using this custom resource definition(CRD). you can use following command

kubectl create -f manifests/0prometheus-operator-0servicemonitorCustomResourceDefinition.yaml

But if you are trying to put up kube-prometheus or any other sub project of prometheus-operator. You can deploy the kube-prometheus stack by running all deployments in folder level as below.

kubectl create -f manifests/
Juan-Kabbali
  • 1,961
  • 15
  • 20
Hansika Weerasena
  • 3,046
  • 1
  • 13
  • 22
  • 3
    The link is not working anymore. can you update it? – NIrav Modi Apr 15 '21 at 11:01
  • the CRD has been moved here: https://github.com/prometheus-operator/kube-prometheus/blob/main/manifests/setup/prometheus-operator-0servicemonitorCustomResourceDefinition.yaml – duxx0r Aug 25 '21 at 23:09
1

serviceMonitor kind is not default in kubernetes cluster and it can be installed in the cluster by

kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml

This will be install few more other components, create this in separate namespace and remove it !!

Francis John
  • 171
  • 2
  • 4
  • 13