一、Grafana简介
二、安装Grafana
通过Helm安装
添加仓库并更新:
helm repo add grafana https://grafana.github.io/helm-chartshelm repo update
先创建一个namespace,以免默认添加到default:
kubectl create namespace grafana
部署Grafana:
helm install grafana grafana/grafana -n grafana
部署完成,看到控制台打印:
NAME: grafanaLAST DEPLOYED: Fri Oct 30 17:38:22 2020NAMESPACE: grafanaSTATUS: deployedREVISION: 1NOTES:1. Get your 'admin' user password by running:kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:grafana.grafana.svc.cluster.localGet the Grafana URL to visit by running these commands in the same shell:export POD_NAME=$(kubectl get pods --namespace grafana -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")kubectl --namespace grafana port-forward $POD_NAME 30003. Login with the password from step 1 and the username: admin####################################################################################### WARNING: Persistence is disabled!!! You will lose your data when ########### the Grafana pod is terminated. ######################################################################################
通过Docker安装(仅供了解)
docker pull grafana/grafanadocker run -d -p 3000:3000 --name grafana --restart=always grafana/grafana# ordocker run -d -p 3000:3000 --name grafana grafana/grafanadocker update --restart=always grafana
通过yum安装(仅供了解)
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-6.3.3-1.x86_64.rpm -ysystemctl start grafana-serversystemctl enable grafana-server
通过yaml文件部署(仅供了解)
apiVersion: v1kind: Servicemetadata:name: grafana-dashboardspec:template:metadata:labels:name: grafana-dashboardnamespace: grafana-dashboardselector:run: grafana-dashboard-podports:- protocol: TCPport: 3000targetPort: 3000---apiVersion: apps/v1beta1kind: Deploymentmetadata:name: grafana-dashboard-podnamespace: kube-systemspec:replicas: 4template:metadata:labels:run: grafana-dashboard-podspec:containers:- name: grafanaimage: grafana/grafana:latestports:- containerPort: 3000---apiVersion: extensions/v1beta1kind: Ingressmetadata:name: grafana-dashboard-ingannotations:kubernetes.io/ingress.class: traefikspec:rules:- host: grafana.test.comhttp:paths:- backend:serviceName: grafana-dashboardservicePort: 3000
三、暴露Grafana管理界面
首先在hosts中添加:
127.0.0.1 grafana.dashboard.com
创建一个 IngressRoute:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: grafana-route
namespace: grafana
spec:
entryPoints:
- web
routes:
- match: Host(`grafana.dashboard.com`)
kind: Rule
services:
- name: grafana
port: 80
应用即可:
kubectl apply -f route.yaml -n grafana
四、访问Prometheus管理界面
经过前面的一通操作,我们可以直接在浏览器中输入 http://grafana.dashboard.com 访问:
第一次访问的时候,通过以下命令获取密码:
$ kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
C0RUtQQajyLEqJ5pyfNXvtvLgYMEYOSIukFlngjf
用户名为 admin,用刚刚获取到的密码登录:
五、配置 DataSource
添加一个数据源
把 Prometheus 的地址填上
导入 prometheus 的模板
打开左上角选择已经导入的模板会看到已经有各种图
导入模板:文件路径 k8s-ha-install/heapster/grafana-dashboard

