IBM Cloud Docs
팟(Pod)이 반복적으로 다시 시작되지 않거나 예기치 않게 제거되는 이유는 무엇입니까?

팟(Pod)이 반복적으로 다시 시작되지 않거나 예기치 않게 제거되는 이유는 무엇입니까?

가상 프라이빗 클라우드 클래식 인프라

팟(Pod)이 정상이었으나 예기치 않게 제거되거나 다시 시작에서 루프가 발생합니다. 경우에 따라 컨테이너에 CrashLoopBackOff 상태가 표시될 수 있습니다.

컨테이너가 리소스 한계를 초과했거나 팟(Pod)이 우선순위가 더 높은 팟(Pod)으로 대체되었을 수 있습니다. Kubernetes 컨테이너가 반복적으로 시작에 실패하면 CrashLoopBackOff 상태가 되며, 이는 파드 내에서 영구적인 재시작 루프를 나타냅니다. 이 오류는 컨테이너가 제대로 실행되지 않는 다양한 문제로 인해 발생하는 경우가 많습니다. 일반적인 원인으로는 메모리 부족, 리소스 과부하, 배포 오류, DNS 오류와 같은 타사 서비스 문제, 종속성 누락, 포트 충돌로 인한 컨테이너 장애 등이 있습니다.

다음 절을 참조하십시오.

컨테이너 리소스 한계 수정

  1. 팟(Pod)의 이름을 가져오십시오. 레이블을 사용한 경우에는 이를 포함시켜 결과를 필터링할 수 있습니다.
    kubectl get pods --selector='app=wasliberty'
    
  2. 팟(Pod)에 대한 설명을 출력하고 Restart Count를 찾으십시오.
    kubectl describe pod
    
  3. 팟(Pod)이 짧은 시간 내에 여러 번 다시 시작된 경우에는 해당 상태를 페치하십시오.
    kubectl get pod <pod_name> -n <namespace> -o go-template='{{range.status.containerStatuses}}{{"Container Name: "}}{{.name}}{{"\r\nLastState: "}}{{.lastState}}{{end}}'
    
  4. 이유를 검토하십시오. 예를 들어 OOM Killed 은 메모리 부족을 의미하며 리소스 제한으로 인해 컨테이너가 충돌하고 있음을 나타냅니다.
  5. 작업자 풀의 크기를 조정하는 등 클러스터에 용량을 추가하여 리소스를 채울 수 있도록 합니다. 자세한 정보는 클래식 작업자 풀 크기 조정 또는 VPC 작업자 풀 크기 조정 을 참조하십시오.

우선순위가 더 높은 팟(Pod)으로 팟(Pod) 교체 수정

팟(Pod)이 우선순위가 더 높은 팟(Pod)으로 대체되고 있는지 확인하려면 다음을 수행하십시오.

  1. 팟(Pod)의 이름을 가져오십시오.

    kubectl get pods
    
  2. 팟(Pod) YAML에 대한 설명을 출력하십시오.

    kubectl get pod <pod_name> -o yaml
    
  3. priorityClassName 필드를 확인하십시오.

    1. priorityClassName 필드 값이 없는 경우 사용자 팟(Pod)의 우선순위 클래스는 globalDefault입니다. 클러스터 관리자가 globalDefault 우선순위 클래스를 설정하지 않은 경우 기본값은 영(0) 또는 가장 낮은 우선순위입니다. 이보다 우선순위가 더 높은 팟(Pod)은 사용자의 팟(Pod)을 대체하거나 제거할 수 있습니다.

    2. priorityClassName 필드 값이 있는 경우에는 우선순위 클래스를 가져오십시오.

      kubectl get priorityclass <priority_class_name> -o yaml
      
    3. value 필드를 참고하여 사용자 팟(Pod)의 우선순위를 확인하십시오.

  4. 클러스터 내의 기존 우선순위 클래스를 나열하십시오.

    kubectl get priorityclasses
    
  5. 각 우선순위 클래스에 대해 YAML 파일을 가져온 후 value 필드를 기록하십시오.

    kubectl get priorityclass <priority_class_name> -o yaml
    
  6. 사용자 팟(Pod)의 우선순위 클래스를 다른 우선순위 클래스 값과 비교하여 우선순위가 더 높은지, 또는 더 낮은지 확인하십시오.

  7. 클러스터에 있는 다른 팟(Pod)에 대해 1 - 3단계를 반복하여 이들이 사용 중인 우선순위 클래스를 확인하십시오. 이러한 팟(Pod)의 우선순위 클래스가 사용자의 팟(Pod)보다 높은 경우, 사용자의 팟(Pod)은 자신 및 자신보다 우선순위가 높은 모든 팟(Pod)을 위한 충분한 리소스가 있는 경우가 아니면 프로비저닝되지 않습니다.

  8. 클러스터 관리자에게 문의하여 클러스터에 용량을 더 추가하고 올바른 우선순위 클래스가 할당되었는지 확인하세요.