GKEリソースをGitLabチャート用に準備する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
完全に機能するGitLabインスタンスの場合、GitLabチャートをデプロイする前に、いくつかのリソースが必要になります。以下に、これらのチャートがGitLab内でどのようにデプロイおよびテストされるかを示します。
GKEクラスタの作成
簡単に開始できるように、クラスターの作成を自動化するスクリプトが用意されています。または、クラスターを手動で作成することもできます。
前提要件:
- 前提要件をインストールします。
- Google SDKをインストールします。
スクリプト化されたクラスターの作成
ブートストラップスクリプトが作成され、GCP/GKEのユーザー向けに設定プロセスの多くを自動化します。
このスクリプトは次のことを行います:
- 新しいGKEクラスタを作成します。
- クラスタがDNSレコードを変更できるようにします。
kubectlをセットアップし、それをクラスターに接続します。
このスクリプトは、環境変数と、ブートストラップの場合はup、クリーンアップの場合はdownの引数から、さまざまなパラメータを読み取ります。
以下の表に、すべての変数を示します。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
ADMIN_USER | 現在のgcloudユーザー | セットアップ中にクラスタの管理者アクセスを割り当てるユーザー。 |
AUTOSCALE_MAX_NODES | NUM_NODES | オートスケーラーがスケールアップするノードの最大数。 |
AUTOSCALE_MIN_NODES | 0 | オートスケーラーがスケールダウンするノードの最小数。 |
CLUSTER_NAME | gitlab-cluster | クラスターの名前。 |
CLUSTER_VERSION | GKEのデフォルト、GKEリリースノートを確認してください | お使いのGKEクラスタのバージョン。 |
INT_NETWORK | デフォルトはです。 | このクラスタ内で使用するIP空間。 |
MACHINE_TYPE | n2d-standard-4 | クラスタインスタンスのタイプ。 |
NUM_NODES | 2 | 必要なノードの数。 |
PREEMPTIBLE | false | より安価なクラスタは、最大24時間稼働します。ノード/ディスクにSLAはありません。 |
PROJECT | デフォルトはありません。設定する必要があります。 | GCPプロジェクトのID。 |
RBAC_ENABLED | true | クラスタでRBACが有効になっているかどうかを知っている場合は、この変数を設定します。 |
REGION | us-central1 | クラスタが存在するリージョン。 |
SUBNETWORK | デフォルトはです。 | このクラスタ内で使用するサブネットワーク。 |
USE_STATIC_IP | false | 管理対象のDNSを持つ一時的なIPの代わりに、GitLabの静的IPを作成します。 |
ZONE_EXTENSION | b | クラスタインスタンスが存在するゾーン名の拡張子(a、b、c)。 |
必要なパラメータを渡して、スクリプトを実行します。必須の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の手順に従ってください。
- 4vCPUと15GBのRAMを搭載したノードを少なくとも2つ持つクラスタをお勧めします。
- クラスタのリージョンをメモしておいてください。次のステップで必要になります。
外部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エントリの準備ができたら、チャートのインストールに進みます。