【KubernetesでCI/CD】Tektonとは

はじめに

KubernetesでCI/CDができるTektonについてどんなものなのかローカルで使うために何をしたらいいのかまとめました。

ローカル上でKubernetesが動いていることが前提となっています。今回はDocker DesktopでKubernetesを動かしています。

【Kubernetes初めの一歩】Kubernetesって何?
はじめにKubernetesについて、これから勉強を始める人向けに「Kubernetesって何?」や「そもそもなんて読むの?k8sは?」みたいな基本的なことを簡単にまとめます。KubernetesとはKubernetesとは、コンテナ...

Tektonとは

Tektonとは、KubernetesネイティブなCI/CDパイプラインを構築するためのソリューションです。

Tekton
Cloud Native CI/CD

TektonはKubernetesクラスタ上にインストール・実行され、インストールするとkubectlでTektonが使えるようになります。

Tektonは以下のコンポーネントからなります。

  • Tekton Pipelines: CI/CDパイプラインを可能にするTektonの基礎
  • Tekton Triggers: CI/CDのイベントトリガー
  • Tekton CLI: Tektonを操作するコマンドラインインターフェース
  • Tekton Dashboard: パイプライン向けのダッシュボード
  • Tekton Catalog: TaskやPipelineなどのリポジトリ
  • Tekton Hub: Tekton CatalogのWebUI
  • Tekton Operator: Tektonツールの追加や更新などを管理

Tektonを始める

実際にTektonをローカルで使えるようにしていきます。

前提として、Docker DesktopやMinikubeでKubernetesをローカルで動かしておきます。

Tekton Operatorでインストール

Tekton Operatorを使ってPipelines、Triggers、Dashboardを簡単にインストールできます。

まずは、Operatorをインストールします。

❯ kubectl apply -f https://storage.googleapis.com/tekton-releases/operator/latest/release.yaml
namespace/tekton-operator created
customresourcedefinition.apiextensions.k8s.io/tektonconfigs.operator.tekton.dev created
customresourcedefinition.apiextensions.k8s.io/tektondashboards.operator.tekton.dev created
customresourcedefinition.apiextensions.k8s.io/tektoninstallersets.operator.tekton.dev created
customresourcedefinition.apiextensions.k8s.io/tektonpipelines.operator.tekton.dev created
customresourcedefinition.apiextensions.k8s.io/tektonresults.operator.tekton.dev created
customresourcedefinition.apiextensions.k8s.io/tektontriggers.operator.tekton.dev created
mutatingwebhookconfiguration.admissionregistration.k8s.io/webhook.operator.tekton.dev created
serviceaccount/tekton-operator created
clusterrole.rbac.authorization.k8s.io/tekton-operator created
clusterrolebinding.rbac.authorization.k8s.io/tekton-operator created
configmap/config-logging created
configmap/tekton-config-defaults created
configmap/tekton-config-observability created
secret/tekton-operator-webhook-certs created
service/tekton-operator created
service/tekton-operator-webhook created
deployment.apps/tekton-operator created
deployment.apps/tekton-operator-webhook created
validatingwebhookconfiguration.admissionregistration.k8s.io/config.webhook.operator.tekton.dev created
validatingwebhookconfiguration.admissionregistration.k8s.io/validation.webhook.operator.tekton.dev created

次にコンポーネントをインストールします。

allの部分をlitebasicにすることでインストールされるコンポーネントが変わります。

❯ kubectl apply -f https://raw.githubusercontent.com/tektoncd/operator/main/config/crs/kubernetes/config/all/operator_v1alpha1_config_cr.yaml
tektonconfig.operator.tekton.dev/config configured

インストールするコンポーネントを変える場合は再度実行します。

❯ kubectl apply -f https://raw.githubusercontent.com/tektoncd/operator/main/config/crs/kubernetes/config/lite/operator_v1alpha1_config_cr.yaml
tektonconfig.operator.tekton.dev/config configured

以上で準備完了です。

Tekton CLIをインストール

次にTekton CLIをインストールします。

❯ brew tap tektoncd/tools

❯ brew install tektoncd/tools/tektoncd-cli

まとめ

  • TektonはKubernetesネイティブなCI/CDソリューション

参考

タイトルとURLをコピーしました