2017-05-29 1 views
0

私はKubernetesクラスタ内のポッドとしてgrafanaを実行しています。 Grafanaが初期化されると、localhost上にDBが作成され、そこにすべてのデータが保存されます。つまり、ポッドが破棄されて再作成されると、DB全体が再初期化され、以前のすべてのデータが失われます。デプロイメント/ポッド作成前にイメージ内の設定ファイルを編集

DB用ポッド内部grafanaの設定が::

#################################### Database #################################### 
[database] 
# Either "mysql", "postgres" or "sqlite3", it's your choice 
;type = sqlite3 
;host = 127.0.0.1:3306 
;name = grafana 
;user = root 
;password = 

あるINORDERこの問題を取り除くために、私は外部のDBを作成し、毎回そのDBインスタンスを使用するために私のGrafanaを指すように持っている私が作成グラファナポッド。 Grafanaポッドを作成するために私の現在のデフォルトの実装では、それでは、私がやりたいことはGrafanaポッドは、新しい値で現在のファイルを書き換えるだけでオンラインになる以前に/etc/grafana/grafana.iniファイルを上書きしている::

apiVersion: v1 
kind: Service 
metadata: 
    name: lb-grafana-service 
spec: 
    ports: 
    - port: 4545 
     targetPort: 4545 
     protocol: TCP 
    clusterIP: 10.100.10.100 
---- 
apiVersion: v1 
kind: Service 
metadata: 
    annotations: 
    prometheus.io/scrape: 'true' 
    labels: 
    app: grafana 
    name: grafana 
    name: grafana 
spec: 
    ports: 
    - name: scrape 
    port: 4545 
    nodePort: 30999 
    protocol: TCP 
    type: NodePort 
    selector: 
    app: grafana 
---- 
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: grafana 
spec: 
    replicas: 1 
    selector: 
    matchLabels: 
     app: grafana 
    template: 
    metadata: 
     name: grafana 
     labels: 
     app: grafana 
    spec: 
     containers: 
     - name: grafana 
     image: grafana/grafana:develop 
     env: 
      - name: Prometheus_SERVICE_URL 
      value: http://172.29.219.105:30901 
      - name: GF_SECURITY_ADMIN_PASSWORD 
      value: "grafana" 
      - name: GF_SERVER_HTTP_PORT 
      value: "4545" 
     ports: 
      - containerPort: 9101 
     volumeMounts: 
     - mountPath: /var 
      name: grafana-storage 
     volumes: 
     - name: grafana-storage 
     emptyDir: {} 

されます。私は今、どうやってそれをやることができるのか分かりません。ちょっとした指導をいただければ幸いです。

+1

https://kubernetes.io/docs/tasks/configure-pod-container/configmap /)そのために。 'grafana.ini'全体をconfigマップにアップロードし、grafanaポッドにマウントします。 – fishi

+0

ありがとうございます。これは私のために仕事をするように見えます。 –

答えて

1

一般的には、コメントのようにConfigMapsを使用できます。

Grafana画像自体は、環境変数を介してすべての設定パラメータを提供する機能を提供します。これはGitHub readmeにのみ記載されています。

あなたのような、Kubernetesで環境変数を設定することができ、この方法:あなたは([設定のマップ]を使用することができ

spec: 
    template: 
     spec: 
     containers: 
     - name: grafana 
      image: grafana/grafana:4.1.1 
      env: 
      - name: "GF_SERVER_ROOT_URL" 
      value: "http://grafana.{{.clusterDomain}}" 
      - name: "GF_DATABASE_TYPE" 
      value: "{{.gfDatabaseType}}" 
      - name: "GF_DATABASE_HOST" 
      value: "{{.gfDatabaseHost}}" 
      - name: "GF_DATABASE_NAME" 
      value: "{{.gfDatabaseName}}" 
      - name: "GF_DATABASE_USER" 
      value: "{{.gfDatabaseUser}}" 
      - name: "GF_DATABASE_PASSWORD" 
      value: "{{.gfDatabasePassword}}" 
      - name: "GF_DATABASE_SSL_MODE" 
      value: "disable" 
      - name: "GF_AUTH_ANONYMOUS_ENABLED" 
      value: "true" 
+1

環境変数の使用はGrafanaのドキュメントにあります:http://docs.grafana.org/installation/configuration/#using-environment-variables私はあなたがそれを見つけることができなかった理由のようなものです。ドキュメントサイトで検索結果が返ってこなかったのですか、それともGoogle経由で見つからなかったのですか? –

関連する問題