GitlabからGKEのKubernetesに接続する方法

GitlabからGKEのKubernetesに接続する方法

こんばんはエンジニアの眠れない夜です。

GitlabからGKEのKubernetesに接続する方法をご紹介します。

前回作成したクラスタを利用します。

まだクラスタを作成していない人はこちらの記事を参考にクラスタを作ってから読み進めてください。

GKEで最安値のKubernetesクラスタを作る方法

GitlabからGKEのKubernetesに接続する方法

  1. プロジェクトの Operations > Kubernetes を選択します。
  2. Add existings clusterを選択します。
  3. 赤枠で囲ってある部分の情報を入力していきます。

GitlabからGKEのKubernetesに接続する方法

※ 直ぐに破棄するので分かりやすく伏せ字にしていません。

3番の情報の確認方法についてですが

・cluster name  はGKEの画面で確認できます。
・API URL は https://エンドポイント です。

kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}' でも確認できます。

kubernetes設定API TOKEN取得方法

 

・Token を作成するにはまず、サービスアカウントを登録します。

ターミナルで下記を実行します。

kubectl create -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab
namespace: default
EOF

 

続いてこちらも実行します。

kubectl create -f - <<EOF
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: gitlab-cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
EOF

 

2つのコマンドを実行したら kubectl get secrets を実行します。

NAME TYPE DATA AGE
default-token-xxxx kubernetes.io/service-account-token 3 52m
gitlab-token-xxxx kubernetes.io/service-account-token 3 1m

 

続いてこちらを実行します。<SECRET_NAME>のところはgitlab-token-xxxxに置き換えます。

kubectl get secret <SECRET_NAME> -o jsonpath=”{[‘data’][‘token’]}” | base64 -D

これでTokenが発行されます。

 

続いて、

・CA Certificate は下記を先程と同じく<SECRET_NAME>を gitlab-token-xxxx に置き換えて実行するとCA Certificateが表示されます。

kubectl get secret <SECRET_NAME> -o jsonpath="{['data']['ca\.crt']}" | base64 -D
を実行します。

 

あとは、「Add Kubernetes cluster」をクリックすれば接続完了です!

こんな画面が表示されるので「Helm Tiller」をインストールしましょう。

Gitlabでインストール

 

いかがでしたか?すごく簡単でしたよね。

でも、情報がなくってここにたどり着くまで私は結構苦労しました(;´д`)トホホ…

この記事を読んでくださった方なら3分もあれば接続完了ですですね^^

皆さんの時間が救われれば幸いです。


追記: Helm Tiller インストールエラー

Something went wrong while installing Helm Tiller

Installation failed. Check pod logs for install-helm for more details.

 

というエラーが出てHelmのインストールに失敗しました。

Something went wrong while installing Helm Tiller

こちらのコマンドを実行して無事に解決しました。

kubectl create clusterrolebinding gitlab-internal-cluster-rule --clusterrole=cluster-admin --serviceaccount=gitlab-managed-apps:default

 

User "system:serviceaccount:gitlab-managed-apps:default" cannot create deployments.extensions in the namespace "gitlab-managed-apps"

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください