エスカレーターは、kubernetesのためにバッチまたはジョブが最適化された水平オートコンスカーを最適化しています
クラスターをスケーリングする必要があるときに強制駆動を行うことができず、移動することができない大きなバッチまたはジョブベースのワークロード用に設計されています。エスカレーターは、それらを終了する前にノードでポッドが完了したことを確認します。また、ポッドが保留中の状態に残されないように、できるだけ速くクラスターをスケーリングするために最適化されています。
スケールアップ、ダウン、または現在のスケールにとどまるかどうかを判断するための要求と能力を計算する
ノードを終了する前に、ノード上の非デイモンセットポッドが完了するまで待ちます
デフォルトのKubernetes Autoscalerがサービスベースのワークロードを拡大し続けることができるように、選択した自動スケーリンググループで動作するように設計されています
最初に最古のノードを自動的に終了します
スケジュールされたポッドが急上昇した場合に余分なスペースを確保するためのスラックスペースのサポート
コードンしたノードを計算に終了または因数分解しない - コードンしたノードがデバッグのために持続できるようにします
さまざまなクラウドプロバイダーのサポート - 現時点でのみAWS
スケーリングと使用率のメトリック
リーダーの選挙で、クラスター内でHA展開を実行できます。
ノードグループの複数の異なるタイプのインスタンスの基本的なサポート。
この自動車業者の必要性は、非常に大きなバッチワークロードがスケジュールされ、デフォルトの自動車員がクラスターを十分に速くスケーリングしないという私たち自身の経験から派生しています。これらのワークロードは、デフォルトの自動競技者によって強制駆動を行うことはできず、ノードを終了する前に完了する必要があります。
ドキュメントを参照してください
Kubernetesバージョン1.24+。エスカレーターはテストされ、1.24+以上で展開されています。 Kubernetesの古いバージョンには、適切に機能するのを妨げるバグまたは問題がある場合があります。
バージョン1.20+に移動します
依存関係とそのロックされたバージョンはgo.mod
and go.sum
にあります。
#依存関係を取得し、Escalatormakeビルドをビルドします
cmd/main.go -kubeconfig =〜/.kube/config - nodegroups = nodegroups_config.yamlを実行します
完全な展開ドキュメントについては、展開を参照してください。
#docker imagedocker build -t atlassian/escalatorのビルド#rbac configurationkubectl Create -f docs/deployment/escalator -rbac.yaml #deploymentKubectl Create -F Docs/Deployment/Escalator -Deployment.yamlを作成します
構成を参照してください
テストを行います
たとえば、コントローラーパッケージをテストするには:
テスト./pkg/controllerに行きます
リクエスト、問題、コメントを歓迎します。プルリクエストの場合:
新機能とバグ修正のテストを追加します
既存のスタイルに従ってください(私たちはゴレターンを使用してフォーマットとリントエスカレーターを使用しています)
無関係な変更を複数のプルリクエストに分けます
貢献を開始するための既存の問題をご覧ください。
大きな変更については、問題を作成し、意図した変更を説明して、最初にディスカッションを開始してください。
Atlassianは、CLAとして知られる貢献者ライセンス契約に署名することを貢献者に要求しています。これは、貢献者がプロジェクトにコード/ドキュメンテーション/翻訳を貢献する権利があり、分配とデリバティブ作業で使用されることをいとわない(または所有権を転送する意思がある)という記録として機能します。
貢献を受け入れる前に、以下の適切なリンクに従って、CLAにデジタルに署名してください。企業CLAは、組織のメンバーとして貢献している人のためのものであり、個々のCLAは個人として貢献する人向けです。
企業の貢献者向けのCLA
個人のためのCLA
著作権(c)2018アトラシアンなど。 Apache 2.0ライセンス、ライセンスファイルを参照してください。