《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证
Tekton 简介
Tekton,最初被称为Knative Build,但作为自己的开源项目分离出来,有自己的管理组织。Tekton试图填补集群内容器镜像构建和部署工作流程的空白,即持续集成(CI)和持续交付(CD)。Tekton的理念围绕三个方面展开:
容器
Tekton的座右铭是Kubernetes原生。容器是任何Kubernetes集群的核心,Tekton为容器化应用程序的构建、测试和部署进行了优化。此外,Tekton的要素(如任务和管道)是作为自定义资源定义实现的,你的管道是一个简单的YAML资源文件。
无服务器
如前所述,Tekton最初是Knative的一部分,以前被称为Knative Build。Knative Build后来被废弃了,资源被整合到Tekton项目上工作。作为Knative的后代,Tekton有一些有趣的DNA,因为它作为无服务器CI/CD解决方案运行,不需要任何需要持续管理和维护的中央服务/引擎。Tekton的 "主人 "就是Kubernetes本身,因为它是以一系列CRD及其支持控制器的形式实现的。
DevOps
CI/CD需要DevOps,Tekton是为分布式协作团队以及微服务或更传统的单体应用架构而构建的。
安装OpenShift Pipelines Operator
通过控制台安装
- 用集群管理员身份登录OpenShift控制台,进入“管理员”视图。
- 通过菜单进入Operators–>OpeartorHub。
- 查找到“OpenShift Pipelines Operator”,并点击进入。
- 在“OpenShift Pipelines Operator”介绍界面中点击“安装”。
- 在“安装 Operator”界面中接受缺省选项,点击“安装”。
- 安装好后会显示以下
- 此时在控制台的“管理员”和“开发者”视图中都可以看到新增加的“管道”菜单。
通过命令安装
- 执行命令安装Openshift Pipelines Operator
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: openshift-pipelines-operator
namespace: openshift-operators
spec:
channel: stable
name: openshift-pipelines-operator-rh
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
- 执行命令确认安装进度。
$ until oc api-resources --api-group=tekton.dev | grep tekton.dev &> /dev/null
do
echo "Operator installation in progress..."
sleep 5
done
echo "Operator ready"
环境验证
- 查看安装后查看和Tekton相关API。
$ oc api-resources --api-group=tekton.dev
NAME SHORTNAMES APIVERSION NAMESPACED KIND
clustertasks tekton.dev/v1beta1 false ClusterTask
conditions tekton.dev/v1alpha1 true Condition
pipelineresources tekton.dev/v1alpha1 true PipelineResource
pipelineruns pr,prs tekton.dev/v1beta1 true PipelineRun
pipelines tekton.dev/v1beta1 true Pipeline
runs tekton.dev/v1alpha1 true Run
taskruns tr,trs tekton.dev/v1beta1 true TaskRun
tasks tekton.dev/v1beta1 true Task
- 安装OpenShift Pipelines Operator后会自动创建openshift-pipelines项目,并在其中运行了以下Pod。
$ oc get pod -n openshift-pipelines
NAME READY STATUS RESTARTS AGE
tekton-operator-proxy-webhook-66cf98c74f-mrxtj 1/1 Running 0 4m30s
tekton-pipelines-controller-5576c76c55-csxh8 1/1 Running 0 4m31s
tekton-pipelines-webhook-55587d564d-b5rgj 1/1 Running 0 4m31s
tekton-triggers-controller-665d7768f4-c7ftj 1/1 Running 0 4m3s
tekton-triggers-core-interceptors-bb78d75d9-fbf64 1/1 Running 0 3m59s
tekton-triggers-webhook-86f7674d9c-mw5v5 1/1 Running 0 4m4s
- “openshift-pipelines”项目下的ConfigMap对象是管道运行的系统参数。
$ oc get cm -n openshift-pipelines
NAME DATA AGE
config-artifact-bucket 0 2d3h
config-artifact-pvc 0 2d3h
config-defaults 2 2d3h
config-leader-election 3 2d3h
config-logging 3 2d3h
config-logging-triggers 4 2d3h
config-observability 1 2d3h
config-observability-triggers 1 2d3h
config-registry-cert 0 2d3h
config-service-cabundle 1 2d3h
config-trusted-cabundle 1 2d3h
feature-flags 9 2d3h
kube-root-ca.crt 1 2d3h
openshift-service-ca.crt 1 2d3h
安装Tekton客户端
- 在“安装的Operators”中进入“Red Hat OpenShift Pipelines”,在“详情”页面下方个根据下图提示下载“tkn”客户端。
- 或者执行以下命令下载Tekton客户端。
$ curl -L https://github.com/tektoncd/cli/releases/download/v0.20.0/tkn_0.20.0_Linux_x86_64.tar.gz | tar -xzf -
$ mv tkn /usr/bin/