[K8s] Kubernetes Pod를 다시 시작하는 방법
2690 단어 k8skubernetesbeginners
Kubernetes K8s라고도 하는 는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템입니다.
애플리케이션을 구성하는 컨테이너를 논리 단위로 그룹화하여 쉽게 관리하고 검색할 수 있습니다. 하지만 컨테이너에 문제가 발생하면 어떻게 될까요? 이 경우 빠르고 쉽게 다시 시작할 수 있는 방법이 필요할 수 있습니다.
Kubernetes Pods 일반적으로 이를 대체할 새 배포가 있을 때까지 실행됩니다. 따라서 단일 포드를 다시 시작하는 간단한 방법이 없습니다.
하나의 컨테이너가 실패하면 다시 시작하는 대신 교체됩니다.
포드 옵션 다시 시작
이 문서에서 다룰 몇 가지 사용 가능한 옵션이 있습니다.
다운타임 발생
가동 중지 시간이 발생할 수 있습니다.
다운타임 없음
따라서 각 옵션을 약간 자세히 살펴보고 필요에 따라 각 옵션이 적합할 수 있음을 명심하십시오. 몇 가지 질문: 라이브 환경입니까? 새로운 설정인가? 앱을 감당하고 중단할 수 있습니까?
1. 복제본 변경
Pod를 다시 시작하는 옵션은 먼저 배포 복제본의 수를 0으로 조정하여 효과적으로 "종료"하는 것입니다.
kubectl scale deployment <name> --replicas=0
이 경우 K8s는 더 이상 필요하지 않은 모든 복제본을 제거합니다.
그런 다음 원하는 숫자로 다시 크기를 조정합니다.
kubectl scale deployment <name> --replicas=<desired_number>
그러면 모든 현재 포드가 중지 및 종료되고 해당 위치에 새 포드가 예약됩니다.
포드를 "종료"하기 때문에 이 옵션을 사용하면 사용 가능한 컨테이너가 없으므로 가동 중지 시간이 발생합니다. 따라서 프로덕션 시스템에서 실행 중인 경우 롤링 다시 시작 방법이 더 나은 접근 방식입니다.
새로 예약된 포드의 이름은 이전 포드의 이름과 다릅니다.
다음 명령을 실행하여 팟(Pod)의 새 이름을 가져오십시오.
kubectl get pods -n <namespace>
2. 포드 삭제
먼저 다음 명령을 실행하여 네임스페이스의 모든 포드를 가져옵니다.
kubectl get pods -n <namespace>
그런 다음 다음 명령을 실행하여 단일 포드를 삭제합니다.
kubectl delete pod <pod_name> -n <namespace>
K8은 변경 사항과 상태 차이를 기록하고 원하는 상태가 달성될 때까지 새 포드를 예약합니다.
3. 롤링 리스타트
버전 1.15 K8s부터 이제 배포의 롤링 재시작을 실행할 수 있습니다.
참고: kubectl 버전을 업데이트해야 할 뿐만 아니라 클러스터도 이 버전에서 실행되고 있는지 확인해야 합니다.
롤링 다시 시작은 다음 명령을 실행하여 배포에서 순서대로 모든 포드를 다시 시작하는 데 사용됩니다.
kubectl rollout restart deployment -n <yournamespace>
이 명령을 실행한 후 K8s는 배포의 각 포드를 하나씩 종료하고 다시 시작합니다.
이 작업은 순차적으로 수행되기 때문에 항상 일부 팟(Pod)이 실행 중이므로 애플리케이션 자체를 계속 사용할 수 있으므로 가동 중지 시간이 효과적으로 발생하지 않습니다.
읽어주셔서 감사하고 이것이 누군가에게 도움이 되기를 바랍니다!
Reference
이 문제에 관하여([K8s] Kubernetes Pod를 다시 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/the_cozma/k8s-how-to-restart-kubernetes-pods-53mj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)