6 k8s之 heapster监控安装
一 influxdb,grafana 的rc配置文件创建
[root@k8s-master heapster-influxdb]# vim influxdb-grafana-controller.yaml
apiVersion: v1 kind: ReplicationController metadata: labels: name: influxGrafana name: influxdb-grafana namespace: kube-system spec: replicas: 1 selector: name: influxGrafana template: metadata: labels: name: influxGrafana spec: containers: - name: influxdb image: 192.168.31.50:5000/heapster_influxdb:v0.5 volumeMounts: - mountPath: /data name: influxdb-storage - name: grafana image: 192.168.31.50:5000/heapster_grafana:v2.6.0 env: - name: INFLUXDB_SERVICE_URL value: http://monitoring-influxdb:8086 # The following env variables are required to make Grafana accessible via # the kubernetes api-server proxy. On production clusters, we recommend # removing these env variables, setup auth for grafana, and expose the grafana # service using a LoadBalancer or a public IP. - name: GF_AUTH_BASIC_ENABLED value: "false" - name: GF_AUTH_ANONYMOUS_ENABLED value: "true" - name: GF_AUTH_ANONYMOUS_ORG_ROLE value: Admin - name: GF_SERVER_ROOT_URL value: /api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/ volumeMounts: - mountPath: /var name: grafana-storage volumes: - name: influxdb-storage emptyDir: {} - name: grafana-storage emptyDir: {}
二,heapster 的rc配置文件
[root@k8s-master heapster-influxdb]# vim heapster-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
labels:
k8s-app: heapster
name: heapster
version: v6
name: heapster
namespace: kube-system
spec:
replicas: 1
selector:
k8s-app: heapster
version: v6
template:
metadata:
labels:
k8s-app: heapster
version: v6
spec:
containers:
- name: heapster
image: 192.168.31.50:5000/heapster:canary
imagePullPolicy: Always
command:
- /heapster
- --source=kubernetes:http://192.168.31.50:8080?inClusterConfig=false
- --sink=influxdb:http://monitoring-influxdb:8086
三,事先需要准备好上面标红的三个镜像,并打上对应的标签
镜像可以通过
docker pull docker.io/kubernetes/heapster_grafana:v2.6.0
docker pull docker.io/kubernetes/heapster_influxdb:v0.5
docker pull docker.io/kubernetes/heapster:canary
也可以将本地准备好的上传
[root@k8s-master heapster-influxdb]# for n in `ls *.tar.gz`;do docker load -i $n;done
打标签
[root@k8s-master heapster-influxdb]# docker tag docker.io/kubernetes/heapster_grafana:v2.6.0 192.168.31.50:5000/heapster_grafana:v2.6.0 [root@k8s-master heapster-influxdb]# docker tag docker.io/kubernetes/heapster_influxdb:v0.5 192.168.31.50:5000/heapster_influxdb:v0.5 [root@k8s-master heapster-influxdb]# docker tag docker.io/kubernetes/heapster:canary 192.168.31.50:5000/heapster:canary
推送到私有仓库
docker push 192.168.31.50:5000/heapster_grafana:v2.6.0 docker push 192.168.31.50:5000/heapster_influxdb:v0.5 docker push 192.168.31.50:5000/heapster:canary
四 grafana-service (svc配置文件)
[root@k8s-master heapster-influxdb]# vim grafana-service.yaml
apiVersion: v1 kind: Service metadata: labels: kubernetes.io/cluster-service: \'true\' kubernetes.io/name: monitoring-grafana name: monitoring-grafana namespace: kube-system spec: # In a production setup, we recommend accessing Grafana through an external Loadbalancer # or through a public IP. # type: LoadBalancer ports: - port: 80 targetPort: 3000 selector: name: influxGrafana
五 heapster-service (svc配置文件)
[root@k8s-master heapster-influxdb]# vim heapster-service.yaml
apiVersion: v1 kind: Service metadata: labels: kubernetes.io/cluster-service: \'true\' kubernetes.io/name: Heapster name: heapster namespace: kube-system spec: ports: - port: 80 targetPort: 8082 selector: k8s-app: heapster
六 influxdb-service (svc配置文件)
[root@k8s-master heapster-influxdb]# vim influxdb-service.yaml
apiVersion: v1 kind: Service metadata: labels: null name: monitoring-influxdb namespace: kube-system spec: ports: - name: http port: 8083 targetPort: 8083 - name: api port: 8086 targetPort: 8086 selector: name: influxGrafana
八 启动所有的服务
[root@k8s-master heapster-influxdb]# ls *yaml
grafana-service.yaml heapster-controller.yaml heapster-service.yaml influxdb-grafana-controller.yaml influxdb-service.yaml
[root@k8s-master heapster-influxdb]# kubectl create -f .
service "monitoring-grafana" created
replicationcontroller "heapster" created
service "heapster" created
replicationcontroller "influxdb-grafana" created
service "monitoring-influxdb" created
[root@k8s-master heapster-influxdb]#