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 파라미터는 다음 세 가지 주요 컴포넌트에 영향을 줍니다:

각 컴포넌트는 ConfigMap 변경사항을 자동으로 반영합니다. 이를 통해 오류의 원인인 Redis 압축 불일치 문제가 해결됩니다.

관련자료

Github Issue:

Helpful articles: