Closed20

GitHub Actions の actions-runner-controller の Autoscaling Runner Scale Sets mode を試す

Futa HirakobaFuta Hirakoba
Futa HirakobaFuta Hirakoba

まとめ(随時更新)

  • セットアップに従い、Mac に立てた minikube 上で Runner Scale Set を動かした
    • とりあえずリポジトリ単位でやった
    • めちゃ簡単に設定、動かすことができた
  • 専用の仕組みが GitHub Actions 側に実装されたことにより、Webhook でやる従来の方式より効率よくスケールできてる感ある
Futa HirakobaFuta Hirakoba

README.md を読んでいく

Futa HirakobaFuta Hirakoba
  • 新しいオートスケーリングモードは顧客体験をより信頼性の高い安全なものにするために多くの機能強化をもたらす
Futa HirakobaFuta Hirakoba

仕組み


https://github.com/actions/actions-runner-controller/blob/032443fcfd4cf7b6e8bb09ed9dca639bcba9f8a4/docs/preview/gha-runner-scale-set-controller/arc-diagram-dark.png#gh-dark-mode-only より

  1. Helm チャートを使用して ARC[1]がインストールされる。
    指定した namespace[2]controller-manager Pod がデプロイされる。
    AutoScalingRunnerSet コントローラーは GitHub の API を呼び出して、ランナースケールセットが所属するランナーグループ ID を取得する。
  2. AutoScalingRunnerSet コントローラーは、Runner ScaleSet Listener Pod(後述)を作成する前に、API をもう1回呼び出して Actions Service 上でランナースケールセットを作成する。
  3. Runner ScaleSet Listener Pod は、AutoScaling Listener コントローラーによってデプロイされる。
    Runner ScaleSet Listener Pod は Actions Service に接続し、ロングポーリングでHTTPS接続を確立する。
    Runner ScaleSet Listener Pod は Actions Service から Job Available メッセージを受信するまでアイドル状態を維持する。
  4. ワークフローがトリガーされると、Actions Service は run-on プロパティがランナースケールセットの名前またはセルフホストランナーのラベルと一致するランナーまたはランナースケールセットに個々のジョブ実行をディスパッチする。
  5. Runner ScaleSet Listener Pod は、Job Available メッセージを受信すると、希望するカウントまでスケールアップできるかどうかをチェックする。
    可能であれば、Runner ScaleSet Listener Pod はメッセージを承認する。
  6. Runner ScaleSet Listener は、Service Account とそのアカウントにバインドされた Role を使用して、Kubernetes API を通じて HTTPS コールを行い、EphemeralRunner Set コントローラーに希望のレプリカカウント数を要求する。
  7. EphemeralRunner Set は新しいランナーの作成を試み、EphemeralRunner Controller はこれらのランナーを登録するために JIT 構成トークンを要求する。
    コントローラは、ランナーポッドの作成を試みる。
    ポッドのステータスが失敗した場合、コントローラーは最大5回まで再試行する。
    24時間後、ランナーがジョブを受け入れない場合、Actions Serviceはジョブの割り当てを解除する。
  8. ランナーポッドが作成されると、ポッド内のランナーアプリケーションは、JIT 構成トークンを使用してActions Service に自分自身を登録する。
    その後、実行に必要なジョブの詳細を受け取るために、別のHTTPSロングポール接続を確立する。
  9. Actions Service はランナー登録を確認し、ジョブ実行の詳細をディスパッチする。
  10. ジョブ実行中、ランナーはログとジョブ実行のステータスを Actions Serviceに継続的に通信して返す。
  11. ランナーが正常にジョブを完了すると、EphemeralRunner ControllerActions Serviceと連携して、ランナーが削除可能かどうかを確認する。
    削除できる場合、Ephemeral RunnerSet カスタムリソースはランナーを削除する。

