diff --git a/jsonnet/kube-prometheus/kube-prometheus-bootkube.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-bootkube.libsonnet
index 284544c12196e95179da8cef44329961bfe8421c..8e73509dd8e469b35a8256271ef90ff26b9ab01b 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-bootkube.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-bootkube.libsonnet
@@ -18,24 +18,24 @@ local service(name, namespace, labels, selector, ports) = {
     kubeControllerManagerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-controller-manager' },
-      { 'k8s-app': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
       [{ name: 'https-metrics', port: 10257, targetPort: 10257 }]
     ),
 
     kubeSchedulerPrometheusDiscoveryService: service(
       'kube-scheduler-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-scheduler' },
-      { 'k8s-app': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
       [{ name: 'https-metrics', port: 10259, targetPort: 10259 }]
     ),
 
     kubeDnsPrometheusDiscoveryService: service(
       'kube-dns-prometheus-discovery',
-      'kube-syste',
-      { 'k8s-app': 'kube-dns' },
-      { 'k8s-app': 'kube-dns' },
+      'kube-system',
+      { 'app.kubernetes.io/name': 'kube-dns' },
+      { 'app.kubernetes.io/name': 'kube-dns' },
       [{ name: 'http-metrics-skydns', port: 10055, targetPort: 10055 }, { name: 'http-metrics-dnsmasq', port: 10054, targetPort: 10054 }]
     ),
   },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-eks.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-eks.libsonnet
index d4dd965284f359fb898e8d98506f2d7b748b6b87..3f6ab80dd9e80393a573ddbd860cf2e4b578e1af 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-eks.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-eks.libsonnet
@@ -23,13 +23,13 @@
       metadata: {
         name: 'aws-node',
         namespace: 'kube-system',
-        labels: { 'k8s-app': 'aws-node' },
+        labels: { 'app.kubernetes.io/name': 'aws-node' },
       },
       spec: {
         ports: [
           { name: 'cni-metrics-port', port: 61678, targetPort: 61678 },
         ],
-        selector: { 'k8s-app': 'aws-node' },
+        selector: { 'app.kubernetes.io/name': 'aws-node' },
         clusterIP: 'None',
       },
     },
@@ -41,14 +41,14 @@
         name: 'awsekscni',
         namespace: $._config.namespace,
         labels: {
-          'k8s-app': 'eks-cni',
+          'app.kubernetes.io/name': 'eks-cni',
         },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         selector: {
           matchLabels: {
-            'k8s-app': 'aws-node',
+            'app.kubernetes.io/name': 'aws-node',
           },
         },
         namespaceSelector: {
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet
index a003fc75af1124207037a4695ea7e61a91133946..749e937c4ff72d02a5a67fc52e887327eeec5b78 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-kops-coredns.libsonnet
@@ -6,13 +6,13 @@
       metadata: {
         name: 'kube-dns-prometheus-discovery',
         namespace: 'kube-system',
-        labels: { 'k8s-app': 'kube-dns' },
+        labels: { 'app.kubernetes.io/name': 'kube-dns' },
       },
       spec: {
         ports: [
           { name: 'metrics', port: 9153, targetPort: 9153 },
         ],
-        selector: { 'k8s-app': 'kube-dns' },
+        selector: { 'app.kubernetes.io/name': 'kube-dns' },
         clusterIP: 'None',
       },
     },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet
index 8db8c2990e139dae27b7e8d46f02ed875018c421..5615ae20f4616200ae962ba33077e4fd5ae55ae7 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet
@@ -18,22 +18,22 @@ local service(name, namespace, labels, selector, ports) = {
     kubeControllerManagerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-controller-manager' },
-      { 'k8s-app': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
       [{ name: 'https-metrics', port: 10257, targetPort: 10257 }]
     ),
     kubeSchedulerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-scheduler' },
-      { 'k8s-app': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
       [{ name: 'https-metrics', port: 10259, targetPort: 10259 }]
     ),
     kubeDnsPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-dns' },
-      { 'k8s-app': 'kube-dns' },
+      { 'app.kubernetes.io/name': 'kube-dns' },
+      { 'app.kubernetes.io/name': 'kube-dns' },
       [{ name: 'metrics', port: 10055, targetPort: 10055 }, { name: 'http-metrics-dnsmasq', port: 10054, targetPort: 10054 }]
     ),
   },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet
