こんばんはエンジニアの眠れない夜です。
GitlabからGKEのKubernetesに接続する方法をご紹介します。
前回作成したクラスタを利用します。
まだクラスタを作成していない人はこちらの記事を参考にクラスタを作ってから読み進めてください。
GitlabからGKEのKubernetesに接続する方法
- プロジェクトの Operations > Kubernetes を選択します。
- Add existings clusterを選択します。
- 赤枠で囲ってある部分の情報を入力していきます。
※ 直ぐに破棄するので分かりやすく伏せ字にしていません。
3番の情報の確認方法についてですが
・cluster name はGKEの画面で確認できます。
・API URL は https://エンドポイント です。
kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}' でも確認できます。
・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」をインストールしましょう。
いかがでしたか?すごく簡単でしたよね。
でも、情報がなくってここにたどり着くまで私は結構苦労しました(;´д`)トホホ…
この記事を読んでくださった方なら3分もあれば接続完了ですですね^^
皆さんの時間が救われれば幸いです。
追記: Helm Tiller インストールエラー
Something went wrong while installing Helm Tiller Installation failed. Check pod logs for install-helm for more details.
というエラーが出てHelmのインストールに失敗しました。
こちらのコマンドを実行して無事に解決しました。
kubectl create clusterrolebinding gitlab-internal-cluster-rule --clusterrole=cluster-admin --serviceaccount=gitlab-managed-apps:default
コメントを残す