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を正常に開始するための適切な権限を与えるにはどうすればよいですか?
適切な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以降に移行
これで問題が解決するかどうかお知らせください。