index ae8d364d2492cf6a05037430ff925187913d3b6b..04d67d0055e0faee5dfcb878c70cb95ce44f61c2 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-kube-aws.libsonnet
@@ -18,15 +18,15 @@ local service(name, namespace, labels, selector, ports) = {
     kubeControllerManagerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-controller-manager' },
-      { 'k8s-app': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
       [{ name: 'https-metrics', port: 10257, targetPort: 10257 }],
     ),
     kubeSchedulerPrometheusDiscoveryService: service(
       'kube-scheduler-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-scheduler' },
-      { 'k8s-app': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
       [{ name: 'https-metrics', port: 10259, targetPort: 10259 }],
     ),
   },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet
index 543e0cea9a413542e897e37323f1c7368f2843a3..3621c2aac5d9493ef2ae2f12e6f8a24759ea333e 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-kubeadm.libsonnet
@@ -18,14 +18,14 @@ local service(name, namespace, labels, selector, ports) = {
     kubeControllerManagerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
       { component: 'kube-controller-manager' },
       [{ name: 'https-metrics', port: 10257, targetPort: 10257 }]
     ),
     kubeSchedulerPrometheusDiscoveryService: service(
       'kube-scheduler-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
       { component: 'kube-scheduler' },
       [{ name: 'https-metrics', port: 10259, targetPort: 10259 }],
     ),
