美文网首页
容器化prometheus

容器化prometheus

作者: 慕知 | 来源:发表于2021-04-23 21:10 被阅读0次

容器化prometheus

# 下载的0.5版本
[root@\ k8s-m-01/opt]# git clone -b release-0.5 --single-branch  https://github.com/prometheus-operator/kube-prometheus.git

[root@\ k8s-m-01/opt]# cd kube-prometheus/
[root@\ k8s-m-01/opt/kube-prometheus]# ll
-rwxr-xr-x. 1 root root   610 Apr 23 16:24 build.sh
-rw-r--r--. 1 root root  3039 Apr 23 16:24 code-of-conduct.md
-rw-r--r--. 1 root root  1422 Apr 23 16:24 DCO
drwxr-xr-x. 2 root root  4096 Apr 23 16:24 docs
-rw-r--r--. 1 root root  1623 Apr 23 16:24 example.jsonnet
drwxr-xr-x. 6 root root  4096 Apr 23 16:24 examples
drwxr-xr-x. 4 root root    54 Apr 23 16:24 experimental
-rw-r--r--. 1 root root  1290 Apr 23 16:24 go.mod
-rw-r--r--. 1 root root 16389 Apr 23 16:24 go.sum
drwxr-xr-x. 3 root root    68 Apr 23 16:24 hack
drwxr-xr-x. 3 root root    29 Apr 23 16:24 jsonnet
-rw-r--r--. 1 root root   206 Apr 23 16:24 jsonnetfile.json
-rw-r--r--. 1 root root  3811 Apr 23 16:24 jsonnetfile.lock.json
-rw-r--r--. 1 root root  3458 Apr 23 16:24 kustomization.yaml
-rw-r--r--. 1 root root 11325 Apr 23 16:24 LICENSE
-rw-r--r--. 1 root root  1395 Apr 23 16:24 Makefile
drwxr-xr-x. 3 root root  4096 Apr 23 16:24 manifests
-rw-r--r--. 1 root root   126 Apr 23 16:24 NOTICE
-rw-r--r--. 1 root root   178 Apr 23 16:24 OWNERS
-rw-r--r--. 1 root root 32795 Apr 23 16:24 README.md
drwxr-xr-x. 2 root root   104 Apr 23 16:24 scripts
-rw-r--r--. 1 root root   928 Apr 23 16:24 sync-to-internal-registry.jsonnet
drwxr-xr-x. 3 root root    17 Apr 23 16:24 tests
-rwxr-xr-x. 1 root root   808 Apr 23 16:24 test.sh

[root@\ k8s-m-01/opt/kube-prometheus]# cd manifests/
[root@\ k8s-m-01/opt/kube-prometheus/manifests]# cd setup/
[root@\ k8s-m-01/opt/kube-prometheus/manifests/setup]# ll
-rw-r--r--. 1 root root     60 Apr 23 16:24 0namespace-namespace.yaml
-rw-r--r--. 1 root root 268343 Apr 23 16:24 prometheus-operator-0alertmanagerCustomResourceDefinition.yaml
-rw-r--r--. 1 root root  12635 Apr 23 16:24 prometheus-operator-0podmonitorCustomResourceDefinition.yaml
-rw-r--r--. 1 root root 348686 Apr 23 16:24 prometheus-operator-0prometheusCustomResourceDefinition.yaml
-rw-r--r--. 1 root root   3605 Apr 23 16:24 prometheus-operator-0prometheusruleCustomResourceDefinition.yaml
-rw-r--r--. 1 root root  23305 Apr 23 16:24 prometheus-operator-0servicemonitorCustomResourceDefinition.yaml
-rw-r--r--. 1 root root 279736 Apr 23 16:24 prometheus-operator-0thanosrulerCustomResourceDefinition.yaml
-rw-r--r--. 1 root root    425 Apr 23 16:24 prometheus-operator-clusterRoleBinding.yaml
-rw-r--r--. 1 root root   1665 Apr 23 16:24 prometheus-operator-clusterRole.yaml
-rw-r--r--. 1 root root   1943 Apr 23 16:24 prometheus-operator-deployment.yaml
-rw-r--r--. 1 root root    239 Apr 23 16:24 prometheus-operator-serviceAccount.yaml
-rw-r--r--. 1 root root    422 Apr 23 16:24 prometheus-operator-service.yaml


# 这里创建了个monitoring 的命名空间
[root@\ k8s-m-01/opt/kube-prometheus/manifests/setup]# kubectl apply -f ./
namespace/monitoring created
sourceDefinition
customresour
cedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com created
clusterrole.rbac.authorization.k8s.io/prometheus-operator created
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator created
deployment.apps/prometheus-operator created
service/prometheus-operator created
serviceaccount/prometheus-operator created


# 查看启动了pod(相当于premotheus的管理pod)
[root@\ k8s-m-01/opt/kube-prometheus/manifests/setup]# kubectl get pods -n monitoring 
NAME                                   READY   STATUS    RESTARTS   AGE
prometheus-operator-848d669f6d-rmhjs   2/2     Running   0          54s


