Tekton是Kubernetes原生的持续集成和交付(CI/CD)解决方案之一。它允许开发人员在混合云或私有云中进行构建、测试和部署
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=$(gcloud config get-value core/account)
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
kubectl get pods --namespace tekton-pipelines
注: 可使用如下命令检查存储状态是否可用
kubectl get pv kubectl get storageclasses
kubectl create configmap config-artifact-pvc \ --from-literal=size=10Gi \ --from-literal=storageClassName=manual \ -o yaml -n tekton-pipelines | kubectl replace -f -
kubectl create configmap config-defaults \ --from-literal=default-service-account=YOUR-SERVICE-ACCOUNT \ -o yaml -n tekton-pipelines | kubectl replace -f -
使用Tekton,CI/CD 工作流中的每个操作都会变成一个 Step,使用设定好的容器镜像执行该 Step。然后将 Step 聚合到 Task 中,Task 则以 pod 的形式运行。也可以进一步将 Task 聚合到 Pinelines 中,Pinelines可以设定多个 Task 的执行顺序。
创建Tekton Task,需要使用 apiVersion: tekton.dev/v1beta1 , Kind: Task来创建K8S中的对象。下面的YAML文件用一个简单的 Step 来执行打印Hello 云原生建筑师的 Task。
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: echo spec: steps: - name: echo image: ubuntu command: - echo args: - "Hello 云原生建筑师!" kubectl apply -f task.yaml
tkn task start echo --dry-run apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: getting-started spec: taskRef: name: echo
tkn taskrun logs getting-started -f
Hello 云原生建筑师!