zoukankan      html  css  js  c++  java
  • 生产环境k8s中使用helm部署prometheus+grafana监控k8s集群中相关node和pod

    一、安装客户端helm

    1.这里介绍两种方式安装helm;

    a.通过过压缩包进行安装

    下载 Helm :

    https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz

    解压 Helm
    tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
    复制客户端执行文件到 bin 目录下
    cp linux-amd64/helm /usr/local/bin/

    b.安装方式二(脚本安装)

    下载执行脚本:

    curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh

    修改脚本权限

    chmod 700 get_helm.sh

    安装:

    ./get_helm.sh

    注意:如果你k8s集群里面已经安装了helm可以忽略以上步骤

    2、添加新的仓库地址

    helm repo add stable https://kubernetes-charts.storage.googleapis.com

    查看本地已添加的存储库

    helm search repo stable

    二、使用helm部署prometheus+grafana

    拉取prometheus镜像:helm pull stable/prometheus-operator

    tar zxvf prometheus-operator-8.3.2.tgz
    cd prometheus-operator/
    安装 CRD
    kubectl apply -f crds/

    创建monitoring名称空间

    kubectl create namespace monitoring

    修改相关配置文件暴露grafana端口对外提供访问:

    cd /root/k8s/prometheus-operator/charts/grafana
    vim values.yaml 找到以下内容添加:
    service:
    type: NodePort #需要添加的
    port: 80
    targetPort: 3000
    nodePort: 30033 需要填的的端口

    修改Prometheus监听集群Etcd端口

    cd /root/k8s/prometheus-operator/charts/grafana
    vim values.yaml 找到以下内容添加:
    service:
    type: NodePort #需要添加的
    port: 80
    targetPort: 3000
    nodePort: 30033 需要填的的端口


    cd /root/k8s/prometheus-operator
    vim values.yaml
    #修改Prometheus监听集群Etcd端口,文件的741行
    ...
    service:
    port: 2381 #默认为2379,修改为2381
    targetPort: 2381 #默认为2379,修改为2381
    # selector:
    # component: etd

    ....

    修改配置文件暴露Prometheus对外访问端口

    #Prometheus对外端口默认是30090,文件的1226行
    #网络类型默认是clusterIP,文件的1234行

    ...
    nodePort: 30090 #默认端口
    ## Loadbalancer IP
    ## Only use if service.type is "loadbalancer"
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    ## Service type
    ##
    type: NodePort #默认为clusterIP,修改为NodePort
    ...

    修改etcd.yamlmetrics-urls的监听地址:
    vim /etc/kubernetes/manifests/etcd.yaml
    改为: - --listen-metrics-urls=http://0.0.0.0:2381

    修改完成后重启更新下etcd的pod:

    kubectl apply -f /etc/kubernetes/manifests/etcd.yaml

    安装Prometheus-Operator
    helm install prometheus --namespace=monitoring ./ --set prometheusOperator.createCustomResource=false

    修改配置后更新:
    helm upgrade prometheus ./ -nmonitoring
    helm upgrade prometheus ./ -nmonitoring
    #Grafana默认密码是:prom-operator
    #可以在values.yaml文件里修改:adminPassword: prom-operator
    查看历史更新记录
    helm history prometheus -nmonitoring

    搭建后如果出现monitoring/prometheus-prometheus-oper-kube-proxy/0 (0/3 up) 无法监控到的问题,需要更改kube-proxy默认的configmap

    #查看kube-system名称空间下的configmap
    kubectl get cm -nkube-system
    NAME DATA AGE
    coredns 1 22d
    extension-apiserver-authentication 6 22d
    kube-flannel-cfg 2 22d
    kube-proxy 2 22d
    kubeadm-config 2 22d
    kubelet-config-1.17 1 22d
    #修改configmap
    kubectl edit cm/kube-proxy -nkube-system
    ...
    kind: KubeProxyConfiguration
    metricsBindAddress: "0.0.0.0:10249" #10249是默认的proxy metrics监听端口,可能会发生此配置为空的情况,这时需要手动修改为0.0.0.0:10249
    mode: ""
    nodePortAddresses: null
    ...

    部署完成后使用以下命令查看相关pod启动情况:

    [root@k8s-master prometheus-operator]# kubectl get pod -A | grep monitoring

    查看grafana以及prometheus的service启动情况:

    kubectl get svc -A |grep  monitoring

    注意:这里面没有通过给相关pod设置nodeSelector节点标签使用其调度到固定的node上,所以使用每个节点IP地址加上相关端口号都能进行访问;

     登录http://192.168.111.158:30033 可以查看到相关node/pod等相关监控信息

  • 相关阅读:
    R语言爬虫:CSS方法与XPath方法对比(代码实现)
    R语言爬虫:Rvest包函数介绍(表格)
    R语言爬虫:使用R语言爬取豆瓣电影数据
    R语言学习笔记(二十二):字符串处理中的函数对比(代码实现)
    R语言学习笔记(二十一):字符串处理中的元字符(代码展示)
    history命令详解
    文件服务器:FTP服务器详解
    Linux下的DOS攻击
    Linux-/proc目录简介
    Linux-详解inode节点
  • 原文地址:https://www.cnblogs.com/abner123/p/13155543.html
Copyright © 2011-2022 走看看