>

Jenkins Kubernetes Plugin 작동 방식에 관한 질문이 있습니다. 환경을 설정하기 위해 Google 클라우드, 젠킨스, 조타 장치 및 kubernetes를 사용하고 있습니다. 이 지침을 사용하여 kubernetes에서 jenkins를 설정했습니다.

https://cloud.google.com/solutions/jenkins -on-kubernetes-engine-tutorial

헬름 파일을 통한이 튜토리얼에서 슬레이브는 최대 1 개의 CPU 및 512MI로 500mCPU 및 256Mi 메모리를 사용합니다. 그런 다음 Kubernetes jenkins 플러그인을 사용합니다. 기본적으로 내 kubernetes 풀 또는 노드에서 사용 가능한 리소스를 사용하여 jenkins에서 작업을 실행하는 에이전트를 만듭니다.

내 문제는 다음과 같습니다. 튜토리얼에서 사용 가능한 풀은 2 개의 노드가있는 2 개의 노드이며 각각 7.5GB입니다. 이러한 리소스 중 일부는 서버를 실행하기 위해 jenkins가 사용합니다. 즉, 모든 리소스를 사용할 수는 없습니다. Jenkins 서버에서 "Concurrency Limit"필드를 20으로 변경했는데 20 개의 실행기를 실행하여 동시에 20 개의 실행 프로그램을 작성하여 작업에 사용했지만 8 개만 작성하여 사용했습니다. 다른 사람들은 오프라인 상태이며 일시 중단되었습니다. 클러스터에 더 많은 실행기를 만들 수있는 충분한 리소스가 없기 때문에 8 개만 생성 된 것 같습니다. 그런 다음 일부 작업이 완료되고 실행 프로그램이 종료되면 실행 프로그램을 실행할 수있었습니다. 이제 내 질문은20 개의 작업을 실행하는 경우 동시성 한도에 도달하기 위해 더 많은 리소스 (포드, 노드 또는 기타 무엇이든)를 추가하는 방법이 있습니까? 내 동시성 한도에 도달하고 어떤 작업도 기다릴 필요가 없습니까?일부 실행 프로그램은 많은 CPU 전력을 필요로하지 않을 수도 있지만 (100mCPU와 같을 수 있음) 1CPU를 요구할 수있는 다른 CPU가있을 수 있으므로이를 수행하고 싶습니다 클러스터 구성이 완료되면 한 번에 MAYBE 1 작업을 실행할 수 있으며 20 개의 작업을 모두 실행하는 데 시간이 오래 걸립니다. 더 많은 노드 또는 포드를 만들어서 클러스터의 크기를 조정할 수 있다면 삭제하면 동적이면서도 쉽게 확장 할 수 있습니다. 누구든지 이것을 달성하는 방법에 대한 조언이 있습니까? 감사합니다


  • 답변 # 1

    Google Cloud를 사용하고 있으므로 기존 노드 풀을 편집하여 자동 확장을 활성화 할 수 있습니다.

    와이즈 비즈

    즉, 필요할 때 워크로드에 대한 리소스 요구를 충족시키기 위해 노드 풀에 더 많은 노드가 추가됩니다.

    또는 노드에 충분한 공간이있는 경우 수평 포드 자동 크기 조정을 사용하여 포드 수를 늘릴 수 있습니다.

    와이즈 비즈

    포드 리소스 사용량 측정 항목을 기반으로 노드 대신 더 많은 포드를 만듭니다.

    GKE's cluster autoscaler automatically resizes clusters based on the demands of the workloads you want to run. With autoscaling enabled, GKE automatically adds a new node to your cluster if you've created new Pods that don't have enough capacity to run; conversely, if a node in your cluster is underutilized and its Pods can be run on other nodes, GKE can delete the node.

관련 자료

  • 이전 reactjs - 상태를 잃어버린 게으른로드 된 구성 요소 반응
  • 다음 azure - aadsts70005 - response_type 'id_token'이 애플리케이션에 사용 가능하지 않습니다