用語考察(予想)

  • Actions Service: GitHub が持つ Actions に関するサービスのこと
  • actions-runner-system Namespace:
    • controller-manager Pod: 各コントローラーを内包する Pod
      • AutoScalingRunnerSet コントローラー:
        • GitHub API を呼び出し、ランナーグループ IDを取得する
        • GitHub API を呼び出し、Actions Service で runner scale set を作成する
      • AutoScalingListener コントローラー:
        • Runner ScaleSet Listener Pod を作成する
      • EphemeralRunnerSet コントローラー:
        • Ephemeral RunnerSet カスタムリソースを操作する
        • 要求された数まで新しいランナーの作成を試みる
        • ジョブが正常に完了したランナーを削除する
      • EphemeralRunner コントローラー:
        • ランナー用の Pod を作成する
        • 新しく作成されたランナーを登録するために、Actions Service に登録トークンを要求する
        • Pod のステータスが失敗した場合、最大 5 回まで再施行する
        • 24 時間ランナーがジョブを受け入れなかった場合、登録解除し Pod を削除する
        • ジョブが正常に完了したランナーを削除可能かどうか確認する
    • Runner ScaleSet Listener Pod:
      • Actions Service に接続し、ロングポーリングでHTTPS接続を確立する
      • Actions Service から Job Available メッセージを受信するまでアイドル状態を維持する
      • Job Available メッセージを受信すると、希望するレプリカカウントまでスケールアップできるかどうかをチェックする
      • スケールアップを承認する場合、EphemeralRunner Set コントローラーにレプリカカウントまでスケールアップする要求を出す
  • actions-runners Namespace:
    • Ephemeral RunnerSet カスタムリソース:
      • ランナー Pod を増減させるものっぽい
      • 多分 EphemeralRunnerSet コントローラー、EphemeralRunner コントローラーに指示されると思われる
      • 正直コントローラーとの関係がよくわかんない
  • Job Available メッセージ:
  • JIT 構成トークン:
脚注
  1. Actions Runner Controllerの略 ↩︎

  2. デフォルト actions-runner-system↩︎

Futa HirakobaFuta Hirakoba

利点

  • actions-runner-controller をインストールする際の前提条件として、cert-manager が不要になった
  • ジョブの需要に応じた信頼性の高いスケールアップと、ランナー Pod 数ゼロまでのスケールダウンが可能になった
  • api.github.com への API リクエストを削減し、API のレート制限の問題を解決した
  • ランナー登録時に GitHub Personal Access Token(PAT)または GitHub App インストールトークンをランナー Pod に渡さないようにした
  • ランナー Pod テンプレートをカスタマイズするための柔軟性が向上
Futa HirakobaFuta Hirakoba

セットアップ

minikube でやってみる。

Futa HirakobaFuta Hirakoba

k8s クラスタの用意

minikube 入ってなかった。インスコ。

❯ brew install minikube

必要スペックがわからん。とりあえず初期設定でクラスタ起動する。
てか Apple Silicon Mac で動くのか??
Ubuntu の VM でやった方がいい説もあるな。

❯ minikube start

😄  Darwin 13.3.1 (arm64) 上の minikube v1.30.1
✨  docker ドライバーが自動的に選択されました。他の選択肢: parallels, qemu2, ssh
📌  root 権限を持つ Docker Desktop ドライバーを使用
👍  minikube クラスター中のコントロールプレーンの minikube ノードを起動しています
🚜  ベースイメージを取得しています...
💾  ロード済み Kubernetes v1.26.3 をダウンロードしています...
    > preloaded-images-k8s-v18-v1...:  330.52 MiB / 330.52 MiB  100.00% 7.21 Mi
    > gcr.io/k8s-minikube/kicbase...:  336.39 MiB / 336.39 MiB  100.00% 6.74 Mi
🔥  docker container (CPUs=2, Memory=5876MB) を作成しています...
🐳  Docker 23.0.2 で Kubernetes v1.26.3 を準備しています...
    ▪ 証明書と鍵を作成しています...
    ▪ コントロールプレーンを起動しています...
    ▪ RBAC のルールを設定中です...
