k8s monitoring of kube-state-metrics

The vessel monitoring kube-state-metrics

Reference: https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes

          https://www.kubernetes.org.cn/5435.html

 

Theoretical basis

metric-server (or heapster) is obtained from the api-server cpu, memory usage such monitoring indicators, and send them to the back-end storage, such as influxdb or cloud vendors, he is currently the central role is: to HPA and other components indicators to provide decision support.

 kube-state-metrics focus on the acquisition date k8s various resources, such as deployment or daemonset, there is no reason why the kube-state-metrics into the ability of metric-server, because they are not the same focus on nature of. metric-server is only acquired, the data is formatted prior written particular storage, it is essentially a monitoring system. The kube-state-metrics is the health k8s made a snapshot in memory, and acquire new targets, but he did not have the ability to export these indicators.

 

Indicators that can be monitored

Each pod is not accurate to state and client.

kube_configmap_info

kube_daemonset_

kube_deployment

kube_endpoint

kube_ingress

kube_namespace

kube_node

kube_pod_info

….

The default monitored item comments.

kube_persistent

kube_hpa

kube_poddisruption

 

 Installation and deployment

[root@mer kube-state-metrics]# for file in kube-state-metrics-service.yaml kube-state-metrics-cluster-role-binding.yaml kube-state-metrics-cluster-role.yaml kube-state-metrics-deployment.yaml kube-state-metrics-service-account.yaml;do wget https://raw.githubusercontent.com/kubernetes/kube-state-metrics/master/kubernetes/$file;done

 

[root@master kube-state-metrics]# kubectl  apply -f ./

[root@master ~]# kubectl get pods -n kube-system|grep metric

kube-state-metrics-74f9f4ddb9-kzdbj      1/1     Running   0          19m

metrics-server-v0.3.3-6448dcfb78-rrhd8   2/2     Running   2          20h

[root@master ~]# kubectl get svc -n kube-system|grep metric      

kube-state-metrics    ClusterIP  10.103.111.189   <none>      8080/TCP,8081/TCP   20m

metrics-server     ClusterIP   10.108.249.201   <none>       443/TCP             20h

[root@master ~]#

Container internal access normal display.

 

[root@master ~]#

It needs to be exposed to ingress through the service.

  

Normal visit, the browser is configured hosts file, were normal.

 

Related Command Summary.

[root@master ~]# kubectl get svc -n kube-system                          

NAME        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE

kube-state-metrics   ClusterIP   10.103.111.189   <none>    8080/TCP,8081/TCP   101m

[root@master ~]# kubectl get ing -n kube-system

NAME                 HOSTS                ADDRESS   PORTS   AGE

ingress-kube-state   metrics.kube.state             80      25m

[root@master ~]# kubectl describe ing/ingress-kube-state -n kube-system  

Name:             ingress-kube-state

Namespace:        kube-system

Address:         

Default backend:  default-http-backend:80 (<none>)

 

默认是Clusterip方式部署,通过ingress暴露服务。

[root@master ~]# cat ingress_kube-state.yaml

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  name: ingress-kube-state

  namespace: kube-system

spec:

  rules:

  - host: metrics.kube.state

    http:

      paths:

      - path: /

        backend:

          serviceName: kube-state-metrics

          servicePort: 8080

 

配置granfa组件,查看。

 

自此完成了容器监控kube-state-metrics服务部署和暴露对外访问。

Guess you like

Origin www.cnblogs.com/sunnyyangwang/p/10943788.html