Auto-Scaling이 사용으로 설정된 작업자 풀에 앱 배치
팟(Pod) 배치를 클러스터 오토스케일러가 관리하는 특정 작업자 풀로 제한하려면 레이블과 nodeSelector 또는 nodeAffinity의 조합을 사용하여 오토스케일링된 작업자 풀에만 앱을 배치하십시오. nodeAffinity를 사용하면 스케줄링 작업이 팟(Pod)과 작업자 노드를 대응시키는 방식을 제어하는 기능이 향상됩니다. 그런 다음 이 앱이 오토스케일링된
작업자 풀에만 실행될 수 있도록 오염 및 결함 허용을 사용하십시오.
자세한 정보는 다음 Kubernetes 문서를 참조하십시오.
시작하기 전에:
오토스케일링된 특정 작업자 풀에서 실행되도록 앱 제한:
-
오토스케일링을 위한 클러스터 준비에 설명된 대로 오토스케일링된 작업자 풀을 레이블 지정했으며 오염시켰는지 확인하십시오.
-
팟(Pod) 스펙 템플리트에서
nodeSelector또는nodeAffinity를 작업자 풀에서 사용한 레이블에 대응시키십시오.nodeSelector예:... spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: app: nginx ...nodeAffinity예:spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: use operator: In values: - autoscale -
팟(Pod) 스펙 템플리트에서
toleration를 작업자 풀에 설정한 오염에 대응시키십시오.NoExecute결함 허용 예:tolerations: - key: use operator: "Exists" effect: "NoExecute" -
팟(Pod)을 배치하십시오. 일치하는 레이블로 인해 팟(Pod)은 레이블 지정된 작업자 풀에 있는 작업자 노드에 스케줄됩니다. 일치하는 결함 허용으로 인해 팟(Pod)은 오염된 작업자 풀에서 실행될 수 있습니다.
oc apply -f pod.yaml
작업자 풀에 리소스가 부족하기 전에 작업자 노드 스케일링 업
클러스터 오토스케일러의 작동 방식 이해하기 항목 과 클러스터 오토스케일러 FAQ(Kubernetes)에 설명된 대로, 클러스터 오토스케일러는 작업 부하에 필요한 리소스를 요청한 작업자의 풀에 대해 사용 가능한 리소스에 대응하여 작업자 풀을 확장합니다. 그러나, 작업자 풀에 리소스가 부족해지기 전에 클러스터 오토스케일러가 작업자 노드를 스케일링 업하도록 할 수 있습니다. 이 경우 작업자 풀이 리소스 요청을 충족하도록 이미 스케일링 업되었기 때문에 워크로드는 작업자 노드가 프로비저닝되는 동안 오래 대기할 필요가 없습니다.
클러스터 오토스케일러는 작업자 풀의 초기 스케일링(과잉 프로비저닝)을 지원하지 않습니다. 그러나 다른 Kubernetes 리소스를 구성하여 초기 스케일링을 달성하도록 클러스터 오토스케일러에 대한 작업을 수행할 수 있습니다.
팟(Pod) 일시정지
특정 리소스 요청이 있는 포드에 일시 정지 컨테이너를 배치하는 배치를 생성하고, 배치에 낮은 포드 우선순위를 할당할 수 있습니다. 이러한 리소스가 우선순위가 높은 워크로드에 필요하면 일시중지 팟(Pod)이 선취되어 보류 중인 팟(Pod)이 됩니다. 이 이벤트는 클러스터 오토스케일러가 스케일링 업하도록 트리거합니다.
일시 중단 포드 배포 설정에 대한 자세한 내용은 Kubernetes FAQ를 참조하십시오. 이 예제 오버프로비저닝 구성 파일을 사용하여 우선순위 클래스, 서비스 계정, 배포를 생성할 수 있습니다.
이 방법을 사용하는 경우 팟(Pod) 우선순위가 작동하는 방법을 이해하고 배치에 팟(Pod)을 설정하는 방법을 확인하십시오. 예를 들어, 일시정지 팟(Pod)에 상위 우선순위에 필요한 충분한 리소스가 없는 경우 해당 팟(Pod)은 선취되지 않습니다. 우선순위가 높은 워크로드는 보류 중으로 유지되므로 클러스터 오토스케일러가 스케일링
업되도록 트리거됩니다. 그러나 이 경우, 충분하지 않은 리소스로 인해 실행할 워크로드를 스케줄할 수 없으므로 확장 조치가 조기에 수행되지 않습니다. 일시정지 팟(Pod)에는 작업자 풀에 설정한 일치하는 오염 및 일치하는 nodeAffinity 또는 nodeSelector가 있어야 합니다.
수평 팟(Pod) 자동 스케일링(HPA)
수평 팟(Pod) Auto-Scaling 기능은 팟(Pod)의 평균 CPU 사용량을 기준으로 하므로 작업자 풀에 리소소가 부족해지기 전에 설정한 CPU 사용량 한계에 도달합니다.
추가 팟(Pod)이 요청되면 클러스터 오토스케일러가 작업자 풀을 스케일링 업하도록 트리거합니다. HPA 설정에 대한 자세한 내용은 Kubernetes 문서를 참조하십시오.