Tekton Pipelineを触ってみた on GKE Autopilot

16441 ワード

はじめに

Tekton PipelineというCI/CDツールがあります。これは元々KNative Buildとして開発されていたk8sネイティブのCIです。

またKNativeは元々Googleが始めたOSSプロジェクトでGoogleのCloud Run等の元になっているプロダクトでもあります。そのせいかTektonもどことなくCloud Buildに似ている気がします。k8sがあればオンプレミスからクラウド、ローカル環境までどこでも動くのとスケールが簡単そうなのが大きな魅力です。

なんとなく手慣れたCloudBuildに似てるし、ちょっと興味があったのでGKE Autopilotを使ってとりあえず環境構築してみました

GKE Autopilotを構築

環境準備

それではGKEをAutopilotで構築します。ちなみに手元の環境はWindows 11 + WSL2 + Ubuntuです。

まず、こちらを参考にCloud SDKをインストールします。
続いてkubectlをインストールします。

sudo apt-get install kubectl

これでローカル環境の準備は整ったのでGCPにGKEクラスタ作成の準備をします。

gcloud services enable container.googleapis.com
gcloud services enable containerregistry.googleapis.com

クラスタの構築

クラスタ名をmycluster, リージョンをus-central1にしています。好みの名前を選べばOKです。clusters create-autoでautopilotになります。NodeはGoogleの管理課で運用されるのでPod数等に応じて自動的に最適化されます。

PROJECT_ID=$(gcloud config configurations list | grep True | awk '{print $4}')
CLUSTER=mycluster
REGION=us-central1

gcloud container clusters create-auto mycluster --create-subnetwork name=gke --region us-central1
gcloud container clusters get-credentials $CLUSTER --region $REGION --project $PROJECT_ID
gcloud auth configure-docker

とりあえず、何か適当なコンテナをデプロイしてみます。

$ kubectl create deployment mycluster --image=hello-world
$ kubectl get pods -w
NAME                         READY   STATUS    RESTARTS   AGE
mycluster-64d6548b76-9m4b4   0/1     Pending   0          10s
$ $ kubectl get nodes
NAME                                       STATUS     ROLES    AGE    VERSION
gk3-mycluster-default-pool-293f6faa-ccqv   Ready      <none>   4m1s   v1.21.6-gke.1500
gk3-mycluster-default-pool-8c110b9e-fgpw   NotReady   <none>   3s     v1.21.6-gke.1500
gk3-mycluster-default-pool-8c110b9e-lqsw   Ready      <none>   4m1s   v1.21.6-gke.1500

nodeがよしなに作られているのが分かりますね。PodのステータスがCompletedになったらログを確認してみます。

$ kubectl logs pod/mycluster-64d6548b76-9m4b4

Hello from Docker!
This message shows that your installation appears to be working correctly.
~ 略

無事にHello Worldが出力されていますね。これでGKE Autopilotの構築及び基本的な動作確認は完了です。

Tektonのインストール

Tektonには複数のプロダクトがありますが、今回はメインとなるTekton Pipelineと管理ツールであるTekton CLI、Web UIであるTekton Dashboardをインストールします。

Pipelineのインストール

まずは下記を参考にPipelineのインストールを行います。