diff --git a/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet
index c1e7682d57842bfa039cec4bf20c6cca11e93849..f34cab677c51d99611827dcebc8786d98ea255e1 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-kubespray.libsonnet
@@ -19,16 +19,16 @@ local service(name, namespace, labels, selector, ports) = {
     kubeControllerManagerPrometheusDiscoveryService: service(
       'kube-controller-manager-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-controller-manager' },
-      { 'k8s-app': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
+      { 'app.kubernetes.io/name': 'kube-controller-manager' },
       [{ name: 'https-metrics', port: 10257, targetPort: 10257 }]
     ),
 
     kubeSchedulerPrometheusDiscoveryService: service(
       'kube-scheduler-prometheus-discovery',
       'kube-system',
-      { 'k8s-app': 'kube-scheduler' },
-      { 'k8s-app': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
+      { 'app.kubernetes.io/name': 'kube-scheduler' },
       [{ name: 'https-metrics', port: 10259, targetPort: 10259 }],
     ),
 
@@ -36,7 +36,7 @@ local service(name, namespace, labels, selector, ports) = {
       spec+: {
         selector+: {
           matchLabels: {
-            'k8s-app': 'kube-scheduler',
+            'app.kubernetes.io/name': 'kube-scheduler',
           },
         },
       },
@@ -46,7 +46,7 @@ local service(name, namespace, labels, selector, ports) = {
       spec+: {
         selector+: {
           matchLabels: {
-            'k8s-app': 'kube-controller-manager',
+            'app.kubernetes.io/name': 'kube-controller-manager',
           },
         },
       },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-static-etcd.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-static-etcd.libsonnet
index 2994023d39cfd434a39007a19210890c11d69d02..e4c3a14d08b0ef21535432921bb032daa2f6cb9b 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-static-etcd.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-static-etcd.libsonnet
@@ -16,7 +16,7 @@
       metadata: {
         name: 'etcd',
         namespace: 'kube-system',
-        labels: { 'k8s-app': 'etcd' },
+        labels: { 'app.kubernetes.io/name': 'etcd' },
       },
       spec: {
         ports: [
@@ -31,7 +31,7 @@
       metadata: {
         name: 'etcd',
         namespace: 'kube-system',
-        labels: { 'k8s-app': 'etcd' },
+        labels: { 'app.kubernetes.io/name': 'etcd' },
       },
       subsets: [{
         addresses: [
@@ -50,11 +50,11 @@
         name: 'etcd',
         namespace: 'kube-system',
         labels: {
-          'k8s-app': 'etcd',
+          'app.kubernetes.io/name': 'etcd',
         },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         endpoints: [
           {
             port: 'metrics',
@@ -72,7 +72,7 @@
         ],
         selector: {
           matchLabels: {
-            'k8s-app': 'etcd',
+            'app.kubernetes.io/name': 'etcd',
           },
         },
       },
diff --git a/jsonnet/kube-prometheus/kube-prometheus-thanos-sidecar.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-thanos-sidecar.libsonnet
index 0f762eb810abb770feea54fc272df6f6bc48184c..01620d4a837f9a23851331e828724a32049fdbd8 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-thanos-sidecar.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-thanos-sidecar.libsonnet
@@ -56,7 +56,7 @@
           name: 'thanos-sidecar',
           namespace: p.namespace,
           labels: {
-            'k8s-app': 'prometheus',
+            'app.kubernetes.io/name': 'prometheus',
           },
         },
         spec: {
diff --git a/jsonnet/kube-prometheus/kube-prometheus-weave-net.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-weave-net.libsonnet
index 19e7b934294977faa7f326b8854c27a255d94f82..0755e60c83143931fb6861b34db7ca87e25ea68f 100644
--- a/jsonnet/kube-prometheus/kube-prometheus-weave-net.libsonnet
+++ b/jsonnet/kube-prometheus/kube-prometheus-weave-net.libsonnet
@@ -6,7 +6,7 @@
       metadata: {
         name: 'weave-net',
         namespace: 'kube-system',
-        labels: { 'k8s-app': 'weave-net' },
+        labels: { 'app.kubernetes.io/name': 'weave-net' },
       },
       spec: {
         ports: [
@@ -22,12 +22,12 @@
       metadata: {
         name: 'weave-net',
         labels: {
-          'k8s-app': 'weave-net',
+          'app.kubernetes.io/name': 'weave-net',
         },
         namespace: 'monitoring',
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         endpoints: [
           {
             port: 'weave-net-metrics',
@@ -42,7 +42,7 @@
         },
         selector: {
           matchLabels: {
-            'k8s-app': 'weave-net',
+            'app.kubernetes.io/name': 'weave-net',
           },
         },
       },
diff --git a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
index 3e7e4e96f0b8f5d0976abf5d9d7aee094067ba2d..1a666e1dcd3e90e5871113c82a6c733b0f33de86 100644
--- a/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
+++ b/jsonnet/kube-prometheus/prometheus/prometheus.libsonnet
@@ -250,7 +250,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'prometheus',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'prometheus' } + $._config.prometheus.labels,
+        labels: $._config.prometheus.labels,
       },
       spec: {
         selector: {
@@ -269,10 +269,10 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'kube-scheduler',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'kube-scheduler' },
+        labels: { 'app.kubernetes.io/name': 'kube-scheduler' },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         endpoints: [{
           port: 'https-metrics',
           interval: '30s',
@@ -281,7 +281,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
           tlsConfig: { insecureSkipVerify: true },
         }],
         selector: {
-          matchLabels: { 'k8s-app': 'kube-scheduler' },
+          matchLabels: { 'app.kubernetes.io/name': 'kube-scheduler' },
         },
         namespaceSelector: {
           matchNames: ['kube-system'],
@@ -295,10 +295,10 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'kubelet',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'kubelet' },
+        labels: { 'app.kubernetes.io/name': 'kubelet' },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         endpoints: [
           {
             port: 'https-metrics',
@@ -353,7 +353,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
           },
         ],
         selector: {
-          matchLabels: { 'k8s-app': 'kubelet' },
+          matchLabels: { 'app.kubernetes.io/name': 'kubelet' },
         },
         namespaceSelector: {
           matchNames: ['kube-system'],
@@ -367,10 +367,10 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'kube-controller-manager',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'kube-controller-manager' },
+        labels: { 'app.kubernetes.io/name': 'kube-controller-manager' },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         endpoints: [{
           port: 'https-metrics',
           interval: '30s',
@@ -388,7 +388,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
           ],
         }],
         selector: {
-          matchLabels: { 'k8s-app': 'kube-controller-manager' },
+          matchLabels: { 'app.kubernetes.io/name': 'kube-controller-manager' },
         },
         namespaceSelector: {
           matchNames: ['kube-system'],
@@ -402,7 +402,7 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'kube-apiserver',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'apiserver' },
+        labels: { 'app.kubernetes.io/name': 'apiserver' },
       },
       spec: {
         jobLabel: 'component',
@@ -456,12 +456,12 @@ local relabelings = import 'kube-prometheus/dropping-deprecated-metrics-relabeli
       metadata: {
         name: 'coredns',
         namespace: p.namespace,
-        labels: { 'k8s-app': 'coredns' },
+        labels: { 'app.kubernetes.io/name': 'coredns' },
       },
       spec: {
-        jobLabel: 'k8s-app',
+        jobLabel: 'app.kubernetes.io/name',
         selector: {
-          matchLabels: { 'k8s-app': 'kube-dns' },
+          matchLabels: { 'app.kubernetes.io/name': 'kube-dns' },
         },
         namespaceSelector: {
           matchNames: ['kube-system'],