kubernetes wc[defunct] 프로세스 버그 관련

현재 운영하는 서비스가 kubernetes 기반으로 운영되고 있는데 최근 예상하지 못한 장애 상황이 발생하여 조치한 내용을 공유해 드립니다.

장애 상황

  • docker container가 운영되고 있는 서버에서 모든 명령(top 등) 수행시 다음과 같은 에러 메시지가 출력됨

"resource temporarily unavailable"

  • /var/log/syslogs 에도 동일한 메시지가 많이 나타남
  • 각 docker container는 기능을 수행하지 못하지만 Host 서버가 Live한 상태라서 자동 Failover 등이 수행되지 않음

조치 내역

  • 모든 명령이 수행되지 않아서 일단 서버(가상머신) 재시작
  • /var/log/syslogs 메시지 확인
  • 새로 시작된 서버가 아닌 다른 서버의 프로세스 상태 확인
    defunt_process

    실제로는 30,000 개 이상이 존재

  • wc defunct로 구글링 후 다음과 같은 kubernetes 버그 확인
  • 현재 설치된 kube version 확인
    1
    2
    3
    root@server01:~# kubectl version
    Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4", GitCommit:"7243c69eb523aa4377bce883e7c0dd76b84709a1", GitTreeState:"clean", BuildDate:"2017-03-07T23:53:09Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4", GitCommit:"7243c69eb523aa4377bce883e7c0dd76b84709a1", GitTreeState:"clean", BuildDate:"2017-03-07T23:34:32Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
    
  • 1.5.7로 업그레이드 결정
    • 업그레이드 결정만 하였고 아직 업그레이드는 미진행

업그레이드 전에는 process 갯수를 모니터링해서 일정 갯수 이상 넘어가면 가상머신을 재시작하는 형태로 운영을 하고 있습니다. 업그레이드 완료 후 Fix 여부에 대해서는 이 글에 결과 남겨 놓겠습니다.

  • 2017/7/20 업데이트: 글 공개하고 조금 있으니 담당자가 지난 밤에 업그레이드 완료 했다고 합니다. 프로세스 확인해보니 정상이네요.

Popit은 페이스북 댓글만 사용하고 있습니다. 페이스북 로그인 후 글을 보시면 댓글이 나타납니다.