2025-11-12 cache key is missing
개요
ArgoCD UI 2.13 버전에서 리소스 상세 정보(Details)를 클릭하면 간헐적으로 다음과 같은 오류가 표시됩니다:
Unable to load data: cache: key is missing
이 오류로 인해 리소스 상세 정보를 볼 수 없는 상황입니다.
이것은 ArgoCD의 알려진 버그로, Redis 압축이 활성화되어 있을 때 컴포넌트 간 압축 처리가 일관되지 않아 발생합니다.
해결 방법
방법 1: Application Controller 재시작 (빠른 해결)
캐시를 재구축하기 위해 Application Controller를 재시작합니다:
kubectl rollout restart statefulset -n argocd argocd-application-controller
참고: 빠르고 즉각적으로 문제를 해결할 수 있는 방법이지만, 임시 해결책이므로 시간이 지나면 문제가 재발할 수 있습니다.
방법 2: Redis 압축 비활성화 (장기적 해결)
근본 원인은 ArgoCD 컴포넌트 간 Redis 압축 처리 방식이 일치하지 않기 때문입니다. redis.compression 설정을 생략하면 기본값인 gzip으로 설정되는데, 이 때 컴포넌트 간 압축 처리 불일치로 인해 이 문제가 발생합니다.
argocd-cmd-params-cm ConfigMap에 redis.compression 파라미터를 명시적으로 none으로 추가합니다:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cmd-params-cm
namespace: argocd
data:
redis.compression: none # 사용 가능한 옵션: gzip (기본값), none
redis.compression 파라미터는 다음 세 가지 주요 컴포넌트에 영향을 줍니다:
- argocd-application-controller: 애플리케이션 상태와 리소스 트리 저장
- argocd-repo-server: Git 매니페스트 저장
- argocd-server: UI/API 요청을 위한 캐시 데이터 읽기
각 컴포넌트는 ConfigMap 변경사항을 자동으로 반영합니다. 이를 통해 오류의 원인인 Redis 압축 불일치 문제가 해결됩니다.
관련자료
Github Issue:
- Error log on missing cache key #5068
- Inconsistency in redis key formation in ArgoCD 2.8.4 with compression enabled #15912
Helpful articles: