2017-10-20 8 views
2

포드 내의 컨테이너 가비지 수집과 관련하여 질문이 있습니다. 나는 주 용기와 사이드카 용기를 포드 (pod)로 달고있다. 주 컨테이너는 끝났지 만 사이드카가 여전히 작동 중입니다. Kubernetes 쓰레기가 주 용기를 수집합니까? 사이드카가 끝날 때까지 주 용기가 쓰레기 수거되지 않을 것이라고 보장 할 수 있습니까? 그렇지 않다면 이것을 달성하는 방법이 있습니까?Kubernetes의 컨테이너 가비지 수집

MaxPerPodContainer 플래그는 이것과 어떤 관련이 있습니까? https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy 가입일

답변

0

:

PodSpec 가능한 값 Always, OnFailureNeverrestartPolicy 필드를 갖는다. 기본값은 Always입니다. restartPolicy 은 포드의 모든 컨테이너에 적용됩니다.

  • restartPolicy: Never : 하나 개의 컨테이너를 종료 할 경우 다른 모든 컨테이너가
  • restartPolicy: OnFailure 계속 실행됩니다 : 하나 개의 컨테이너가 다음 오류 상태에 종료되면 실제로

이는 포드에 대해 다음을 의미합니다 해당 컨테이너가 다시 시작됩니다. 그것이 완전히 종료되면 (완료) 컨테이너가 재시작되지 않습니다. 두 경우 모두 다른 컨테이너가 계속 실행됩니다. 모든 컨테이너가 정상적으로 종료되면 창은 완료 됨 상태가되고 그와 같이 유지됩니다.

  • restartPolicy: Always는 : 하나 개의 컨테이너가 오류 상태에 종료되면 그 용기는하지만, 가장 가능성이 포드 템플릿에 restartPolicy: OnFailure을 의무화 배포를 사용하는

  • 을 다시 시작됩니다. 즉, 컨테이너가 종료되면 컨테이너가 다시 시작됩니다. 몇 분 동안 만 실행되는 컨테이너는 가질 수 없습니다.

    수행하려는 작업에 따라 initContainers이 해결책이 될 수 있습니다.

    는 어쩌면이 같은 포드와 약간의 실험 :

    kind: Pod 
    metadata: 
        name: busybox 
    spec: 
        restartPolicy: Always 
        containers: 
        - name: date 
        image: busybox 
        command: ["sh","-c","while date; do sleep 1; done"] 
        - name: sleep15 
        image: busybox 
        command: ["sh","-c","sleep 15; exit 1"] 
    
    +0

    이 내가이 restartpolicy에 대한 자세한 그대로을 찾고 정확히 아니지만 ... – sytianhe