OCP4 에서 Nginx 컨테이너 배포 시 PermissionDenied 문제 해결하기

이종완·2023년 3월 19일
0

개발이야기

목록 보기
9/12

개요

프론트 앱 배포 등을 위해 nginx 이미지를 이용하여 ocp에 컨테이너를 기동할 경우 별도의 추가 설정을 해주지 않으면 에러가 발생한다. 에러를 해결하고 정상적으로 nginx 및 프론트 앱을 배포할 수 있도록 설정한다

문제

nginx 이미지를 기반으로 컨테이너를 기동하면, [emerg] 1#1: mkdir() "/var/cache/nginx/client_temp" failed (13: Permission denied) 라고 출력되면서 권한 관련 에러가 발생하여 nginx 컨테이너 기동 실패 loop이 발생한다

원인

단순한 권한 문제로, nginx 이미지 및 컨테이너에서 사용하는 user가 OCP에 대한 권한을 부여 받지 못해서 그렇다
(OCP 공식 레퍼런스 내용 中, The user directive requires privileged access in Openshift)

해결 방법

컨테이너가 속한 pod의 서비스 어카운트에 해당 프로젝트(네임스페이스) scc(security context constraint)를 부여한다

다음과 같은 oc 명령어를 통해 해당 유저에게 권한을 부여해줄 수 있다

oc adm policy add-scc-to-user 유저ID system:serviceaccount:네임스페이스:파드서비스어카운트

ex) nginx 네임스페이스의 default 서비스 어카운트 권한 할당 예시

oc adm policy add-scc-to-user UID system:serviceaccount:nginx:default

profile
안녕하세요...

0개의 댓글