09-3.部署 heapster 插件

09-3.部署 heapster 插件

Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。

Heapster 是通过调用 kubelet 的 http API 来获取 cAdvisor 的 metrics 数据的。

由于 kublet 只在 10250 端口接收 https 请求,故需要修改 heapster 的 deployment 配置。同时,需要赋予 kube-system:heapster ServiceAccount 调用 kubelet API 的权限。

下载 heapster 文件

heapster release 页面 下载最新版本的 heapster

wget https://github.com/kubernetes/heapster/archive/v1.5.3.tar.gz
tar -xzvf v1.5.3.tar.gz
mv v1.5.3.tar.gz heapster-1.5.3.tar.gz

官方文件目录: heapster-1.5.3/deploy/kube-config/influxdb

修改配置

$ cd heapster-1.5.3/deploy/kube-config/influxdb
$ cp grafana.yaml{,.orig}
$ diff grafana.yaml.orig grafana.yaml
16c16
<         image: gcr.io/google_containers/heapster-grafana-amd64:v4.4.3
---
>         image: wanghkkk/heapster-grafana-amd64-v4.4.3:v4.4.3
67c67
<   # type: NodePort
---
>   type: NodePort
  • 开启 NodePort;
$ cp heapster.yaml{,.orig}
$ diff heapster.yaml.orig heapster.yaml
23c23
<         image: gcr.io/google_containers/heapster-amd64:v1.5.3
---
>         image: fishchen/heapster-amd64:v1.5.3
27c27
<         - --source=kubernetes:https://kubernetes.default
---
>         - --source=kubernetes:https://kubernetes.default?kubeletHttps=true&kubeletPort=10250
  • 由于 kubelet 只在 10250 监听 https 请求,故添加相关参数;
$ cp influxdb.yaml{,.orig}
$ diff influxdb.yaml.orig influxdb.yaml
16c16
<         image: gcr.io/google_containers/heapster-influxdb-amd64:v1.3.3
---
>         image: fishchen/heapster-influxdb-amd64:v1.3.3

执行所有定义文件

$ pwd
/opt/k8s/heapster-1.5.2/deploy/kube-config/influxdb
$ ls *.yaml
grafana.yaml  heapster.yaml  influxdb.yaml
$ kubectl create -f  .

$ cd ../rbac/
$ pwd
/opt/k8s/heapster-1.5.2/deploy/kube-config/rbac
$ ls
heapster-rbac.yaml
$ cp heapster-rbac.yaml{,.orig}
$ diff heapster-rbac.yaml.orig heapster-rbac.yaml
12a13,26
> ---
> kind: ClusterRoleBinding
> apiVersion: rbac.authorization.k8s.io/v1beta1
> metadata:
>   name: heapster-kubelet-api
> roleRef:
>   apiGroup: rbac.authorization.k8s.io
>   kind: ClusterRole
>   name: system:kubelet-api-admin
> subjects:
> - kind: ServiceAccount
>   name: heapster
>   namespace: kube-system
>

$ kubectl create -f heapster-rbac.yaml
  • 将 serviceAccount kube-system:heapster 与 ClusterRole system:kubelet-api-admin 绑定,授予它调用 kubelet API 的权限;

检查执行结果

$ kubectl get pods -n kube-system | grep -E ‘heapster|monitoring‘
heapster-ddb6c4994-vnnrn                1/1       Running   0          1m
monitoring-grafana-779bd4dd7b-xqkgk     1/1       Running   0          1m
monitoring-influxdb-f75847d48-2lnz6     1/1       Running   0          1m

检查 kubernets dashboard 界面,可以正确显示各 Nodes、Pods 的 CPU、内存、负载等统计数据和图表:

访问 grafana

  1. 通过 kube-apiserver 访问:

    获取 monitoring-grafana 服务 URL:

     $ kubectl cluster-info
     Kubernetes master is running at https://192.168.1.106:6443
     CoreDNS is running at https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy
     Heapster is running at https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/heapster/proxy
     kubernetes-dashboard is running at https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
     monitoring-grafana is running at https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
     monitoring-influxdb is running at https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy
    
     To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump‘.
    

    浏览器访问 URL: https://192.168.1.106:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
    对于 virtuabox 做了端口映射: https://127.0.0.1:8080/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy

  2. 通过 kubectl proxy 访问:

    创建代理

     kubectl proxy --address=‘192.168.1.106‘ --port=8086 --accept-hosts=‘^*$‘
     Starting to serve on 172.27.129.80:8086
    

    浏览器访问 URL:https://192.168.1.106:8086/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy/?orgId=1
    对于 virtuabox 做了端口映射: https://127.0.0.1:8086/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy/?orgId=1

  3. 通过 NodePort 访问:
     $ kubectl get svc -n kube-system|grep -E ‘monitoring|heapster‘
     heapster               ClusterIP   10.254.58.136    <none>        80/TCP          47m
     monitoring-grafana     NodePort    10.254.28.196    <none>        80:8452/TCP     47m
     monitoring-influxdb    ClusterIP   10.254.138.164   <none>        8086/TCP        47m
    
    • grafana 监听 NodePort 8452;

      浏览器访问 URL:https://192.168.1.106:8452/?orgId=1


