GitLab チャート用の GKE リソースの準備
完全に機能するGitLabインスタンスのためには、GitLabチャートをデプロイする前にいくつかのリソースが必要です。以下は、GitLab内でこれらのチャートをデプロイしてテストする方法です。
GKEクラスターの作成
簡単に始めるために、クラスター作成を自動化するスクリプトが提供されています。手動でクラスターを作成することもできます。
前提条件:
- 前提条件をインストールします。
- Google SDKをインストールします。
スクリプトによるクラスター作成
GCP/GKE上のユーザーのセットアッププロセスの大部分を自動化するためのブートストラップスクリプトが作成されました。
このスクリプトは
- 新しいGKEクラスターを作成します。
- クラスターがDNSレコードを変更できるようにします。
-
kubectl
をセットアップし、クラスターに接続します。
このスクリプトは、環境変数と引数up
(ブートストラップ用) またはdown
(クリーンアップ用) からさまざまなパラメータを読み取ります。
以下の表はすべての変数について説明しています。
変数 | 説明 | デフォルト値 |
---|---|---|
地域 | クラスターが存在する地域 | us-central1 |
ZONE_EXTENSION | クラスター・インスタンスが存在するゾーン名の拡張子 (a ,b ,c ) | b |
CLUSTER_NAME | クラスターの名前 | gitlab-cluster |
クラスタバージョン | GKE クラスタのバージョン | GKE デフォルト、GKE リリースノートを参照。 |
マシンタイプ | クラスター・インスタンスのタイプ | n2d-standard-4 |
NUM_NODES | 必要なノード数。 | 2 |
オートスケール最小ノード数 | オートスケーラがスケールダウンする最小ノード数。 | 0 |
autoscale_max_nodes | オートスケーラがスケールアップするノードの最大数。 | NUM_NODES |
プロジェクト | GCPプロジェクトのID | デフォルトはありません。 |
ADMIN_USER | セットアップ時にクラスター管理者アクセス権を割り当てるユーザー | 現在のgcloudユーザー |
RBAC_ENABLED | クラスターでRBACが有効になっているかどうかがわかっている場合は、この変数を設定します。 | true |
予約可能 | 安価、クラスターの稼働は最大24時間。ノード/ディスクのSLAなし | false |
USE_STATIC_IP | マネージドDNSでエフェメラルIPの代わりにGitLab用のスタティックIPを作成します。 | false |
INT_NETWORK | クラスター内で使用するIPスペース | デフォルト |
サブネットワーク | クラスター内で使用するサブネットワーク | デフォルト |
希望のパラメータを渡してスクリプトを実行します。PROJECT
以外はデフォルトのパラメータで動作します:
PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh up
このスクリプトは、作成された GKE リソースのクリーンアップにも使用できます:
PROJECT=<gcloud project id> ./scripts/gke_bootstrap_script.sh down
クラスターが作成されたら、DNSエントリの作成に進みます。
手動クラスター作成
GCPではKubernetesクラスタと外部IPの2つのリソースを作成する必要があります。
Kubernetesクラスターの作成
Kubernetesクラスターを手動でプロビジョニングするには、GKEの指示に従います。
- 少なくとも2ノード、それぞれ4vCPU、15GBのRAMを搭載したクラスターを推奨します。
- クラスターのリージョンを控えておいてください。
外部IPの作成
クラスターに到達できるようにするには、外部IPが必要です。外部IPはリージョナルで、クラスター自身と同じリージョンにある必要があります。グローバルIPまたはクラスターのリージョン外のIPでは動作しません。
静的IPを作成するには
gcloud compute addresses create ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT
新しく作成したIPのアドレスを取得します:
gcloud compute addresses describe ${CLUSTER_NAME}-external-ip --region $REGION --project $PROJECT --format='value(address)'
このIPを使って、次のセクションでDNS名とバインドします。
DNSエントリ
クラスターを手動で作成した場合、またはスクリプトによる作成でUSE_STATIC_IP
オプションを使用した場合は、先ほど作成した IP を指す A レコードワイルドカード DNS エントリを持つ公開ドメインが必要です。
Google DNSクイックスタートガイドに従ってDNSエントリを作成します。
次のステップ
クラスターを稼働させ、静的IPとDNSエントリの準備ができたら、Chartのインストールを続行します。