Tekton — одно из решений непрерывной интеграции и доставки (CI/CD), встроенных в Kubernetes. Это позволяет разработчикам создавать, тестировать и развертывать в гибридных или частных облаках.
Tekton официально предоставляет больше интерактивных учебных пособий, что позволяет разработчикам напрямую практиковать и применять этот инструмент. Чтобы быстро приступить к работе, нажмите:tekton.dev/try
Предварительные условия:
- Кластер Kubernetes версии 1.15 или выше рекомендуется Tekton Pipeline версии 0.11.0 или выше.
- Для версии кластера Kubernetes ниже 1.15 рекомендуется обновиться, иначе у Tekton проблемы с совместимостью и официальное обслуживание будет непростым.
- Включить управление доступом на основе ролей (RBAC) в кластере
- Предоставляет текущему пользователю права администратора кластера.
- Примечание. Если вы используете Google Kubernetes Engine (GKE), см. инструкции по настройке кластера Kubernetes в кратком руководстве по Kubernetes Engine.По умолчанию в кластерах GKE включен RBAC и по умолчанию поддерживаются постоянные тома (PV), которые необходимо предоставить. для текущего пользователя. Разрешения, пожалуйста, выполните следующую команду, другую среду K8S, пожалуйста, обратитесь к ее руководству по установке: ```` kubectl создать кластерную привязку ролей кластера-администратора \
- -clusterrole=cluster-admin \
- -user=$(gcloud config get-value core/account)
Установить:
- Tekton Pipelines — это основной компонент Tekton, вам нужно всего лишь выполнить следующую команду в кластере k8s, чтобы завершить установку.
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
- Установка займет некоторое время. Чтобы обеспечить нормальное использование службы, убедитесь, что соответствующие компоненты tekton-pipelines находятся в рабочем состоянии. Вы можете использовать следующую команду, чтобы запросить состояние компонентов.
kubectl get pods --namespace tekton-pipelines
Постоянные тома
- Для запуска CI/CD pinelines требуется постоянное хранилище томов для Tekton. По умолчанию Tekton требует 5G дискового пространства. Следует отметить, что на производительность Tekton будет влиять класс хранилища.
Примечание. Вы можете использовать следующую команду, чтобы проверить, доступно ли состояние хранилища.
kubectl get pv
kubectl get storageclasses
- Он может определить параметры своего хранилища, изменив configMAP, используемый Tekton.Если вам нужно изменить размер PV или тип тома хранилища, используемый PV, вам необходимо изменить следующие два параметра в файле config-artifact-pvc.
- Размер: объем данных Размер: например, 10 ДИ
- storageClassName: тип тома хранилища
- Предполагая, что требуется 10Gi дискового пространства и указан класс хранилища для использования вручную, ConfigMap необходимо изменить следующим образом.
kubectl create configmap config-artifact-pvc \ --from-literal=size=10Gi \ --from-literal=storageClassName=manual \ -o yaml -n tekton-pipelines | kubectl replace -f -
- Кроме того, если не указано иное, Tekton будет использовать учетную запись службы по умолчанию в кластере Kubernetes; если вы хотите переопределить этот параметр, обновите свойство default-service-account в ConfigMap config-default:
kubectl create configmap config-defaults \ --from-literal=default-service-account=YOUR-SERVICE-ACCOUNT \ -o yaml -n tekton-pipelines | kubectl replace -f -
Установить интерфейс командной строки (tkn)
- Для удобства рекомендуется установить Tkn CLI вместе с основными компонентами Pinelines, адрес для скачивания:GitHub.com/ExpresstonCD/кроме…(включая основные операционные системы, такие как Mac, Linux, Win и т. д.)
Создайте свой первый рабочий процесс CI/CD с помощью Tekton
-
В Tekton каждая операция рабочего процесса CI/CD становится шагом, который выполняется с использованием настроенного образа контейнера. Затем шаги объединяются в задачи, которые запускаются как модули. Задачи также могут быть дополнительно объединены в Pinelines, а Pinelines может устанавливать порядок выполнения нескольких задач.
-
Для создания Tekton Task необходимо использовать apiVersion: tekton.dev/v1beta1 , Kind: Task для создания объектов в K8S. В следующем файле YAML используется простой шаг для выполнения задачи печати Hello Cloud Native Architect.
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: echo spec: steps: - name: echo image: ubuntu command: - echo args: - "Hello 云原生建筑师!" kubectl apply -f task.yaml
-
Чтобы запустить эту задачу Tekton, вам также необходимо создать объект TaskRun. TaskRun используется для установки Task для выполнения задачи.
-
Объекты TaskRun могут выполняться только с помощью команд tkn или yaml.
tkn task start echo --dry-run apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: getting-started spec: taskRef: name: echo
-
Теперь Tekton выполняет задачу, вы можете использовать следующую команду для просмотра журнала выполнения TaskRun.
tkn taskrun logs getting-started -f
-
После завершения выполнения отобразится результат выполнения.
Hello 云原生建筑师!
Для получения дополнительной информации посетите [Cloud Native Architect].blog.dtcka.com