k8s中部署grafana

一次排坑记录!

1. k8s中创建对应的grafana资源

grafana官方yaml

我在apply这个文件里遇到里两个问题

  1. service 中的type需要设置为「NodePort」:

    apiVersion: v1
    kind: Service
    metadata:
     name: grafana
    spec:
     ports:
       - port: 13000  # 这里预防端口冲突
         protocol: TCP
         targetPort: http-grafana
     selector:
       app: grafana
     sessionAffinity: None
     type: NodePort
    
  2. pvc中需要执行storageClassName:storageClassName: local-path

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: local-path

2. 访问k8s环境中的grafana

一般情况下,已经可以通过: 的url访问grafana了。但是在我的正式环境中,绑定eip同时有一些安全组规则的情况,这种方式,是不可访问的。

于是我的做法是:

  1. 配置ingress:
- backend:
      serviceName: grafana
      servicePort: 13000
  path: /grafana

在这里我只加了backend的配置,并没有加rewrite的配置。

  1. 修改grafana deployment配置:
- env:
  - name: GF_SERVER_ROOT_URL
     value: http://localhost:3000/grafana/
  - name: GF_SERVER_SERVE_FROM_SUB_PATH
     value: "true"

这个地方的修改是因为ingress中使用了「grafana」作为prefix,所以要对应修改下grafana默认的配置
Serve Grafana with a custom URL path prefix
grafana default.ini
这里环境变量的规则是这个default.in文件:GF_[配置]_[key]。
需要注意的是:必须要加上GF_SERVER_SERVE_FROM_SUB_PATH这个配置,这个root_url的配置才会生效

然后就可以通过 http:///grafana 的URL访问了。

  1. 初始用户
    在default.ini这个文件中配置了初始登录用户。

你可能感兴趣的:(grafana,k8s)