에스컬레이터는 Kubernetes의 배치 또는 작업 최적화 수평 자동 판매기입니다.
클러스터가 스케일 다운해야 할 때 강제 배치 및 작업 기반 워크로드를 위해 설계되었습니다. 에스컬레이터는 포드가 노드에서 종료되기 전에 포드가 완료되었는지 확인합니다. 또한 포드가 보류 상태에 남아 있지 않도록 가능한 빨리 클러스터를 확장하는 데 최적화됩니다.
요청 및 용량을 계산하여 현재 규모로 확장, 다운 또는 체류 여부를 결정합니다.
노드를 종료하기 전에 노드의 비 데몬 세트 포드가 완료 될 때까지 기다립니다.
선택한 자동 스케일링 그룹에서 작동하도록 설계되어 기본 Kubernetes Autoscaler가 서비스 기반 워크로드를 계속 확장 할 수 있습니다.
먼저 가장 오래된 노드를 자동으로 종료합니다
예정된 포드 스파이크가 발생한 경우 추가 공간을 보장하기위한 여유 공간 지원
코디네드 노드가 계산에 종료되거나 인수하지 않습니다 - 디버깅을 위해 코드 든 노드가 지속될 수 있습니다.
다른 클라우드 제공 업체 지원 - 현재 만 AWS
스케일링 및 활용 지표
지도 선거는 클러스터 내부에서 HA 배치를 실행할 수 있습니다.
노드 그룹의 여러 다른 유형의 인스턴스에 대한 기본 지원.
이 AutoScaler의 필요성은 매우 큰 배치 워크로드가 예약되고 기본 자동 구동기가 클러스터를 충분히 빨리 확장하지 않는 우리의 경험에서 비롯됩니다. 이러한 워크로드는 기본 자동화기에 의해 힘을 배수 할 수 없으며 노드를 종료하기 전에 완료해야합니다.
문서를 참조하십시오
Kubernetes 버전 1.24+. 에스컬레이터는 1.24+ 및 최신으로 테스트 및 배치되었습니다. 구형 버전의 Kubernetes에는 버그가 발생하여 제대로 작동하지 못하게 할 수 있습니다.
GO 버전 1.20+
종속성과 잠긴 버전은 go.mod
and go.sum
에서 찾을 수 있습니다.
# 종속성을 가져오고 에스컬레이션을 구축합니다
cmd/main.go -kubeconfig = ~/.kube/config -nodegroups = nodegroups_config.yaml을 실행하십시오
전체 배포 문서는 배포를 참조하십시오.
# Docker ImageDocker 빌드 빌드 -T atlassian/escalator.# rbac configurationkubectl 만들기 -f docs/dopployment/escalator-rbac.yaml# config map 만들기 -f yelskubectl 만들기 -f 문서/배포/escalator-cm.yaml에 맞게 수정하십시오. # deploymentKubectl 작성 -f Docs/Doployment/Escalator -Deployment.yaml 작성
구성을 참조하십시오
테스트하십시오
예를 들어, 컨트롤러 패키지를 테스트하려면 :
GO 테스트 ./pkg/controller
요청, 문제 및 댓글을 가져 오는 것을 환영합니다. 풀 요청 :
새로운 기능 및 버그 수정에 대한 테스트를 추가하십시오
기존 스타일을 따르십시오 (우리는 Goreturns를 사용하여 포맷 및 보풀 에스컬레이터를 사용하고 있습니다)
관련없는 변경 사항을 여러 풀 풀 요청에 별도로 변경합니다
기여를 시작하기위한 기존 문제를 참조하십시오.
더 큰 변화의 경우 문제를 만들고 의도 된 변경 사항을 설명하여 먼저 토론을 시작하십시오.
Atlassian은 기고자가 CLA로 알려진 기고자 라이센스 계약에 서명해야합니다. 이는 기고자가 코드/문서/번역을 프로젝트에 기여할 자격이 있으며 분배 및 파생 작품 (또는 소유권을 이전하려는 기꺼이)에 기꺼이 사용하려는 기록으로 기록됩니다.
기부금을 수락하기 전에 아래의 적절한 링크를 따라 CLA에 서명하십시오. 기업 CLA는 조직의 구성원으로 기여하는 사람들을위한 것이며 개별 CLA는 개인으로 기여하는 사람들을위한 것입니다.
기업 기부자를위한 CLA
개인을위한 CLA
저작권 (C) 2018 Atlassian 및 기타. Apache 2.0 라이센스가 부여 된 라이센스 파일을 참조하십시오.