参考:

  1. 配置 heapster:https://github.com/kubernetes/heapster/blob/master/docs/source-configuration.md

作者:半兽人
链接:https://www.orchome.com/1202
来源:OrcHome
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/linux20190409/p/10977005.html

时间: 2024-10-10 03:06:33

09-3.部署 heapster 插件的相关文章

09-2.部署 dashboard 插件

09-2.部署 dashboard 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar.gz 文件. dashboard 对应的目录是:cluster/addons/dashboard. $ pwd /opt/k8s/kubernetes/cluster/addons/dashboard $ cp dashboard-controller.yaml{,.orig} $ diff das

09-4.部署 metrics-server 插件

09-4.部署 metrics-server 插件 创建 metrics-server 使用的证书 创建 metrics-server 证书签名请求: cat > metrics-server-csr.json <<EOF { "CN": "aggregator", "hosts": [], "key": { "algo": "rsa", "size"

安装IntelliJ IDEA热部署tomcat插件JreBel

最近试着使用IntelliJ IDEA这款IDE,网上说它是最好用的java开发工具~但奈何国内ecilpse市场占有率实在稳固,所以国内这个工具也就少数人在使用 当然使用起来跟ecilpse还是有很大差别的,特别的它新建一个project就是相对ecilpse的一个工作空间,这个到现在我还是不习惯~目测越扯越扯远了-,- 不过最不习惯的还是它用tomcat部署工程的时候,不能实现热部署,不说更改java文件,就是在页面更改一点东西加个标签什么的,都得重启tomcat才能刷新...天啊,这得浪费

使用Ant打包部署STAF插件

打包部署STAF插件,简单来说,分为清理.初始化.编译.打包.部署.测试几个部分 1.清理 此处为删除文件及删除文件夹操作,使用ant中的delete标签来实现 2.初始化 由于STAF插件的打包需要的目录层次为 STAF-INF STAF-INF/classes ...用户包及类的相关层次 META-INF META-INF/MANIFEST.MF 其中 META-INF在jar打包过程中会自动生成,可以不用管 故设计目录层次结构为 build build/STAF-INF build/STA

09-1.部署 coredns 插件

09-1.部署 coredns 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar.gz 文件. coredns 对应的目录是:cluster/addons/dns. $ pwd /opt/k8s/kubernetes/cluster/addons/dns $ cp coredns.yaml.base coredns.yaml $ diff coredns.yaml.base core

09-5.部署 EFK 插件

09-5.部署 EFK 插件 EFK 对应的目录:kubernetes/cluster/addons/fluentd-elasticsearch $ cd /opt/k8s/kubernetes/cluster/addons/fluentd-elasticsearch $ ls *.yaml es-service.yaml es-statefulset.yaml fluentd-es-configmap.yaml fluentd-es-ds.yaml kibana-deployment.yaml

使用 kubeadm 安装部署 kubernetes 1.9-部署heapster插件

1.先到外网下载好镜像倒进各个节点 2.下载yaml文件和创建应用 mkdir -p ~/k8s/heapster cd ~/k8s/heapster wget https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/grafana.yaml wget https://raw.githubusercontent.com/kubernetes/heapster/master/d

kubernetes 1.14安装部署metrics-server插件

简单介绍: 如果使用kubernetes的自动扩容功能的话,那首先得有一个插件,然后该插件将收集到的信息(cpu.memory..)与自动扩容的设置的值进行比对,自动调整pod数量.关于该插件,在kubernetes的早些版本中采用的是heapster,1.13版本正式发布后,丢弃了heapster,官方推荐采用metrics-sever. 测试环境: 同之前部署的集群环境,如下: System Hostname IP CentOS 7.6 k8s-master 138.138.82.14 Ce

开源Nosql数据库Cassandra3.0实战-集群部署与插件使用

简介 Cassandra是一套开源分布式NoSQL数据库系统,Cassandra的主要特点是无中心的设计,其分布式集群由一堆数据库节点共同构成一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取.对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了. 随着Nosql的火热,Hbase.Mongodb已然成了NoSQL数据库的代表,而Cassandra在国内的使用却不多(