# 返回到上一层目录,执行当前文件的yaml
[root@\ k8s-m-01/opt/kube-prometheus/manifests/setup]# cd ..
[root@\ k8s-m-01/opt/kube-prometheus/manifests]# kubectl apply -f .


# 查看生成pod
[root@\ k8s-m-01/opt/kube-prometheus/manifests]# kubectl get pods -n monitoring 
NAME                                   READY   STATUS    RESTARTS   AGE
alertmanager-main-0                    2/2     Running   0          95s
alertmanager-main-1                    2/2     Running   0          95s
alertmanager-main-2                    2/2     Running   0          95s
grafana-5d9d5f67c4-74vtb               1/1     Running   0          93s
kube-state-metrics-7fddf8779f-d9d7h    3/3     Running   0          93s
node-exporter-f9wnz                    2/2     Running   0          92s
node-exporter-hjxgm                    2/2     Running   0          92s
node-exporter-p5j48                    2/2     Running   0          92s
prometheus-adapter-cb548cdbf-fwffw     1/1     Running   0          93s
prometheus-k8s-0                       2/3     Running   1          91s
prometheus-k8s-1                       2/3     Running   1          91s
prometheus-operator-848d669f6d-rmhjs   2/2     Running   0          4m5s



# 查看service,需要建立ingress(不建立ingress的话,就修改service的类型使用ip+端口)
[root@\ k8s-m-01/opt/kube-prometheus/manifests]# kubectl get svc -n monitoring 
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-main       ClusterIP   10.96.131.163    <none>        9093/TCP                     56s
alertmanager-operated   ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP   57s
grafana                 ClusterIP   10.101.230.111   <none>        3000/TCP                     55s
kube-state-metrics      ClusterIP   None             <none>        8443/TCP,9443/TCP            55s
node-exporter           ClusterIP   None             <none>        9100/TCP                     55s
prometheus-adapter      ClusterIP   10.108.147.237   <none>        443/TCP                      54s
prometheus-k8s          ClusterIP   10.105.207.58    <none>        9090/TCP                     53s
prometheus-operated     ClusterIP   None             <none>        9090/TCP                     53s
prometheus-operator     ClusterIP   None             <none>        8443/TCP                     3m27s


# 创建ingress
[root@\ k8s-m-01/opt/kube-prometheus/manifests]# vim prem_ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: prometheus-k8s
  namespace: monitoring
spec:
  rules:
    - host: "prometheus.k8s.com"
      http:
        paths:
          - backend:
              serviceName: prometheus-k8s
              servicePort: 9090
            path: /
---
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: grafana
  namespace: monitoring
spec:
  rules:
    - host: "grafana.k8s.com"
      http:
        paths:
          - backend:
              serviceName: grafana
              servicePort: 3000
            path: /


# 执行
[root@\ k8s-m-01/opt/kube-prometheus/manifests]#  kubectl apply -f prem_ingress.yaml



# 查看生成的ingress域名
[root@\ k8s-m-01~/yaml]# kubectl get ingress -n monitoring 
NAME             CLASS    HOSTS                ADDRESS   PORTS   AGE
grafana          <none>   grafana.k8s.com                80      24s
prometheus-k8s   <none>   prometheus.k8s.com             80      24s



# 域名访问直接使用端口31542
[root@\ k8s-m-01~/yaml]# kubectl get svc -n ingress-nginx 
NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.99.245.222   <none>        80:31542/TCP,443:31331/TCP   56s
ingress-nginx-controller-admission   ClusterIP   10.99.198.158   <none>        443/TCP                      57s



# 如果使用ip+端口,修改以下的service的类型
[root@\ k8s-m-01~]# kubectl edit svc -n monitoring grafana 
  type: NodePort


[root@\ k8s-m-01~]# kubectl edit svc -n monitoring prometheus-k8s 
  type: NodePort

# 查看service的端口,便可以ip + 端口访问
[root@\ k8s-m-01~/yaml]# kubectl get svc -n monitoring 
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-main       ClusterIP   10.109.64.152    <none>        9093/TCP                     14m
alertmanager-operated   ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP   14m
grafana                 NodePort    10.110.108.229   <none>        3000:32286/TCP               14m
kube-state-metrics      ClusterIP   None             <none>        8443/TCP,9443/TCP            14m
node-exporter           ClusterIP   None             <none>        9100/TCP                     14m
prometheus-adapter      ClusterIP   10.103.118.236   <none>        443/TCP                      14m
prometheus-k8s          NodePort    10.97.204.205    <none>        9090:31374/TCP               14m
prometheus-operated     ClusterIP   None             <none>        9090/TCP                     14m
prometheus-operator     ClusterIP   None             <none>        8443/TCP                     15m





#  这里查询的结果输入到grafana的url里(图下)
[root@\ k8s-m-01~/yaml]# kubectl run tests --rm -it --image=busybox:1.28.3
nslookup: can't resolve 'kubernetess'
/ # nslookup kubernetess\

Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      prometheus-k8s.monitoring
Address 1: 10.97.204.205 prometheus-k8s.monitoring.svc.cluster.local



image.png image.png image.png

相关文章

网友评论

      本文标题:容器化prometheus

      本文链接:https://www.haomeiwen.com/subject/pzgcrltx.html