sonarqube를 컨테이너로 옮기면서 sysctl 문제가 다시 발생했다.

vm_max_map_count 값이 65530 으로 너무 낮았다.

그래서 원래 sysctl 에서 262144 로 바꿔주었는데

 

Dockerfile에서 "RUN sysctl ~" 이런식으로는 바뀌지 않았다.

그래서 찾아보니 Dockerfile에서 저 명령어를 사용하면 이미지를 빌드하는 호스트의 vm_max_map_count 값이 바뀐다고 한다.

그 이미지를 사용하는 컨테이너에 적용되는 vm_max_map_count가 바뀌는게 아니다

 

그래서 찾아보던 중 크게 2가지 방법이 있었다.

1. 노드의 sysctl 값을 변경

2. init container에서 "sysctl ~~" 명령어를 실행

 

노드에서 sysctl의 값들을 변경하면 해당 노드에 생성되는 파드, 컨테이너들에 모두 적용된다.

 

그러나, init container를 이용해 sysctl을 사용하면 init container가 있는 pod의 vm.max_map_count가 변경되고

같은 pod에 있는 다른 컨테이너들은 변경된 vm.max_map_count가 적용된다.

 

 

initContainers:
- command:
- sysctl
- '-w'
- vm.max_map_count=262144
image: busybox:1.27.2
imagePullPolicy: IfNotPresent
name: init-sysctl
resources: {}
securityContext:
privileged: true
 

+ Recent posts