🔗  bridge CNI (コンテナーネットワークインターフェース) を設定中です...
    ▪ gcr.io/k8s-minikube/storage-provisioner:v5 イメージを使用しています
🔎  Kubernetes コンポーネントを検証しています...
🌟  有効なアドオン: default-storageclass, storage-provisioner

❗  /Users/korosuke613/.asdf/shims/kubectl のバージョンは 1.23.17 で、Kubernetes 1.26.3 と互換性がないかもしれません。
    ▪ kubectl v1.26.3 が必要ですか? 'minikube kubectl -- get pods -A' を試してみてください
🏄  終了しました!kubectl がデフォルトで「minikube」クラスターと「default」ネームスペースを使用するよう設定されました
Futa HirakobaFuta Hirakoba

gha-runner-scale-set-controller をインストール

これ、上の図のどれに当たるんだ...?

❯ kubectl config current-context
minikube
❯ NAMESPACE="arc-systems"

❯ helm install arc \
    --namespace "${NAMESPACE}" \
    --create-namespace \
    oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
Pulled: ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller:0.4.0
Digest: sha256:e3fc797b2c0603245ea971ece556862810646df6a046a735dd0db6aeae074b09
NAME: arc
LAST DEPLOYED: Tue May 23 13:25:30 2023
NAMESPACE: arc-systems
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing gha-runner-scale-set-controller.

Your release is named arc.
❯ kubectl get pods -n arc-systems
NAME                                                   READY   STATUS    RESTARTS   AGE
arc-gha-runner-scale-set-controller-755f574df6-nqqj6   1/1     Running   0          81s
Futa HirakobaFuta Hirakoba

gha-runner-scale-set をインストール

self-hosted runnerを使うので、private repo である korosuke613/playground-private を使う。

Choose your installation name carefully, you will use it as the value of runs-on in your workflow.

とある。INSTALLATION_NAMEruns-on で指定する文字になるらしい。

# Using a Personal Access Token (PAT)
INSTALLATION_NAME="arc-runner-set"
NAMESPACE="arc-runners"
GITHUB_CONFIG_URL="https://github.com/korosuke613/playground-private"
GITHUB_PAT="<PAT>"
helm install "${INSTALLATION_NAME}" \
    --namespace "${NAMESPACE}" \
    --create-namespace \
    --set githubConfigUrl="${GITHUB_CONFIG_URL}" \
    --set githubConfigSecret.github_token="${GITHUB_PAT}" \
    oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set

結果

Pulled: ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set:0.4.0
Digest: sha256:594b49b2f45c81c9d1db1937f3a255eccddb386f60ced72dcc5cff7633361657
NAME: arc-runner-set
LAST DEPLOYED: Tue May 23 20:03:29 2023
NAMESPACE: arc-runners
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing gha-runner-scale-set.

Your release is named arc-runner-set.
❯ helm list -A
NAME          	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART                                	APP VERSION
arc           	arc-systems	1       	2023-05-23 13:25:30.730628 +0900 JST	deployed	gha-runner-scale-set-controller-0.4.0	0.4.0
arc-runner-set	arc-runners	1       	2023-05-23 20:03:29.099945 +0900 JST	deployed	gha-runner-scale-set-0.4.0           	0.4.0
❯ kubectl get pods -n arc-systems
NAME                                                   READY   STATUS    RESTARTS   AGE
arc-gha-runner-scale-set-controller-755f574df6-nqqj6   1/1     Running   0          6h39m
arc-runner-set-754b578d-listener                       1/1     Running   0          96s

なーんかドキュメントだと同じnamespaceにhelm installしてることになってるけど、そんなことはない。謎。

# ドキュメントの記述
$ helm list -n "${NAMESPACE}"

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                                    APP VERSION
arc             arc-systems     1               2023-01-18 10:03:36.610534934 +0000 UTC deployed        gha-runner-scale-set-controller-0.4.0        preview
arc-runner-set  arc-systems     1               2023-01-18 10:20:14.795285645 +0000 UTC deployed        gha-runner-scale-set-0.4.0            0.4.0
Futa HirakobaFuta Hirakoba

