• Kubernetes用operator部署prometheus


    Operator 模式

    Operator 是 Kubernetes 的扩展软件,它利用 定制资源 管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制器 方面。

    Operator的场景就是专门给有状态应用而设计的。

    为什么只给有状态应用?

    因为无状态应用简单啊,没有服务间的交互,要再开一家火锅店,跟k8s说一声,开一家一样的就可以了。

    有状态不一样,你开了一家火锅店以后,客户的信息怎么同步,就涉及到与别的火锅店交涉的问题,当然你也可以写个别的程序做这个数据同步的操作。

    但是operator做的事情就是能自动识别到火锅店客户信息的不对称,主动同步,你只用告诉operator我要再开一家连锁火锅店就好了。

    Kubernetes 上的 Operator 

    Kubernetes 为自动化而生。无需任何修改,你即可以从 Kubernetes 核心中获得许多内置的自动化功能。 你可以使用 Kubernetes 自动化部署和运行工作负载, 甚至 可以自动化 Kubernetes 自身。

    Kubernetes 控制器 使你无需修改 Kubernetes 自身的代码,即可以扩展集群的行为。 Operator 是 Kubernetes API 的客户端,充当 定制资源 的控制器

    官网文档:https://kubernetes.io/zh/docs/concepts/extend-kubernetes/operator/

    部署prometheus

    1.1、下载

    git clone -b release-0.7 --single-branch https://github.com/coreos/kube-prometheus.git

    1.2、安装operator

    [root@k8s-master01 ~]# cd /root/kube-prometheus/manifests/setup
    [root@k8s-master01 setup]# kubectl create -f .
    
    # 查看是否Running
    [root@k8s-master01 ~]# kubectl get pod -n monitoring
    NAME                                   READY   STATUS        RESTARTS   AGE
    prometheus-operator-848d669f6d-bz2tc   2/2     Running       0          4m16s

    1.3、安装Prometheus

    [root@k8s-master01 ~]# cd /root/kube-prometheus/manifests
    [root@k8s-master01 manifests]# kubectl create -f .

    1.4、创建ingress

    [root@k8s-master01 manifests]# cat svc-ingress.yal 
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: prom-ingresses
      namespace: monitoring
    spec:
      rules:
      - host: alert.test.com
        http:
          paths:
          - backend:
              serviceName: alertmanager-main
              servicePort: 9093
            path: /
      - host: grafana.test.com
        http:
          paths:
          - backend:
              serviceName: grafana
              servicePort: 3000
            path: /
      - host: prom.test.com
        http:
          paths:
          - backend:
              serviceName: prometheus-k8s
              servicePort: 9090
            path: /
    
    
    
    
    
    [root@k8s-master01 manifests]# kubectl get ingress -n monitoring 
    NAME             CLASS    HOSTS                                           ADDRESS        PORTS   AGE
    prom-ingresses   <none>   alert.test.com,grafana.test.com,prom.test.com   10.96.107.62   80      23h
    

    alert.test.com(报警)

    prom.test.com(普罗米修斯)

    grafana.test.com(图形展示)

    人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
  • 相关阅读:
    JAVA 设计模式 备忘录模式
    JAVA 设计模式 职责链模式
    JAVA 设计模式 中介者模式
    JAVA 设计模式 解释器模式
    JAVA 设计模式 观察者模式
    Linux下/usr/bin/python被删除的后果
    selenium 页面超时后捕获异常也无法继续get(url)使用的问题解决方案
    linux批量更改权限
    linux卸载软件
    安装pymysqlpool并使用(待补充)
  • 原文地址:https://www.cnblogs.com/heian99/p/14552636.html
Copyright © 2020-2023  润新知