GitLab チャート用の GKE リソースの準備

完全に機能するGitLabインスタンスのためには、GitLabチャートをデプロイする前にいくつかのリソースが必要です。以下は、GitLab内でこれらのチャートをデプロイしてテストする方法です。

GKEクラスターの作成

簡単に始めるために、クラスター作成を自動化するスクリプトが提供されています。手動でクラスターを作成することもできます。

前提条件:

スクリプトによるクラスター作成

GCP/GKE上のユーザーのセットアッププロセスの大部分を自動化するためのブートストラップスクリプトが作成されました。

このスクリプトは

  1. 新しいGKEクラスターを作成します。
  2. クラスターがDNSレコードを変更できるようにします。
  3. 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のインストールを続行します。