korosuke613/playground-private を見に行った。
Runner Scale Set が生えてるぞ!

Futa HirakobaFuta Hirakoba

ワークフローを書いてみる

次のワークフローを追加してみる。

(ドキュメントの yaml、インデントおかしいわ...)

.github/workflows/test-workflow.yaml
name: Test workflow
on:
  workflow_dispatch:
jobs:
  test:
    runs-on: arc-runner-set
    steps:
      - name: Hello world
        run: echo "Hello world"

修正して実行。

kubectl get pods -A -w
NAMESPACE     NAME                                                   READY   STATUS              RESTARTS     AGE
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     ContainerCreating   0            0s
arc-systems   arc-gha-runner-scale-set-controller-755f574df6-nqqj6   1/1     Running             0            6h50m
arc-systems   arc-runner-set-754b578d-listener                       1/1     Running             0            12m

おお!arc-runner-set-6ddbj-runner-fbx8f というランナーの pod が立ち上がってる!

無事ジョブも動いた。

❯ kubectl get pods -A -w
...
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      1/1     Running             0            22s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     Completed           0            53s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     Terminating         0            53s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      1/1     Terminating         1 (2s ago)   54s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     Pending             0            0s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     Pending             0            0s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     ContainerCreating   0            0s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      1/1     Running             0            2s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      1/1     Terminating         0            4s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     Terminating         0            5s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     Terminating         0            5s
arc-runners   arc-runner-set-6ddbj-runner-vz5l2                      0/1     Terminating         0            5s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     Terminating         1 (32s ago)   84s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     Terminating         1 (32s ago)   84s
arc-runners   arc-runner-set-6ddbj-runner-fbx8f                      0/1     Terminating         1 (32s ago)   84s

オートスケールしようとしたのか、arc-runners arc-runner-set-6ddbj-runner-vz5l2 と言う Pod も立ち上がったが、すぐにターミネートされた。

Futa HirakobaFuta Hirakoba

たくさん立ち上がらせてみる

4 並列のワークフローをキックしてみた。

管理?画面の推移


Total assigned jobs が 4 になった


Pod が 3 台立ち上がった時点で、Total running jobs, Total busy runners が 3 になった


Pod が 4 台立ち上がった時点で、Total running jobs, Total busy runners が 4 になった


3 つのジョブが終了し、Total assigned jobs, Total running jobs, Total busy runners が 1 になった

Pod の遷移

5 台の Pod が起動した。1 台は割り当てる job が無くすぐターミネートされた。

