728x90
SMALL
1. 글을 쓰게 된 계기
k8s와 docker 등을 수없이 여러번 올렸다 내렸다하는 작업을 진행하고
추후에 docker를 띄울려고 하니 seccomp 오류 등 각종 오류들이 나왔다.
이를 해결하는 방법에 대해 설명하고자 한다. (근본적인 해결방법은 아닌듯하다.)
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to init seccomp: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown
2. 해결 방법
단순한 해결 방법은 2가지가 존재한다.
첫번째는 bpf_jit_limit 을 올리는 방법이다.
sudo cat /proc/sys/net/core/bpf_jit_limit # 528482304
다음 명령어를 사용하면 최대 bpf_jit를 확인할 수 있는데
sudo cat /proc/vmallocinfo | grep bpf_jit | awk '{s+=$2} END {print s}' # 769040384
최대 bpf_jit 보다 더 많은 메모리를 차지하고 있을 확률이 높다.
그래서
sudo sysctl -w net.core.bpf_jit_limit=1073741824 # 1GB로 설정
최대 용량을 늘리는 방법이 있다.
영구적으로 설정하려면 /etc/sysctl.conf에 추가해야한다.
net.core.bpf_jit_limit=1073741824
두번째 방법은 docker를 재시작하는 것이다.
sudo systemctl restart docker
도커를 재시작하면 모든 컨테이너가 종료되고 재실행해야하니 참고해야한다.
(컨테이너 자체가 없어지는 것은 아님으로 다시 시작해주면 된다.)
도커를 재시작하면 seccomp와 BPF 설정은 초기화가 된다.
단, 해당 방법이 궁극적인 해결 방법이 아니다.
분명 bpf_jit 가 계속해서 늘어나고 있는데 이게 왜 늘어나고 누수가 생기는지 확인해야한다.
혹시 방법을 알고 있으신 분은 댓글로 주시면 감사드리겠습니다.
관련한 github issue들
728x90
LIST
'Come on IT > DevOps' 카테고리의 다른 글
K8s namespace가 deleted 안될 때 (feat. monitoring) (0) | 2024.10.14 |
---|---|
Prometheus 및 Grafana 설치 (feat. 쿠베네티스) (1) | 2024.10.07 |
worker node에서 명령어 실행이 안될 때 해결방법 (0) | 2024.10.06 |
쿠버네티스 GPU 연결 방법 (feat. gpu-operater) (3) | 2024.10.06 |
Kubernetes kubeadm init 오류 및 해결 방법 (0) | 2024.10.02 |