들어가며
- 정기적인 시스템 재 구동 또는 에러 대응을 위해 docker 데몬을 재 구동 해야 하는 경우가 있습니다.
- 다음은 docker 데몬 재 시작 할 때에 시스템 영향도에 대한 내용입니다.
내용
- docker 데몬을 재 구동 하는 것은 docker 데몬에 의해 관리되는 컨테이너들이 재 시작 됨을 의미합니다.
- docker 역시 server-client 구조이므로 docker 명령어를 사용 할 수 없습니다.
docker 명령 프로세스
- docker 위에 k8s가 동작하고 있다면 해당 클러스터를 구성하는 파드들도 결국 컨테이너의 모임이기 때문에
docker가 재 시작 할 때에 해당 노드의 컨테이너(파드)가 모두 재 시작 되게 됩니다. - 즉 마스터 노드에서 docker 데몬이 재 시작 되면 kube-apiserver 파드가 정상 상태로 구동되기 까지 kubectl 명령을 사용하지 못합니다.
- 또한 워커노드에서 docker 데몬이 재 시작 되면 사용중인 분석엔진, 모델서비스 파드가 정상 상태가 되기 까지 서비스가 불가능 상태가 됩니다.
- 쿠버네티스 운영 현황 예시
- 현재 default , ingress-nginx , kube-system 네임스페이스에 등록된 파드들이 운영중인 모습을 볼 수 있습니다.$ kubectl get pod -A
- 현재 실행중인 컨테이너 리스트--중략--$ docker ps -a
- docker 데몬 재 구동k8s 정책에 의해 docer 데몬을 내리기 전에 kubelet 데몬을 내리는 것을 권장합니다. $ systemctl stop kubelet.service && systemctl stop docker.service && systemctl start docker.service && systemctl start kubelet.service 데몬이 내려가면 컨테이너들이 모두 down 상태가 되며 컨테이너 리스트와 파드 목록이 없어지는 모습을 볼 수 있습니다. $ watch -n1 docker ps
- 이후 docker 데몬이 정상적으로 재 시작되고 docker-server와 kubernetes-api-server 컨테이너가 정상화 되며
리스트가 출력되고 컨테이너/파드가 재 시작 되었음을 확인할 수 있습니다.
마무리
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.