概要
Kubernetesランナーは、ポッド内でパイプラインを実行するスタンドアロンサービスです。 KubernetesランナーはDockerランナーと非常によく似ており、KubernetesでDroneを実行するときに使用する必要があります。
使用するタイミング
Kubernetesランナーは汎用ランナーであり、ステートレスコンテナ内でテストを実行してコードをコンパイルできるプロジェクト用に最適化されています。目標がKubernetesクラスタ内でパイプラインを実行することである場合は、Kubernetesランナーを使用することをお勧めします。
使用を避けるべきケース
Kubernetesランナーは、macOSなどのDockerでサポートされていないオペレーティングシステムやアーキテクチャを対象とするプロジェクトなど、コンテナ内でテストを実行したりコードをコンパイルしたりできないプロジェクトにはあまり適していません。
Kubernetesランナーは、パイプラインの実行の間にホストマシンにファイルまたはフォルダを保存する必要があるステートフルパイプラインにもあまり適していません。 Kubernetesパイプラインは一時的なものであり、ホストマシンを変更しません。
既知の問題/相違点
Kubernetesパイプラインは実験的なものと見なされており、まだ本番環境での使用には適していない可能性があります。予期しない違いや動作が発生する可能性があります。その一部を以下に詳しく説明します。
- Dockerパイプラインとは異なり、パイプラインステータスは、環境変数ではなくファイルごとにステップに渡されます。既存のプラグインはkubernetesパイプラインと互換性がない可能性があるため、それに応じてパッチを適用する必要があります。 Slackプラグインにパッチを適用した方法をご覧ください。
- コマンドラインユーティリティは、Kubernetesパイプラインのリンティング、フォーマット、または実行をサポートしていません。
- パイプラインの実行中は、Kubernetesランナーを再起動しないでください。パイプラインの実行中にランナーを停止または再起動すると、ランナーは実行状態のままになり、関連するポッドを手動で削除する必要があります。
- パイプラインポッドが保留状態にあり、長期間スケジュールされるのを待っている場合、パイプラインがユーザーインターフェースでスタックしているように見えることがあります。これは、クラスタの容量を増やすことで解決できます。