Google Cloudのインストール

Updated 2 years ago by Admin

このドキュメントの目的は、オートスケーラーを構成して実行するための十分な技術的詳細を提供することです。適切に構成されている場合、Droneサーバーのビルドボリュームに基づいて、Google Compute Engineインスタンスを自動的に提供して終了します。

このドキュメントには、オートスケーラーにGCP認証資格情報を提供する手順が記載されていません。このドキュメントを改善するためにプルリクエストを送信することを検討してください。

前提条件

Droneトークンを作成する

オートスケーラーに提供できる管理者権限を持つユーザーDroneトークンを作成する必要があります。オートスケーラーはこのトークンを使用して、Droneビルドキューにリモートアクセスします。トークンの作成方法がわからない場合はチュートリアルを参照してください。

Googleクレデンシャルファイルを作成する

GCPインスタンスでオートスケーラーを実行している場合は、GCPインスタンスで次のコマンドを実行します。application_default_credentials.json

gcloud auth application-default login

また、資格情報は/home/$(whoami)/.config/gcloud/application_default_credentials.jsonに保存されます。

それ以外の場合は、サービスアカウントを作成し資格情報ファイルを生成して、オートスケーラーを実行する予定のマシンのどこかに保存します。


ダウンロード

オートスケーラーは、軽量のDockerイメージとして配布されます。イメージは自己完結型であり、外部要件はありません。

docker pull drone/autoscaler

サーバーを起動する

オートスケーラーコンテナは、以下のコマンドで起動できます。コンテナは環境変数を介して構成されます。構成パラメータの完全なリストについては、 構成リファレンスを参照してください。

$ docker run -d \
-v /var/lib/autoscaler:/data \
-v /path/to/application_credentials.json:/root/.config/gcloud/application_default_credentials.json \
-e DRONE_POOL_MIN=${DRONE_POOL_MIN} \
-e DRONE_POOL_MAX=${DRONE_POOL_MAX} \
-e DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} \
-e DRONE_SERVER_HOST=${DRONE_SERVER_HOST} \
-e DRONE_SERVER_TOKEN=${DRONE_SERVER_TOKEN} \
-e DRONE_AGENT_TOKEN=${DRONE_AGENT_TOKEN} \
-e DRONE_GOOGLE_PROJECT=${DRONE_GOOGLE_PROJECT} \
-e DRONE_GOOGLE_ZONE=${DRONE_GOOGLE_ZONE} \
-p 8080:8080 \
--restart=always \
--name=autoscaler \
drone/autoscaler

参照

環境

構成パラメータは環境変数を使用して設定されます。このセクションでは、推奨される構成パラメーターのサブセットを定義します。完全なリストについては、構成リファレンスをご覧ください。

DRONE_POOL_MIN

オートスケーラーが維持する必要のあるインスタンスの最小数を定義する整数です。デフォルト値は2つのインスタンスです。

DRONE_POOL_MIN=2

DRONE_POOL_MAX

オートスケーラーがプロビジョニングできるインスタンスの最大数を定義する整数です。デフォルト値は4つのインスタンスです。

DRONE_POOL_MAX=4

DRONE_SERVER_PROTO

Droneサーバープロトコルスキームを含む文字列です。この値はhttpまたはhttpsに設定する必要があります。

DRONE_SERVER_PROTO=https

DRONE_SERVER_HOST

Droneサーバーのホスト名またはIPアドレスを含む文字列です。

DRONE_SERVER_HOST=drone.domain.com

DRONE_SERVER_TOKEN

Droneユーザートークンを含む文字列です。このトークンは、Droneサーバーへの管理アクセスを許可する必要があります。

DRONE_AGENT_CONCURRENCY

エージェントが実行できる同時ビルドの最大数を定義する整数です。この値は、新しいエージェントを構成するために使用されます。

DRONE_AGENT_CONCURRENCY=2

DRONE_AGENT_TOKEN

エージェントからサーバーへの通信を許可する共有シークレット (DRONE_RPC_SECRET) を含む文字列です。この値は、新しいエージェントを構成するために使用されます。

DRONE_AGENT_TOKEN=IiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikxvb2

DRONE_GOOGLE_PROJECT

Google Cloud PlatformプロジェクトIDを含む文字列です。

DRONE_GOOGLE_PROJECT=my-sample-123

DRONE_GOOGLE_ZONE

新しいインスタンスが提供されるゾーンを含む文字列です。

DRONE_GOOGLE_ZONE=us-central1-a

Network

オートスケーラーはRESTエンドポイントを公開して、システムからランタイム情報を抽出できるようにします。オートスケーラーはコンテナ内のポート8080でリッスンし、ホストマシンで公開する必要があります。

--publish=8080:8080

Volumes

オートスケーラーはsqliteデータベースを作成し、 /dataコンテナボリュームに保持します。データ損失を防ぐために、データボリュームをホストマシンにマウントすることをお勧めします。

--volume=/var/lib/autoscaler:/data


How did we do?