728x90
컨테이너로 오픈소스를 배포하다보면 아래와같이 init container에서 권한오류가 발생하는 경우가 종종있다. 특히 ElasticSearch 를 배포하는 경우 자주 발생한다.
sysctl: permission denied on key "vm.max_map_count", ignoring
ulimit: open files: cannot modify limit: Operation not permitted
이유는 /tmp/scripts/init_sysctl.sh 라는 BootStrap을 만들었는데, 이 Shell이 하려는 일의 권한과 설정된 컨테이너 권한이 안맞아서 발생하는 문제이다.
이를 해결하기 위해 다양한 방법이 있겠지만, 필자의 경우에는 다음의 방법을 사용하였다.
initContainer가 정의되어 있지않다면 initContainer를 다음과 같이 추가하고, initContainer에서 어떤 shell을 돌리게끔되어 있는 구조라면 아래와 같이 뜯어고친다.
initContainers:
- command:
- sh
- -c
- sysctl -w vm.max_map_count=262144
name: sysctl
image: busybox:1.28
securityContext:
privileged: true
그냥 sysctl을 수행하고 이를 busybox라는 기본적인 컨테이너 이미지를 사용한다.
'PaaS > Kubernetes' 카테고리의 다른 글
Argo Rollout으로 배포한 Replica도 HPA를 탈까? (0) | 2023.11.21 |
---|---|
Failed to scrape node .. because it doesn't contain any IP SANs 오류 해결 (0) | 2023.11.20 |
SonarQube를 k8s에 컨테이너로 배포해보자 (1) | 2023.11.19 |
k8s init Container에서 오류가 발생했을때 트러블 슈팅방법 (0) | 2023.11.16 |
k8s 에서 Database Provisioning시 Permission denied (0) | 2023.11.16 |