포드 생성 시간을 피하기 위해 쿠버네티스 잡스를 위한 노동자 풀을 갖는 것이 가능한가?
현재, 나는 특정 처리 작업을 위해 개별 K8 작업을 수행하고 있다. 이러한 작업 중 일부는 상당한 CPU/메모리를 필요로 하지만 다른 작업들은 상당히 간단하며 메모리 내 처리를 통해 쉽게 달성할 수 있다. 메모리에 몇 밀리초가 걸리는 간단한 작업은 포드 생성 시간 때문에 K8s 작업으로 실행할 때와 비교할 때 훨씬 느립니다.
덜 집약적인 작업으로 K8s 작업 포드 생성 시간의 오버헤드가 발생하지 않도록 특정 K8s 작업을 전담하는 작업자 풀과 같은 것을 가질 수 있는지 궁금합니다. 예를 들어, 내가 이미 5개의 포드를 생성하고 작업을 대기하는 유휴 상태를 가질 수 있다면, 그들은 (포드가 회전할 때까지 기다리지 않고) 들어오는 처리 요청을 빠르게 선택할 수 있다. 만약 이러한 포드가 들어오는 작업의 양에 충분하지 않다면, 이상적으로 더 많은 처리를 수용하기 위해 자동 조정될 것이다. 내가 하려는 일에 대한 명확한 문서를 찾을 수 없어서 어떤 도움이라도 주시면 감사하겠습니다. 고마워요!
쿠버네티스의 가장 작은 단위는 직접 시작(팟 만들기)하거나 다른 리소스(예: 복제 세트, 작업, 크론잡)에 의해 제어되는 포드이다.
작업자 노드에 이미 이미지가 있는 경우 포드 생성 시간은 상당히 짧아야 합니다. 당신의 직원들은 오토스케일러 때문에 각각의 일이 끝난 후에 해고되는 건가요? 나는 당신의 사용 사례가 정확히 무엇인지 그리고 당신이 '충분히 작은' 시작 시간을 고려할 것인지 잘 모르겠다. 또한 여러 작업을 실행하기 위해 서로 다른 환경이 필요한지 여부에 따라 크게 달라집니다.
대기열 서비스를 배포할 수 있습니다(예. 토끼MQ) 및 해당 대기열에 메시지를 추가하여 작업을 생성하고 해당 대기열을 감시하는 작업자를 배치합니다. 이것을 꽤 쉽게 만들고 모든 대기열 처리를 처리하는 드라마틱과 같은 프레임워크가 있다. 또한 커스텀 메트릭을 기반으로 쿠버네티스 배포 스케일을 만드는 몇 가지 솔루션이 있습니다. 예를 들어, 작업이 대기열에 쌓이면 자동 확장이 포함됩니다.
직접 코드화하지 않으려면 오픈 소스 자동화 서버(예. 젠킨스. 일반적으로 Jenkins가 클러스터에서 포드를 시작하도록 만들지만, 작업을 즉시 실행하는 정적 작업자 노드를 추가할 수도 있다. (자동 확장은 이러한 접근 방식에서 문제가 될 수 있지만, 확실히 가능하다.)
저도 같은 고민이 있어요. 나는 그것이 쿠버네티스에서 작업 대기열에 응답해야 한다는 것을 알았다.
'개발하자' 카테고리의 다른 글
Fastapi의 요금 제한 (0) | 2023.08.09 |
---|---|
플러터 생성 명령이 실패했습니다. 오류가 발생했습니다 (1) | 2023.08.09 |
파이썬을 사용하여 firebase admin sdk로 로그인 인증하는 방법 (0) | 2023.08.07 |
마크다운을 사용하여 주피터 노트북의 목차에 네스트된 주문 목록을 만들 수 있나요? (0) | 2023.08.07 |
주피터 오류: "jupyter_core.paths라는 이름의 모듈이 없습니다." (0) | 2023.08.06 |