web-dev-qa-db-ja.com

grafanaユーザーに適切な許可を与えて、正常に開始できるようにするにはどうすればよいですか?

env:

kubernetes provider: gke
kubernetes version: v1.13.12-gke.25
grafana version: 6.6.2 (official image)

grafanaデプロイメントマニフェスト:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      name: grafana
      labels:
        app: grafana
    spec:
      containers:
      - name: grafana
        image: grafana/grafana:6.6.2
        ports:
        - name: grafana
          containerPort: 3000
        # securityContext:
        #     runAsUser: 104
        #     allowPrivilegeEscalation: true
        resources:
          limits:
            memory: "1Gi"
            cpu: "500m"
          requests: 
            memory: "500Mi"
            cpu: "100m"
        volumeMounts:
          - mountPath: /var/lib/grafana
            name: grafana-storage
      volumes:
        - name: grafana-storage
          persistentVolumeClaim:
              claimName: grafana-pvc

問題

このgrafanaダッシュボードを初めて展開したとき、問題なく動作しました。しばらくして、ボリュームマウントが機能しているかどうかを確認するためにポッドを再起動しました。再起動後、エラーが発生しました。

mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later

このエラーから私が理解していることは、ユーザーがこれらのファイルを作成できることです。このユーザーにgrafanaを正常に開始するための適切な権限を与えるにはどうすればよいですか?

3
Abu Hanifa

適切なPVCを使用して展開を再作成しましたが、grafanaポッドが失敗していることに気付きました。

コマンドの出力:$ kubectl get pods -n monitoring

NAME READY STATUS RESTARTS AGE
grafana-6466cd95b5-4g95f 0/1 Error  2  65s

さらに調査したところ、あなたと同じエラーが見つかりました。

mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later

このエラーは、ポッドの最初の作成とデプロイメントで発生しました。ポッドを再作成する必要はありませんでした。

それを機能させるために私がしたことは、デプロイメントを編集することでした:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      name: grafana
      labels:
        app: grafana
    spec:
      securityContext:
          runAsUser: 472
          fsGroup: 472
      containers:
      - name: grafana
        image: grafana/grafana:6.6.2
        ports:
        - name: grafana
          containerPort: 3000
        resources:
          limits:
            memory: "1Gi"
            cpu: "500m"
          requests:
            memory: "500Mi"
            cpu: "100m"
        volumeMounts:
          - mountPath: /var/lib/grafana
            name: grafana-storage
      volumes:
        - name: grafana-storage
          persistentVolumeClaim:
              claimName: grafana-pvc

パーツを具体的に見てください:

      securityContext:
          runAsUser: 472
          fsGroup: 472

これは公式ドキュメントで説明されている設定です。 Kubernetes.io:ポッドのセキュリティコンテキストを設定します

あなたに似ているこのGithubの問題を確認して、ポッドが正しく生成されるようにするソリューションを私に指摘してください:

Grafanaには、バージョン5.1以降の主要な更新がいくつかありました。ご覧ください: Grafana.com:ドキュメント:v5.1以降に移行

これで問題が解決するかどうかお知らせください。

4
Dawid Kruk