Info
25년 7월 작업 중 발견한 내용을 간략하게 정리한 내용입니다.
문제 상황
Harbor 로봇 계정을 사용하여 Kubernetes에서 Docker registry secret을 생성할 때 인증 오류가 발생하는 문제가 있었고, 이를 팀원들과 같이 조사하였습니다.
원인
기본 설정이라는 가정 하에, Harbor 로봇 계정의 사용자명에는 $
같은 특수문자가 포함되어 있습니다. (예: robot$project+dev-cluster
)
이러한 특수문자들이 명령줄에서 처리될 때 문제를 일으켜 Secret 생성에 실패하거나 인증 오류를 발생시킵니다.
이 문제는 Kubernetes Secret뿐 아니라 커맨드 라인 등 다른 곳에서도 발생할 수 있습니다.
해결 방법
kubectl create secret
명령어 사용 시 사용자명을 따옴표로 감싸거나 이스케이프 처리합니다.
다른 곳에서도 비슷하게 해결할 수 있습니다.
kubectl create secret docker-registry harbor-registry-secret \
--docker-server=<HARBOR-URL> \
--docker-username='robot$project+dev-cluster' \
--docker-password=<ROBOT-TOKEN> \
--docker-email=<EMAIL> \
-n default