https://artifacthub.io/packages/helm/grafana/loki-distributed/0.75.0
そのまま v0.48.4
から一気に v0.76.0
にHelmfileでバージョンアップすると以下のようにエラーが出る。対応方法としては StatefulSet
を削除してhelmfile apply
すれば新しいStatefulSetが作られる。
1 2 3 4 5 |
STDERR: Error: UPGRADE FAILED: cannot patch "loki-loki-distributed-ingester" with kind StatefulSet: StatefulSet.apps "loki-loki-distributed-ingester" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden COMBINED OUTPUT: Error: UPGRADE FAILED: cannot patch "loki-loki-distributed-ingester" with kind StatefulSet: StatefulSet.apps "loki-loki-distributed-ingester" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden |
- 対応方法
1 2 3 4 |
$ kubectl --context hoge -n hoge get statefulset $ kubectl --context hoge -n hoge get statefulset loki-loki-distributed-ingester -o yaml > ~/Desktop/statefulset-backup.yaml $ kubectl --context hoge -n hoge delete statefulsets loki-loki-distributed-ingester $ helmfile apply -e dev |
- get pods
1 2 3 4 5 6 7 8 9 |
$ kubectl --context hoge -n hoge get pods |grep loki loki-loki-distributed-distributor-xx 1/1 Running 0 56s loki-loki-distributed-gateway-xx 1/1 Running 0 56s loki-loki-distributed-index-gateway-0 1/1 Running 0 54s loki-loki-distributed-ingester-0 1/1 Running 0 18d loki-loki-distributed-querier-xx 0/1 CrashLoopBackOff 2 (22s ago) 56s loki-loki-distributed-query-frontend-xx 0/1 CrashLoopBackOff 3 (24s ago) 56s loki-loki-distributed-ruler-xx 1/1 Running 0 55s |
ところが、querierが CrashLoopBackOff
となってしまっているので対象のログを確認する。
- ログ確認
https://github.com/grafana/loki/issues/8030
https://github.com/grafana/helm-charts/tree/main/charts/loki-distributed#from-068x-to-0690
1 2 |
$ kubectl --context hoge -n hoge logs loki-loki-distributed-querier-xx level=error ts=2023-10-18T08:32:16.999238556Z caller=log.go:230 msg="error running loki" err="query filtering for deletes requires 'compactor_grpc_address' or 'compactor_address' to be configured\nerror initialising module: cache-generation-loader\ngithub.com/grafana/dskit/modules.(*Manager).initModule\n\t/src/loki/vendor/github.com/grafana/dskit/modules/modules.go:138\ngithub.com/grafana/dskit/modules.(*Manager).InitModuleServices\n\t/src/loki/vendor/github.com/grafana/dskit/modules/modules.go:108\ngithub.com/grafana/loki/pkg/loki.(*Loki).Run\n\t/src/loki/pkg/loki/loki.go:461\nmain.main\n\t/src/loki/cmd/loki/main.go:110\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:267\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650" |
- 差分確認
1 2 3 |
$ helm pull grafana/loki-distributed --version 0.76.0 -d charts-76 --untar $ helm pull grafana/loki-distributed --version 0.48.4 -d charts-48 --untar configだけを取得してdiff |
- values-dev.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
loki: config: | common: #追加 compactor_address: {{ include "loki.compactorFullname" . }}:3100 #追加 ingester_client: #追加 grpc_client_config: #追加 grpc_compression: gzip #追加 runtime_config: #追加 file: /var/{{ include "loki.name" . }}-runtime/runtime.yaml #追加 cache: embedded_cache: #追加 enabled: true #追加 ttl: 24h #追加 frontend_address: {{ include "loki.queryFrontendFullname" . }}-headless:9095 #追加 |
- helmfile apply -e dev
1 2 3 4 5 6 7 8 9 |
$ kubectl --context hoge -hoge get pods |grep loki loki-loki-distributed-distributor-xx 1/1 Running 0 89m loki-loki-distributed-gateway-xx 1/1 Running 0 107m loki-loki-distributed-index-gateway-0 1/1 Running 0 89m loki-loki-distributed-ingester-0 1/1 Running 0 88m loki-loki-distributed-querier-xx 1/1 Running 0 89m loki-loki-distributed-query-frontend-xx 1/1 Running 0 89m loki-loki-distributed-ruler-xx 1/1 Running 0 89m |
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。