작성
·
63
1
안녕하세요 일프로님!
혼자서 해결해보려다가 하루종일 해봤는데 계속 같은 문제가 반복 되어서 질문드립니다.
현재까지 트러블 슈팅 해본 경험으로는 VM의 시스템 단의 문제 인걸로 파악이 됩니다.
계속해서 일어나는 현상이 VM이 CPU 사용률이 높아서
K8s kube-system 내의 오브젝트들이 죽는 것이 반복 되는데
죽었다 살았다가 지속 되다가 VM도 멈춰버립니다.
이 환경을 최적화 하고 리소스 낭비가 있는 곳이 있다면 줄여서 정상적으로 실습을 하고 싶습니다.
참고로 제 노트북은 14코어에 렘 16Gb 입니다. CPU는 CICD 서버와 master node가 있는 서버가 돌아가도 50% 미만으로 여유가 있습니다. 렘 사용률은 90% ~ 95% 정도를 유지합니다.
1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.
Jenkins step3 blue-green 배포 진행 하다가 VM이 커널이 뻗어 버려서 리소스들이 부족한가 생각이 들어서 VM 종료 후 VitualBox 설정에서 VCPU 프로세서를 6 -> 12로 고쳐 다시 기동했습니다.
Deployment들이 startupProbe 밑 설정들이 파드 로그들을 봤을 때 java 앱 기동도 전에 재시작이 되어 10초마다 60번 까지 체크 하는 걸로 고쳤습니다.
2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.
지속적으로 VM에 문제가 발생합니다.
[root@k8s-master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE app-1-2-2-1-78cbbff668-7vkls 0/1 Unknown 1 2d app-1-2-2-1-78cbbff668-jvzxq 0/1 Error 5 2d [root@k8s-master ~]# Message from syslogd@k8s-master at Jun 12 15:42:16 ... kernel:watchdog: BUG: soft lockup - CPU#2 stuck for 21s! [portmap:50410]
커널이 멈춰버리는 치명적인 버그가 있어서 검색해보니 사용 중인 리눅스 배포판(Rocky Linux 등)의 커널 버전에 알려진 버그일 수 있다고 들었습니다.
그래서
sudo dnf update -y
위 명령어로 커널 업데이트 했습니다.
업데이트 후에도 계속에서 top으로 조회 해도 cpu 사용률이 100% 를 넘어 가는 경우가 많아서 그럴 때 마다
여러번 VM을 재시작했습니다.
재시작 후
kubelet 과 containerd 도 재시작 하고 정상작동할 때 까지 기다리고 실습을 다시 진행했습니다.
혹시나 전에 배포 했던 오브 젝트들이 차지 하고 있는 리소스 때문에 그런가 해서
anotherclass-2** 으로 시작하는 네임 스페이스들을 anotherclass-221 제외하고 모두 삭제했습니다.
3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.
반복해서 kubeapi-server가 죽습니다. 제 기동 되면 다시 kubectl 명령어가 됬다가 일정 시간이 지나고 다시 재시작 됩니다.
그 동안 VM 이 느리지 않았는데 오늘 실습을 하고나서 kubectl 명령실행 시 꽤나 시간 약 (5초~30초) 후에 실행이 되거나 60초가 지나서 명령이 실행되지 않습니다.
AI 한테 kube-apiserver 에러로그를 보여주고 답변 받은 내용도 보냅니다
3번 overflow는 2번 이 발생 해서 일어나는 현상이라고 생각이 되어서 3번 오류에 대한 AI 의 답변은 캡쳐 하지 않았습니다.
4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.
5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)
6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다. 안상민님.
쿠버네티스 환경에서 CPU와 메모리 사용률이 높은 상황에서 VM의 커널에서 soft lockup이 발생하고, 리소스 초과로 인해 K8s 오브젝트가 재시작되는 문제에 대해 말씀해 주셨네요. 이러한 문제는 여러 요인에 의해 발생할 수 있으며, 다음과 같은 접근을 통해 문제를 해결해 보실 수 있습니다.
리소스 최적화
limits
와 requests
를 설정해 Pod의 리소스 사용을 제한하세요. 이는 Pod가 사용할 수 있는 최대 리소스를 설정하여 과도한 자원 사용을 방지할 수 있습니다.CPU 및 메모리 사용률 점검
kubectl top node
및 kubectl top pod
명령어를 통해 현재 리소스 사용 현황을 모니터링하고 문제를 감지하세요.커널 및 시스템 업데이트
Jenkins 및 CI/CD 설정 최적화
쿠버네티스 클러스터 구성 점검
kubectl get nodes
명령으로 확인하세요.문제 해결에 대한 더 많은 정보를 원하시면, 추가적인 세부 내역을 포함하여 질문해 주시고, 관련 로그 파일을 지식공유자 메일로 보내주시면 좀 더 정확한 진단이 가능할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
정말 감사합니다. 강사님 정상적으로 잘 돌아가네요! 다시 실습 열심히 하겠습니다 ㅎㅎ