kubectl get pods -n arc-runners -w
NAME                                READY   STATUS    RESTARTS   AGE
arc-runner-set-6ddbj-runner-fl97m   0/1     Pending   0          0s
arc-runner-set-6ddbj-runner-fl97m   0/1     Pending   0          0s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Pending   0          0s
arc-runner-set-6ddbj-runner-fl97m   0/1     ContainerCreating   0          0s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-ftm2x   0/1     ContainerCreating   0          0s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-f8ghd   0/1     ContainerCreating   0          0s
arc-runner-set-6ddbj-runner-wphjq   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-wphjq   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-wphjq   0/1     ContainerCreating   0          1s
arc-runner-set-6ddbj-runner-fl97m   1/1     Running             0          3s
arc-runner-set-6ddbj-runner-wphjq   1/1     Running             0          3s
arc-runner-set-6ddbj-runner-f8ghd   1/1     Running             0          4s
arc-runner-set-6ddbj-runner-ftm2x   1/1     Running             0          5s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Completed           0          2m11s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Terminating         0          2m12s
arc-runner-set-6ddbj-runner-6889b   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-6889b   0/1     Pending             0          0s
arc-runner-set-6ddbj-runner-6889b   0/1     ContainerCreating   0          0s
arc-runner-set-6ddbj-runner-ftm2x   1/1     Terminating         1 (2s ago)   2m13s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Terminating         1 (4s ago)   2m15s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Terminating         1 (4s ago)   2m15s
arc-runner-set-6ddbj-runner-ftm2x   0/1     Terminating         1 (4s ago)   2m15s
arc-runner-set-6ddbj-runner-6889b   1/1     Running             0            3s
arc-runner-set-6ddbj-runner-6889b   1/1     Terminating         0            3s
arc-runner-set-6ddbj-runner-6889b   0/1     Terminating         0            6s
arc-runner-set-6ddbj-runner-6889b   0/1     Terminating         0            6s
arc-runner-set-6ddbj-runner-6889b   0/1     Terminating         0            6s
arc-runner-set-6ddbj-runner-wphjq   0/1     Completed           0            2m24s
arc-runner-set-6ddbj-runner-wphjq   0/1     Terminating         0            2m24s
arc-runner-set-6ddbj-runner-j75q7   0/1     Pending             0            0s
arc-runner-set-6ddbj-runner-j75q7   0/1     Pending             0            0s
arc-runner-set-6ddbj-runner-j75q7   0/1     ContainerCreating   0            0s
arc-runner-set-6ddbj-runner-fl97m   0/1     Completed           0            2m25s
arc-runner-set-6ddbj-runner-fl97m   0/1     Terminating         0            2m25s
arc-runner-set-6ddbj-runner-q72ts   0/1     Pending             0            0s
arc-runner-set-6ddbj-runner-q72ts   0/1     Pending             0            1s
arc-runner-set-6ddbj-runner-q72ts   0/1     ContainerCreating   0            1s
arc-runner-set-6ddbj-runner-wphjq   1/1     Terminating         1 (3s ago)   2m26s
arc-runner-set-6ddbj-runner-wphjq   0/1     Terminating         1 (4s ago)   2m27s
arc-runner-set-6ddbj-runner-wphjq   0/1     Terminating         1 (4s ago)   2m27s
arc-runner-set-6ddbj-runner-wphjq   0/1     Terminating         1 (4s ago)   2m27s
arc-runner-set-6ddbj-runner-j75q7   1/1     Running             0            3s
arc-runner-set-6ddbj-runner-fl97m   1/1     Terminating         1 (3s ago)   2m27s
arc-runner-set-6ddbj-runner-q72ts   1/1     Running             0            3s
arc-runner-set-6ddbj-runner-fl97m   0/1     Terminating         1 (4s ago)   2m28s
arc-runner-set-6ddbj-runner-fl97m   0/1     Terminating         1 (4s ago)   2m28s
arc-runner-set-6ddbj-runner-fl97m   0/1     Terminating         1 (4s ago)   2m28s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Completed           0            2m28s
arc-runner-set-6ddbj-runner-j75q7   1/1     Terminating         0            5s
arc-runner-set-6ddbj-runner-q72ts   1/1     Terminating         0            4s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Terminating         0            2m29s
arc-runner-set-6ddbj-runner-f8ghd   1/1     Terminating         1 (3s ago)   2m30s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Terminating         1 (4s ago)   2m31s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Terminating         1 (4s ago)   2m31s
arc-runner-set-6ddbj-runner-f8ghd   0/1     Terminating         1 (4s ago)   2m31s
arc-runner-set-6ddbj-runner-j75q7   0/1     Terminating         0            8s
arc-runner-set-6ddbj-runner-j75q7   0/1     Terminating         0            8s
arc-runner-set-6ddbj-runner-j75q7   0/1     Terminating         0            8s
arc-runner-set-6ddbj-runner-q72ts   0/1     Terminating         0            7s
arc-runner-set-6ddbj-runner-q72ts   0/1     Terminating         0            8s
arc-runner-set-6ddbj-runner-q72ts   0/1     Terminating         0            8s
Futa HirakobaFuta Hirakoba

後片付け

