{"id":35702,"date":"2022-12-19T05:22:45","date_gmt":"2023-12-07T23:52:59","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/"},"modified":"2024-04-29T05:57:21","modified_gmt":"2024-04-28T21:57:21","slug":"%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/","title":{"rendered":"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7"},"content":{"rendered":"<p>\u6211\u5728Kubernetes\u4e0a\u90e8\u7f72\u4e86Prometheus\u3001Grafana\u548c\u81ea\u5b9a\u4e49Exporter\uff0c\u5e76\u5bf9\u6211\u5bb6\uff083\u4e2a\u623f\u95f4\uff09\u7684\u6e29\u6e7f\u5ea6\u8fdb\u884c\u4e86\u76d1\u63a7\u3002\u4e3a\u4e86\u65b9\u4fbf\u8d77\u89c1\uff0c\u6211\u5c06\u7701\u7565\u6709\u5173Prometheus\u3001Grafana\u548cKubernetes\u7684\u8bf4\u660e\u3002<\/p>\n<h2>\u51c6\u5907\u5de5\u4f5c<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Raspberry Pi\u3068\u6e29\u6e7f\u5ea6\u30bb\u30f3\u30b5\u306e\u63a5\u7d9a<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u6e29\u6e7f\u5ea6\u53d6\u5f97\u306b\u4f7f\u7528\u3059\u308b\u30bb\u30f3\u30b5\u3092\u30e9\u30ba\u30d1\u30a4\u306b\u4e88\u3081\u63a5\u7d9a\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4f7f\u7528\u3057\u305f\u30bb\u30f3\u30b5\u30fc\u306fAM2320\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u306b\u3083\u307f\u304b\u3093\u3066\u3063\u304f\u308d\u3050 | Raspberry Pi\u3067\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3092\u4f5c\u308b(5) -\u6e29\u5ea6\u30fb\u6e7f\u5ea6(\u30bb\u30f3\u30b5)<\/ul>\n<\/li>\n<\/ul>\n<p>Kubernetes\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<br \/>\nkubeadm\u3092\u4f7f\u7528\u3057\u3066\u30af\u30e9\u30b9\u30bf\u3092\u4f5c\u6210\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<br \/>\nRaspberry Pi\u3067\u304a\u3046\u3061Kubernetes\u69cb\u7bc9\u3010\u7269\u7406\u7de8\u3011<br \/>\nRaspberry Pi\u3067\u304a\u3046\u3061Kubernetes\u69cb\u7bc9\u3010\u8ad6\u7406\u7de8\u3011<\/p>\n<h2>\u6784\u6210<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">RX200S6 &#8211; ubuntu server 18.04(Master) on KVM<\/ul>\n<\/li>\n<\/ul>\n<p>CPU: 4Core<br \/>\nRAM: 2GB<br \/>\nDisk: 50GB<\/p>\n<p>RX200S6 &#8211; ubuntu server 18.04(Worker) on KVM \u00d7 3<\/p>\n<p>CPU: 4Core<br \/>\nRAM: 4GB<br \/>\nDisk: 50GB<\/p>\n<p>Raspberry Pi 3 Model B &#8211; raspbian 10.1(Worker) \u00d7 3<\/p>\n<p>CPU: 4Core<br \/>\nRAM: 1GB<br \/>\nDisk: 30GB<\/p>\n<p>\u5728\u51c6\u5907\u8fc7\u7a0b\u4e2d\u5df2\u7ecf\u63d0\u5230\uff0c\u524d\u63d0\u662f\u4f7f\u7528Kubeadm\u5b8c\u6210\u4e86Kubernetes\u7684\u5b89\u88c5\u8bbe\u7f6e\u3002<br \/>\n\u6211\u4eec\u4f7f\u7528Flannel\u4f5c\u4e3aCNI\u3002<\/p>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubectl get nodes\r\nNAME                  STATUS   ROLES    AGE   VERSION\r\nkubernetes-master     Ready    master   20d   v1.15.3\r\nkubernetes-worker-1   Ready    worker   20d   v1.15.3\r\nkubernetes-worker-2   Ready    worker   20d   v1.15.3\r\nkubernetes-worker-3   Ready    worker   20d   v1.15.3\r\nkubernetes-worker-4   Ready    worker   20d   v1.15.3\r\nkubernetes-worker-5   Ready    worker   20d   v1.15.3\r\nkubernetes-worker-6   Ready    worker   20d   v1.15.3\r\n<\/code><\/pre>\n<h3>\u5e08\u5085<\/h3>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubeadm version\r\nkubeadm version: &amp;version.Info<span class=\"o\">{<\/span>Major:<span class=\"s2\">\"1\"<\/span>, Minor:<span class=\"s2\">\"15\"<\/span>, GitVersion:<span class=\"s2\">\"v1.15.3\"<\/span>, GitCommit:<span class=\"s2\">\"2d3c76f9091b6bec110a5e63777c332469e0cba2\"<\/span>, GitTreeState:<span class=\"s2\">\"clean\"<\/span>, BuildDate:<span class=\"s2\">\"2019-08-19T11:11:18Z\"<\/span>, GoVersion:<span class=\"s2\">\"go1.12.9\"<\/span>, Compiler:<span class=\"s2\">\"gc\"<\/span>, Platform:<span class=\"s2\">\"linux\/amd64\"<\/span><span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubelet <span class=\"nt\">--version<\/span>\r\nKubernetes v1.15.3\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubectl version\r\nClient Version: version.Info<span class=\"o\">{<\/span>Major:<span class=\"s2\">\"1\"<\/span>, Minor:<span class=\"s2\">\"15\"<\/span>, GitVersion:<span class=\"s2\">\"v1.15.3\"<\/span>, GitCommit:<span class=\"s2\">\"2d3c76f9091b6bec110a5e63777c332469e0cba2\"<\/span>, GitTreeState:<span class=\"s2\">\"clean\"<\/span>, BuildDate:<span class=\"s2\">\"2019-08-19T11:13:54Z\"<\/span>, GoVersion:<span class=\"s2\">\"go1.12.9\"<\/span>, Compiler:<span class=\"s2\">\"gc\"<\/span>, Platform:<span class=\"s2\">\"linux\/amd64\"<\/span><span class=\"o\">}<\/span>\r\nServer Version: version.Info<span class=\"o\">{<\/span>Major:<span class=\"s2\">\"1\"<\/span>, Minor:<span class=\"s2\">\"15\"<\/span>, GitVersion:<span class=\"s2\">\"v1.15.4\"<\/span>, GitCommit:<span class=\"s2\">\"67d2fcf276fcd9cf743ad4be9a9ef5828adc082f\"<\/span>, GitTreeState:<span class=\"s2\">\"clean\"<\/span>, BuildDate:<span class=\"s2\">\"2019-09-18T14:41:55Z\"<\/span>, GoVersion:<span class=\"s2\">\"go1.12.9\"<\/span>, Compiler:<span class=\"s2\">\"gc\"<\/span>, Platform:<span class=\"s2\">\"linux\/amd64\"<\/span><span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>docker version\r\nClient:\r\n Version:           18.09.9\r\n API version:       1.39\r\n Go version:        go1.11.13\r\n Git commit:        039a7df9ba\r\n Built:             Wed Sep  4 16:57:28 2019\r\n OS\/Arch:           linux\/amd64\r\n Experimental:      <span class=\"nb\">false\r\n\r\n<\/span>Server: Docker Engine - Community\r\n Engine:\r\n  Version:          18.09.9\r\n  API version:      1.39 <span class=\"o\">(<\/span>minimum version 1.12<span class=\"o\">)<\/span>\r\n  Go version:       go1.11.13\r\n  Git commit:       039a7df\r\n  Built:            Wed Sep  4 16:19:38 2019\r\n  OS\/Arch:          linux\/amd64\r\n  Experimental:     <span class=\"nb\">false<\/span>\r\n<\/code><\/pre>\n<h3>Worker<\/h3>\n<h4>Kubernetes\u5de5\u4f5c\u8282\u70b9-[1~3]<\/h4>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubeadm version\r\nkubeadm version: &amp;version.Info<span class=\"o\">{<\/span>Major:<span class=\"s2\">\"1\"<\/span>, Minor:<span class=\"s2\">\"15\"<\/span>, GitVersion:<span class=\"s2\">\"v1.15.3\"<\/span>, GitCommit:<span class=\"s2\">\"2d3c76f9091b6bec110a5e63777c332469e0cba2\"<\/span>, GitTreeState:<span class=\"s2\">\"clean\"<\/span>, BuildDate:<span class=\"s2\">\"2019-08-19T11:11:18Z\"<\/span>, GoVersion:<span class=\"s2\">\"go1.12.9\"<\/span>, Compiler:<span class=\"s2\">\"gc\"<\/span>, Platform:<span class=\"s2\">\"linux\/amd64\"<\/span><span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>kubelet <span class=\"nt\">--version<\/span>\r\nKubernetes v1.15.3\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~<span class=\"nv\">$ <\/span>docker version\r\nClient:\r\n Version:           18.09.9\r\n API version:       1.39\r\n Go version:        go1.11.13\r\n Git commit:        039a7df9ba\r\n Built:             Wed Sep  4 16:57:28 2019\r\n OS\/Arch:           linux\/amd64\r\n Experimental:      <span class=\"nb\">false\r\n\r\n<\/span>Server: Docker Engine - Community\r\n Engine:\r\n  Version:          18.09.9\r\n  API version:      1.39 <span class=\"o\">(<\/span>minimum version 1.12<span class=\"o\">)<\/span>\r\n  Go version:       go1.11.13\r\n  Git commit:       039a7df\r\n  Built:            Wed Sep  4 16:19:38 2019\r\n  OS\/Arch:          linux\/amd64\r\n  Experimental:     <span class=\"nb\">false<\/span>\r\n<\/code><\/pre>\n<h4>Kubernetes \u5de5\u4f5c\u8282\u70b9-[4~6]<\/h4>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubeadm version\r\nkubeadm version: &amp;version.Info<span class=\"o\">{<\/span>Major:<span class=\"s2\">\"1\"<\/span>, Minor:<span class=\"s2\">\"15\"<\/span>, GitVersion:<span class=\"s2\">\"v1.15.3\"<\/span>, GitCommit:<span class=\"s2\">\"2d3c76f9091b6bec110a5e63777c332469e0cba2\"<\/span>, GitTreeState:<span class=\"s2\">\"clean\"<\/span>, BuildDate:<span class=\"s2\">\"2019-08-19T11:11:18Z\"<\/span>, GoVersion:<span class=\"s2\">\"go1.12.9\"<\/span>, Compiler:<span class=\"s2\">\"gc\"<\/span>, Platform:<span class=\"s2\">\"linux\/arm\"<\/span><span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubelet <span class=\"nt\">--version<\/span>\r\nKubernetes v1.15.3\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>docker version\r\nClient:\r\n Version:           18.09.9\r\n API version:       1.39\r\n Go version:        go1.11.13\r\n Git commit:        039a7df\r\n Built:             Wed Sep  4 17:02:31 2019\r\n OS\/Arch:           linux\/arm\r\n Experimental:      <span class=\"nb\">false\r\n\r\n<\/span>Server: Docker Engine - Community\r\n Engine:\r\n  Version:          18.09.9\r\n  API version:      1.39 <span class=\"o\">(<\/span>minimum version 1.12<span class=\"o\">)<\/span>\r\n  Go version:       go1.11.13\r\n  Git commit:       039a7df\r\n  Built:            Wed Sep  4 16:21:03 2019\r\n  OS\/Arch:          linux\/arm\r\n  Experimental:     <span class=\"nb\">false<\/span>\r\n<\/code><\/pre>\n<h2>\u521b\u5efaNamespace<\/h2>\n<p>\u6211\u5011\u5c07\u5275\u5efa\u4e00\u500b\u7528\u65bc\u5c55\u958b\u76e3\u8996\u8cc7\u6e90\u7684\u547d\u540d\u7a7a\u9593\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Namespace<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> namespace.yml\r\n<\/code><\/pre>\n<h2>\u96c6\u7fa4\u89d2\u8272\uff0c\u96c6\u7fa4\u89d2\u8272\u7ed1\u5b9a<\/h2>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u521b\u5efaClusterRole\u548cClusterRoleBinding\uff0c\u5e76\u5c06\u5176\u5e94\u7528\u4e8e\u5728\u521b\u5efa\u540d\u4e3a&#8221;monitoring&#8221;\u7684Namespace\u65f6\u4e3a&#8221;default&#8221;\u7684Service Account\uff0c\u4ee5\u4fbf\u5bf9\u96c6\u7fa4\u8d44\u6e90\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRole<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">rules<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span><span class=\"pi\">]<\/span>\r\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nodes<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nodes\/proxy<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">services<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">endpoints<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">pods<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">list\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">watch\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">extensions<\/span>\r\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">ingresses<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">list\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">watch\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">nonResourceURLs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\/metrics\"<\/span><span class=\"pi\">]<\/span>\r\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">]<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRoleBinding<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">roleRef<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">apiGroup<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io<\/span>\r\n  <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRole<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n<span class=\"na\">subjects<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"pi\">-<\/span> <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">default<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> cluster-role.yml\r\n<\/code><\/pre>\n<h2>\u666e\u7f57\u7c73\u4fee\u65af\u7684\u90e8\u7f72<\/h2>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">extensions\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom-config<\/span>\r\n          <span class=\"na\">configMap<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-config<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom\/prometheus:latest<\/span>\r\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">IfNotPresent<\/span>\r\n        <span class=\"na\">volumeMounts<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom-config<\/span>\r\n            <span class=\"na\">mountPath<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/etc\/prometheus<\/span>\r\n        <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9090<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528ConfigMap\u914d\u7f6e\u9002\u7528\u4e8eKubernetes\u7684\u670d\u52a1\u53d1\u73b0\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ConfigMap<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-config<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-config<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">prometheus.yml<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|-<\/span>\r\n    <span class=\"s\"># my global config<\/span>\r\n    <span class=\"s\">global:<\/span>\r\n      <span class=\"s\">scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.<\/span>\r\n      <span class=\"s\">evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.<\/span>\r\n      <span class=\"s\"># scrape_timeout is set to the global default (10s).<\/span>\r\n\r\n    <span class=\"s\"># Alertmanager configuration<\/span>\r\n    <span class=\"s\">alerting:<\/span>\r\n      <span class=\"s\">alertmanagers:<\/span>\r\n      <span class=\"s\">- static_configs:<\/span>\r\n        <span class=\"s\">- targets:<\/span>\r\n          <span class=\"s\"># - alertmanager:9093<\/span>\r\n\r\n    <span class=\"s\"># Load rules once and periodically evaluate them according to the global 'evaluation_interval'.<\/span>\r\n    <span class=\"s\">rule_files:<\/span>\r\n      <span class=\"s\"># - \"first_rules.yml\"<\/span>\r\n      <span class=\"s\"># - \"second_rules.yml\"<\/span>\r\n\r\n    <span class=\"s\"># A scrape configuration containing exactly one endpoint to scrape:<\/span>\r\n    <span class=\"s\"># Here it's Prometheus itself.<\/span>\r\n    <span class=\"s\">scrape_configs:<\/span>\r\n      <span class=\"s\"># The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.<\/span>\r\n      <span class=\"s\">- job_name: 'prometheus'<\/span>\r\n\r\n        <span class=\"s\"># metrics_path defaults to '\/metrics'<\/span>\r\n        <span class=\"s\"># scheme defaults to 'http'.<\/span>\r\n\r\n        <span class=\"s\">static_configs:<\/span>\r\n        <span class=\"s\">- targets: ['localhost:9090']<\/span>\r\n\r\n      <span class=\"s\">- job_name: kubernetes-apiservers<\/span>\r\n        <span class=\"s\">kubernetes_sd_configs:<\/span>\r\n        <span class=\"s\">- role: endpoints<\/span>\r\n        <span class=\"s\">relabel_configs:<\/span>\r\n        <span class=\"s\">- action: keep<\/span>\r\n          <span class=\"s\">regex: default;kubernetes;https<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_namespace<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_name<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_endpoint_port_name<\/span>\r\n        <span class=\"s\">scheme: https<\/span>\r\n        <span class=\"s\">tls_config:<\/span>\r\n          <span class=\"s\">ca_file: \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/ca.crt<\/span>\r\n          <span class=\"s\">insecure_skip_verify: true<\/span>\r\n        <span class=\"s\">bearer_token_file: \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/token<\/span>\r\n\r\n      <span class=\"s\">- job_name: kubernetes-service-endpoints<\/span>\r\n        <span class=\"s\">kubernetes_sd_configs:<\/span>\r\n        <span class=\"s\">- role: endpoints<\/span>\r\n        <span class=\"s\">relabel_configs:<\/span>\r\n        <span class=\"s\">- action: keep<\/span>\r\n          <span class=\"s\">regex: true<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_annotation_prometheus_io_scrape<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">regex: (https?)<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_annotation_prometheus_io_scheme<\/span>\r\n          <span class=\"s\">target_label: __scheme__<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">regex: (.+)<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_annotation_prometheus_io_path<\/span>\r\n          <span class=\"s\">target_label: __metrics_path__<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">regex: ([^:]+)(?::\\d+)?;(\\d+)<\/span>\r\n          <span class=\"s\">replacement: $1:$2<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __address__<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_annotation_prometheus_io_port<\/span>\r\n          <span class=\"s\">target_label: __address__<\/span>\r\n        <span class=\"s\">- action: labelmap<\/span>\r\n          <span class=\"s\">regex: __meta_kubernetes_service_label_(.+)<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_namespace<\/span>\r\n          <span class=\"s\">target_label: kubernetes_namespace<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_name<\/span>\r\n          <span class=\"s\">target_label: kubernetes_name<\/span>\r\n\r\n      <span class=\"s\">- job_name: kubernetes-services<\/span>\r\n        <span class=\"s\">kubernetes_sd_configs:<\/span>\r\n        <span class=\"s\">- role: service<\/span>\r\n        <span class=\"s\">metrics_path: \/probe<\/span>\r\n        <span class=\"s\">params:<\/span>\r\n          <span class=\"s\">module:<\/span>\r\n          <span class=\"s\">- http_2xx<\/span>\r\n        <span class=\"s\">relabel_configs:<\/span>\r\n        <span class=\"s\">- action: keep<\/span>\r\n          <span class=\"s\">regex: true<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_annotation_prometheus_io_probe<\/span>\r\n        <span class=\"s\">- source_labels:<\/span>\r\n          <span class=\"s\">- __address__<\/span>\r\n          <span class=\"s\">target_label: __param_target<\/span>\r\n        <span class=\"s\">- replacement: blackbox<\/span>\r\n          <span class=\"s\">target_label: __address__<\/span>\r\n        <span class=\"s\">- source_labels:<\/span>\r\n          <span class=\"s\">- __param_target<\/span>\r\n          <span class=\"s\">target_label: instance<\/span>\r\n        <span class=\"s\">- action: labelmap<\/span>\r\n          <span class=\"s\">regex: __meta_kubernetes_service_label_(.+)<\/span>\r\n        <span class=\"s\">- source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_namespace<\/span>\r\n          <span class=\"s\">target_label: kubernetes_namespace<\/span>\r\n        <span class=\"s\">- source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_service_name<\/span>\r\n          <span class=\"s\">target_label: kubernetes_name<\/span>\r\n\r\n      <span class=\"s\">- job_name: kubernetes-pods<\/span>\r\n        <span class=\"s\">kubernetes_sd_configs:<\/span>\r\n        <span class=\"s\">- role: pod<\/span>\r\n        <span class=\"s\">relabel_configs:<\/span>\r\n        <span class=\"s\">- action: keep<\/span>\r\n          <span class=\"s\">regex: true<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_pod_annotation_prometheus_io_scrape<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">regex: (.+)<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_pod_annotation_prometheus_io_path<\/span>\r\n          <span class=\"s\">target_label: __metrics_path__<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">regex: ([^:]+)(?::\\d+)?;(\\d+)<\/span>\r\n          <span class=\"s\">replacement: $1:$2<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __address__<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_pod_annotation_prometheus_io_port<\/span>\r\n          <span class=\"s\">target_label: __address__<\/span>\r\n        <span class=\"s\">- action: labelmap<\/span>\r\n          <span class=\"s\">regex: __meta_kubernetes_pod_label_(.+)<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_namespace<\/span>\r\n          <span class=\"s\">target_label: kubernetes_namespace<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_pod_name<\/span>\r\n          <span class=\"s\">target_label: kubernetes_pod_name<\/span>\r\n        <span class=\"s\">- action: replace<\/span>\r\n          <span class=\"s\">source_labels:<\/span>\r\n          <span class=\"s\">- __meta_kubernetes_pod_node_name<\/span>\r\n          <span class=\"s\">target_label: kubernetes_pod_node_name<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-service<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prometheus-server<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">NodePort<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9090<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9090<\/span>\r\n    <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">30090<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> prometheus-configmap.yml\r\n~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> prometheus-deployment.yml\r\n~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> prometheus-service.yml\r\n<\/code><\/pre>\n<h2>Grafana\u7684\u90e8\u7f72\u3002<\/h2>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">extensions\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-deployment<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana<\/span>\r\n          <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana\/grafana:latest<\/span>\r\n          <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">IfNotPresent<\/span>\r\n          <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana-service<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">NodePort<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n      <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n      <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">30100<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> grafana-deployment.yml\r\n~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> grafana-service.yml\r\n<\/code><\/pre>\n<p>\u79c1\u306fCluster\u306e\u76e3\u8996\u3082\u884c\u3044\u305f\u304f\u3001\u4e0b\u8a18\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<br \/>\nPrometheus+Grafana\u3067Kubernetes\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u76e3\u8996\u3059\u308b ~Binary\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8d77\u52d5+yaml\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u69cb\u7bc9<\/p>\n<h2>\u81ea\u5df1\u5f00\u53d1\u7684Exporter\u7684\u90e8\u7f72<\/h2>\n<p>\u6211\u5011\u5c07\u90e8\u7f72\u4e00\u500b\u7531AM2320\u63d0\u4f9b\u6eab\u5ea6\u548c\u6fd5\u5ea6\u6578\u64da\u7684\u81ea\u5b9a\u7fa9Exporter\uff08am2320_exporter\uff09\u3002\u6211\u5011\u5c07\u5728\u9023\u63a5AM2320\u611f\u6e2c\u5668\u7684\u7bc0\u9ede\u4e0a\u9010\u500b\u914d\u7f6e\uff0c\u540c\u6642\u5e0c\u671b\u5c07kubernetes-worker-[1~3]\u5f9e\u8abf\u5ea6\u4e2d\u6392\u9664\uff0c\u56e0\u6b64\u4f7f\u7528\u7bc0\u9ede\u89aa\u548c\u5ea6\uff08nodeAffinity\uff09\u4f7f\u5f97Pod\u53ea\u5728kubernetes-worker-[4~6]\u4e0a\u5275\u5efa\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">extensions\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">DaemonSet<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">am2320-exporter<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">monitoring<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">am2320-exporter<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">am2320-exporter<\/span>\r\n      <span class=\"na\">annotations<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">prometheus.io\/scrape<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n        <span class=\"s\">prometheus.io\/port<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">9430'<\/span>\r\n        <span class=\"s\">prometheus.io\/path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/metrics<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">am2320-exporter<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">yudaishimanaka\/am2320-exporter-armv7l:latest<\/span>\r\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">IfNotPresent<\/span>\r\n        <span class=\"na\">securityContext<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n        <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">9430<\/span>\r\n      <span class=\"na\">hostNetwork<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n      <span class=\"na\">hostPID<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n      <span class=\"na\">affinity<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">nodeAffinity<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">requiredDuringSchedulingIgnoredDuringExecution<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"na\">nodeSelectorTerms<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">matchExpressions<\/span><span class=\"pi\">:<\/span>\r\n              <span class=\"pi\">-<\/span> <span class=\"na\">key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kubernetes.io\/hostname<\/span>\r\n                <span class=\"na\">operator<\/span><span class=\"pi\">:<\/span> <span class=\"s\">In<\/span>\r\n                <span class=\"na\">values<\/span><span class=\"pi\">:<\/span>\r\n                  <span class=\"pi\">-<\/span> <span class=\"s\">kubernetes-worker-4<\/span>\r\n                  <span class=\"pi\">-<\/span> <span class=\"s\">kubernetes-worker-5<\/span>\r\n                  <span class=\"pi\">-<\/span> <span class=\"s\">kubernetes-worker-6<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>~ <span class=\"nv\">$ <\/span>kubectl create <span class=\"nt\">-f<\/span> tmp-and-hum-daemonset.yml\r\n<\/code><\/pre>\n<h2>Grafana\u4eea\u8868\u76d8\u7684\u914d\u7f6e\u8bbe\u7f6e<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/45-1.png\" alt=\"Selection_044.png\" \/><\/div>\n<p>Grafana\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3059\u3002<br \/>\nhttp:\/\/:30100\/login<br \/>\n\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e6\u30fc\u30b6\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306fadmin,admin\u3067\u3059\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/47-0.png\" alt=\"Selection_047.png\" \/><\/div>\n<h2>\u521b\u5efa\u56fe\u8868<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/49-2.png\" alt=\"Selection_051.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/50-0.png\" alt=\"Selection_048.png\" \/><\/div>\n<h2>\u6700\u7ec8<\/h2>\n<p>\u5e0c\u671b\u80fd\u591f\u4e3a\u60f3\u8981\u5c1d\u8bd5\u7c7b\u4f3c\u4e8b\u60c5\u7684\u4eba\u63d0\u4f9b\u5e2e\u52a9\uff0c\u8fd9\u4e2a\u8d77\u70b9\u662fkubeedge\/examples\u4e2d\u7684L\u95ea\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u5728Kubernetes\u4e0a\u90e8\u7f72\u4e86Prometheus\u3001Grafana\u548c\u81ea\u5b9a\u4e49Exporter\uff0c\u5e76\u5bf9\u6211\u5bb6\uff083\u4e2a\u623f [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35702","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728kubernetes\u4e0a\u4f7f\u7528prometheus-grafana-\u81ea\u5236\u7684exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\" \/>\n<meta property=\"og:description\" content=\"\u6211\u5728Kubernetes\u4e0a\u90e8\u7f72\u4e86Prometheus\u3001Grafana\u548c\u81ea\u5b9a\u4e49Exporter\uff0c\u5e76\u5bf9\u6211\u5bb6\uff083\u4e2a\u623f [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728kubernetes\u4e0a\u4f7f\u7528prometheus-grafana-\u81ea\u5236\u7684exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-07T23:52:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T21:57:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/45-1.png\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/\",\"name\":\"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-12-07T23:52:59+00:00\",\"dateModified\":\"2024-04-28T21:57:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728kubernetes\u4e0a\u4f7f\u7528prometheus-grafana-\u81ea\u5236\u7684exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7","og_description":"\u6211\u5728Kubernetes\u4e0a\u90e8\u7f72\u4e86Prometheus\u3001Grafana\u548c\u81ea\u5b9a\u4e49Exporter\uff0c\u5e76\u5bf9\u6211\u5bb6\uff083\u4e2a\u623f [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728kubernetes\u4e0a\u4f7f\u7528prometheus-grafana-\u81ea\u5236\u7684exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-07T23:52:59+00:00","article_modified_time":"2024-04-28T21:57:21+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24e037434c4406c309a2\/45-1.png"}],"author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/","name":"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-12-07T23:52:59+00:00","dateModified":"2024-04-28T21:57:21+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728Kubernetes\u4e0a\u4f7f\u7528Prometheus + Grafana + \u81ea\u5236\u7684Exporter\u8fdb\u884c\u5ba4\u5185\u6e29\u6e7f\u5ea6\u76d1\u63a7"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8kubernetes%e4%b8%8a%e4%bd%bf%e7%94%a8prometheus-grafana-%e8%87%aa%e5%88%b6%e7%9a%84exporter%e8%bf%9b%e8%a1%8c%e5%ae%a4%e5%86%85%e6%b8%a9%e6%b9%bf%e5%ba%a6%e7%9b%91%e6%8e%a7%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35702"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35702\/revisions"}],"predecessor-version":[{"id":83461,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35702\/revisions\/83461"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}