チュートリアル: Google Kubernetes Engineを使用するようにGitLab Runnerを設定する
このチュートリアルでは、GitLab RunnerをGoogle Kubernetes Engine(GKE)で使用するように設定し、ジョブを実行する方法について説明します。
このチュートリアルでは、GitLab Runnerを設定して、Standard cluster modeでジョブを実行します。
GitLab RunnerをGKEで使用するように設定するには、次の手順に従います:
はじめる前
GitLab RunnerをGKEで使用するように設定する前に、以下を行う必要があります:
- メンテナーロール以上のGitLabプロジェクトが必要です。GitLabプロジェクトがない場合は、作成できます。
- プロジェクトRunner認証トークンを取得。
- GitLab Runnerをインストールします。
環境をセットアップ
GKEでGitLab Runnerを設定および使用するためのツールをインストールします。
- Google Cloud CLIをインストールして設定。Google Cloud CLIを使用して、クラスターに接続します。
- kubectlをインストールして設定。kubectlを使用して、ローカル環境からリモートクラスターと通信します。
クラスターを作成して接続
このステップでは、クラスターを作成して接続する方法について説明します。クラスターに接続すると、kubectlを使用して操作できます。
Google Cloud Platformで、標準クラスターを作成します。
kubectl認証プラグインをインストールします:
gcloud components install gke-gcloud-auth-pluginクラスターに接続します:
gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_LOCATIONクラスターの設定を表示します:
kubectl config viewクラスターに接続されていることを確認します:
kubectl config current-context
Kubernetes Operatorをインストールして設定
これでクラスターができたので、Kubernetes Operatorをインストールして設定する準備ができました。
cert-managerをインストールします。証明書マネージャーが既にインストールされている場合は、このステップをスキップしてください:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yamlOperator Lifecycle Manager(OLM)をインストールします。OLMは、クラスター上で実行されるKubernetes Operatorを管理するツールです:
curl --silent --location "https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.24.0/install.sh" \ | bash -s v0.24.0Kubernetes Operatorをインストールします:
kubectl create -f https://operatorhub.io/install/gitlab-runner-operator.yamlOperator Lifecycle Manager v0.25.0以降のみ。独自の証明書マネージャーを追加するか、
cert-managerを使用します。独自の証明書プロバイダーを追加するには、次の手順に従います:
gitlab-runner-operator.yamlで、env設定で証明書ネームスペースと証明書名を定義します:cat > gitlab-runner-operator.yaml << EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: gitlab-runner-operator namespace: gitlab-ns spec: channel: stable name: gitlab-runner-operator source: operatorhubio-catalog ca: webhook-server-cert sourceNamespace: olm config: env: - name: CERTIFICATE_NAMESPACE value: cert_namespace_desired_value - name: CERTIFICATE_NAME value: cert_name_desired_value EOFgitlab-runner-operator.yamlをKubernetesクラスターに適用します:kubectl apply -f gitlab-runner-operator.yaml
cert-managerを使用するには、次の手順に従います:certificate-issuer-install.yamlを使用して、Operatorのインストールに加えて、デフォルトネームスペースにCertificateとIssuerをインストールします:cat > certificate-issuer-install.yaml << EOF apiVersion: v1 kind: Namespace metadata: labels: app.kubernetes.io/component: controller-manager app.kubernetes.io/managed-by: olm app.kubernetes.io/name: gitlab-runner-operator name: gitlab-runner-system --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: gitlab-runner-serving-cert namespace: gitlab-runner-system spec: dnsNames: - gitlab-runner-webhook-service.gitlab-runner-system.svc - gitlab-runner-webhook-service.gitlab-runner-system.svc.cluster.local issuerRef: kind: Issuer name: gitlab-runner-selfsigned-issuer secretName: webhook-server-cert --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: gitlab-runner-selfsigned-issuer namespace: gitlab-runner-system spec: selfSigned: {} EOFcertificate-issuer-install.yamlをKubernetesクラスターに適用します:kubectl create -f certificate-issuer-install.yaml
GitLabプロジェクトから
runner-registration-tokenを含むシークレットを作成します:cat > gitlab-runner-secret.yml << EOF apiVersion: v1 kind: Secret metadata: name: gitlab-runner-secret type: Opaque stringData: runner-token: YOUR_RUNNER_AUTHENTICATION_TOKEN EOFシークレットを適用します:
kubectl apply -f gitlab-runner-secret.ymlカスタムリソース定義ファイルを作成し、次の情報を含めます:
cat > gitlab-runner.yml << EOF apiVersion: apps.gitlab.com/v1beta2 kind: Runner metadata: name: gitlab-runner spec: gitlabUrl: https://gitlab.example.com buildImage: alpine token: gitlab-runner-secret EOFカスタムリソース定義ファイルを適用します:
kubectl apply -f gitlab-runner.yml
以上です。GitLab RunnerをGKEで使用するように設定しました。次の手順では、設定が機能しているかどうかを確認できます。
設定を確認
RunnerがGKEクラスターで実行されているかどうかを確認するには、次のいずれかの方法があります:
次のコマンドを使用します:
kubectl get pods次の出力が表示されます。これは、RunnerがGKEクラスターで実行されていることを示しています:
NAME READY STATUS RESTARTS AGE gitlab-runner-hash-short_hash 1/1 Running 0 5mGitLabでジョブログを確認します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、ビルド > ジョブを選択して、ジョブを見つけます。
- ジョブログを表示するには、ジョブステータスを選択します。