❯ helm list -A
NAME          	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART                                	APP VERSION
arc           	arc-systems	1       	2023-05-23 13:25:30.730628 +0900 JST	deployed	gha-runner-scale-set-controller-0.4.0	0.4.0
arc-runner-set	arc-runners	1       	2023-05-23 20:03:29.099945 +0900 JST	deployed	gha-runner-scale-set-0.4.0           	0.4.0
❯ helm uninstall arc-runner-set -n arc-runners
release "arc-runner-set" uninstalled
❯ helm uninstall arc -n arc-systems
release "arc" uninstalled
❯ minikube stop
✋  「minikube」ノードを停止しています...
🛑  SSH 経由で「minikube」の電源をオフにしています...
🛑  1 台のノードが停止しました。
Futa HirakobaFuta Hirakoba

ログを見てみる

Futa HirakobaFuta Hirakoba

Contoller logs

❯ kubectl logs -n "arc-systems" -l app.kubernetes.io/name=gha-runner-scale-set-controller
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Cleaning up the runner jitconfig secret	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Secret is deleted	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Cleaning up runner linked pods	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Runner-linked pods are deleted	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Cleaning up runner linked secrets	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Runner-linked secrets are deleted	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Removing finalizer	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:44Z	INFO	EphemeralRunnerSet	Ephemeral runner counts	{"ephemeralrunnerset": "arc-runners/arc-runner-set-6ddbj", "pending": 0, "running": 0, "finished": 0, "failed": 0, "deleting": 0}
2023-05-23T11:17:44Z	INFO	EphemeralRunnerSet	Scaling comparison	{"ephemeralrunnerset": "arc-runners/arc-runner-set-6ddbj", "current": 0, "desired": 0}
2023-05-23T11:17:44Z	INFO	EphemeralRunner	Successfully removed finalizer after cleanup	{"ephemeralrunner": "arc-runners/arc-runner-set-6ddbj-runner-fbx8f"}

フルのログ
https://gist.github.com/korosuke613/ee49faf72fe759e329475aeaf63978d8#file-controller-log

Futa HirakobaFuta Hirakoba

Runner set listener logs

❯ kubectl logs -n "arc-systems" -l actions.github.com/scale-set-namespace=arc-systems -l actions.github.com/scale-set-name=arc-runner-set
2023-05-23T11:17:06Z	INFO	service	process message.	{"messageId": 4, "messageType": "RunnerScaleSetJobMessages"}
2023-05-23T11:17:06Z	INFO	service	current runner scale set statistics.	{"available jobs": 0, "acquired jobs": 0, "assigned jobs": 0, "running jobs": 0, "registered runners": 1, "busy runners": 0, "idle runners": 0}
2023-05-23T11:17:06Z	INFO	service	process batched runner scale set job messages.	{"messageId": 4, "batchSize": 1}
2023-05-23T11:17:06Z	INFO	service	job completed message received.	{"RequestId": 16, "Result": "succeeded", "RunnerId": 27, "RunnerName": "arc-runner-set-6ddbj-runner-fbx8f"}
2023-05-23T11:17:06Z	INFO	auto_scaler	acquiring jobs.	{"request count": 0, "requestIds": "[]"}
2023-05-23T11:17:06Z	INFO	service	try scale runner request up/down base on assigned job count	{"assigned job": 0, "decision": 0, "min": 0, "max": 2147483647, "currentRunnerCount": 1}
2023-05-23T11:17:06Z	INFO	KubernetesManager	Created merge patch json for EphemeralRunnerSet update	{"json": "{\"spec\":{\"replicas\":null}}"}
2023-05-23T11:17:06Z	INFO	KubernetesManager	Ephemeral runner set scaled.	{"namespace": "arc-runners", "name": "arc-runner-set-6ddbj", "replicas": 0}
2023-05-23T11:17:07Z	INFO	auto_scaler	deleted message.	{"messageId": 4}
2023-05-23T11:17:07Z	INFO	service	waiting for message...

フルのログ
https://gist.github.com/korosuke613/ee49faf72fe759e329475aeaf63978d8#file-runner-set-listener-log

このスクラップは2023/06/19にクローズされました