GCP Marketplaceを利用してGitLab on GKE


はじめに

GCPのMarketplaceを利用して、GKE上にGitLabを構築します。
※外部公開のGitLabクラスタとなります。

必要なもの

  • ドメイン ※今回は独自ドメインですが、取得方法は省略します。
  • SSL関連  ※今回は自己署名ですが、作成方法は省略します。
    • SSL証明書
    • 秘密鍵

手順

1. GCPプロジェクトを作成

$ gcloud projects create <project_id>

2. GitLabを構成

  • メニューから[Marketplace]を選択します。

  • "GitLab"を入力して検索します。

  • [GitLab]を選択します。

  • [構成]を選択します。

※1分程、待機します。


プロジェクトに課金アカウントを設定していない場合

  • [課金を有効にする]を選択します。

  • [アカウントを設定]をクリックします。

3. クラスタ作成 & GitLabデプロイ

  • [Create Cluster]を選択します。(asia-northeast1を選択しました。 )

    ※5分程、待機します。

  • [デプロイ]を選択します。


    ※5分程、待機します。

  • 以下の画面が表示されれば、完了です。

4. 起動確認

4-1. クラスタの認証情報を取得

  • デフォルトプロジェクトを設定します。
$ gcloud config set project <project_id>
Updated property [core/project].
  • クラスタの認証情報・エンドポイント情報を取得します。
$ gcloud container clusters get-credentials cluster-1
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster-1.
  • クラスタの認証情報・エンドポイント情報を取得します。
$ gcloud container clusters get-credentials cluster-1
  • 外部IPアドレスを取得します。
$ kubectl get --namespace default ing gitlab-1-unicorn -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
34.84.245.60

4-2. DNS設定

公開用ドメインに上記IPアドレスを設定するために、DNSにAレコードを登録します。
※今回はCloud DNSを利用しましたが、省略します。

<my-fqdn> IN A 34.84.245.60

4-3. パスワードの取得

  • 管理者パスワードを取得します。
$ kubectl get secret \
  --namespace default \
  gitlab-1-gitlab-initial-root-password \
  -ojsonpath={.data.password} \
  | base64 --decode
zQ5oJf9P9TBgKpxbKlOBtqJqIx9YEs2j2K66fGhDhnq9tiCbxg5pPLaHPPA8Mm1y

4-4. SSL設定

  • 作成したSSL証明書・秘密鍵をオプションで指定し、TLSを設定します。
$ kubectl create secret tls \ 
  --namespace default \
  gitlab-1-wildcard-tls \
  --cert=<cert-file> \
  --key=<key-file> \
  --dry-run -o json \
  | kubectl apply -f -

4-5. ログイン

  • ブラウザを起動して、以下のURLにアクセスします。
https://gitlab.<my-fqdn>/
  • ユーザに「root」・パスワードに「先の手順で取得したパスワード」を入力してログインします。