저는 많은 실험실 기계에서 Kubernetes 1.2.0을 사용하고 있습니다. 머신은 스왑을 사용할 수 있습니다. 기계가 다른 용도로 사용되기 때문에 전 세계적으로 스왑을 비활성화 할 수 없습니다.kubelet에서 스왑을 비활성화하십시오.
다음과 같은 문제가 발생합니다. 메모리 제한이있는 창을 시작하면 컨테이너가 메모리 한도에 도달 한 후 스와핑을 시작합니다. 나는 컨테이너가 죽길 기대한다.
this issue에 따르면이 문제는 해결되었지만 여전히 Kubernetes 1.2.0에서 발생합니다. 실행중인 컨테이너를 docker inspect
으로 확인하면 MemorySwap = -1
및 MemorySwappiness = -1
을 볼 수 있습니다. 메모리 제한이 낮은 창을 시작하면 거의 즉시 스왑이 시작됩니다.
나는 몇 가지 아이디어를 가지고 있지만 이들 중 하나를 수행하는 방법을 알아낼 수 없습니다 :
- 변경 그래서 용기는
- 가에 매개 변수를 추가 교환 할 수 없습니다 도커의 기본 설정을 이
가 어떻게 스와핑 시작하는 용기를 방지 할 수있는 그룹에 대한 교환 고정 표시기의 cgroup에 함께 --memory-swappiness=0
"물건은 계속 실행되지만 리소스 격리는 제대로 작동하지 않습니다"- 이는 사실이 아닙니다. 잠재적으로 스왑이 활성화 된 상태에서 30GB 메모리를 사용하는 작업이 있으며 완료하려면 * 일 *이 걸립니다. 따라서 성능 차이는 엄청납니다. 나는 컴퓨터가 유휴 상태 일 때 작업을 실행하도록 Kubernetes를 설정했습니다. 기계가 사용될 때, 노드는 자동으로 배수됩니다. 이것이 완벽하지는 않지만 교환 문제가 없다면 완벽하게 작동합니다. – morxa