Cloud Native | Инструмент CI/CD нового поколения, Руководство по началу работы с Tekton
Cloud Native | Инструмент CI/CD нового поколения, Руководство по началу работы с Tekton
Данная статья является оригинальной статьей автора,В целях уважения результатов труда автора несанкционированное воспроизведение запрещено.,Если вам нужно перепечатать, пожалуйстасуществовать【Руководство по обучению полнофункционального инженера】Оставьте сообщение в публичном аккаунте или отправьте электронное письмо на адрес [master@weiyigeek.top] середина Отвечу оперативно.

0x00 Быстрый старт

1.Что такое Тектон?

историческая справка Tekton Предшественник Knative подпроекты build-pipeline,В основном используется для Kantive из build Модуль добавлен pipeline После того, как функция станет независимой, конечная цель Tekton — стать универсальным CI/CD инструмент.

В настоящее время доля рынка частных облаков относительно высока. CICD пара инструментов Kubernetes поддерживаются, например Jenkins、GitLab CI。нода Этиинструмент Толькода Воля Kubernetes как его расширение из аспекта, Kubernetes как Новое из инфраструктуры, родное из необходимого CICD план. С другой стороны, Дженкинс подпроекты JenkinsX Также начал использоваться по умолчанию Tekton как CI двигатель. Использовать облачную среду CRD (тип встроенного ресурса Kubernetes,Прямо сейчаспользовательский ресурсиз Определения) + Controller Понимать Tekton , нет сомнений, что есть шанс стать облачным роднойиз Основной механизм оркестровки.

Краткое введение описывать: Tekton даан с открытым исходным кодом родной Непрерывная интеграция и непрерывная доставка/развертывание【Cloud Native CI/CD] раствор,Разрабатывайте с использованием языка Golang, который позволяет разработчикам быстро и гибко определять конвейеры через облачную платформу K8S.,Это облегчает постройку、тестиразвертыватьсистема,В настоящее время да управляется CD Foundation [https://cd.foundation/] из проекта.,Он следует лучшим практикам OpenSSF.

Добрые советы: Эта глава представляет собой первое введение в GitOpsсерединаизTekton. Автор продолжит обновлять Tekton+ArgoCD в будущем. В сочетании с практическими руководствами Tekton Больше внимания уделяйте строительству CI/CD Трубопровод, Арго КД Больше внимания уделяется управлению приложениями и развертыванию, надеюсь, вы будете уделять больше внимания на【Руководство по обучению полнофункционального инженера】,автор ВоляПубликуйте больше оригинальных статей

Адрес официального сайта Tekton: https://tekton.dev/

2.Для чего используется Тектон?

описывать: представленный ранее Tekton В основном используется длясуществоватьоблачный среда родной архитектуры середина завершает части CI и CD,В основном используется инженерами и разработчиками dadevops.,Его фокус должен бытьдасуществоватьоблачный родной Микросервисные приложения, а также традиционные приложенияизCIО непрерывной интеграции,

используется в дополнение к tekton из Преимущества заключаются в следующем

  • портативность: Кроссплатформенность, язык, и Среда развертывания. это относится к Jenkins、Jenkins X、Skaffold、 Knative и Многие другие популярные из CI/CD инструмент.
  • Настраиваемый: Tekton Entity, полностью настраиваемый.,Таким образом, он обладает высокой степенью гибкости. Инженеры платформы могут очень подробно определить базовый каталог сборки.,Для разработчиков существуют для использования в различных ситуациях
  • Многоразовый: Tekton Entity полностью портативен,Итак, однажды определившись,Любой сотрудник организации может использовать данный конвейер и повторно использовать его строительные блоки. Это позволяет разработчикам быстро создавать сложные конвейеры.,Не нужно «изобретать велосипед».
  • Расширяемый: Тектон CatalogдаTektonуправляемый сообществомизрепозиторий。Вы можете использоватьTektonОглавлениесерединаиз Быстрое изготовление сборных компонентовсоздаватьновыйизи расширить существующий трубопровод。
  • Стандартизация: Тектон существует как расширение, установленное и работающее в вашем кластере Kubernetes и использующее зрелые версии Kubernetes модель ресурсов, Его рабочая нагрузка составляет Kubernetes Выполнить внутри контейнера.
  • Масштабируемость. Чтобы увеличить пропускную способность рабочей нагрузки, вы можете просто добавлять узлы в кластер, и Tekton масштабируется вместе с кластером без необходимости переопределять распределение ресурсов или вносить какие-либо другие изменения в конвейер.

3. Знакомство с компонентами Tekton

  • Tekton Pipelines:Tekton изFundamentals, который определяет набор пользовательских ресурсов Kubernetes, которые действуют как строительные блоки, из которых можно собрать конвейер CI/CD.
  • Tekton Триггеры: Разрешить на основе event Создать экземпляр трубопровод. Например, вы можете запускать конвейер «Создать» каждый раз при слиянии репозитория PRиGitHub. выполнение экземпляра.
  • Tekton Кли: Это Тектон Pipelines — это графический веб-интерфейс для отображения информации о выполнении конвейера. В настоящее время занимаюсь существованием середина.
  • Tekton Панель управления: Тектон Pipelines — это графический веб-интерфейс для отображения информации о выполнении конвейера.
  • Tekton Каталог: да Репозиторий высококачественных строительных блоков Tekton (задачи, конвейеры и т. д.), созданных сообществом, которые можно использовать в ваших собственных конвейерах.
  • Tekton Хаб: на основе графического интерфейса Webиз для доступа к Tekton. Catalog。
  • Tekton Оператор: это Kubernetes Режим оператора позволяет устанавливать, обновлять и удалять проекты Tekton в кластере Kubernete.
  • Tekton Chain : Использование Тектона Конвейеры создают артефакты для обеспечения генерации, хранения и маркировки происхождения инструментов.

4. Терминология концепции Tekton.

Tekton Pipelines серединасамое важноеизпять концепций:TaskTaskRunPipelinePipelineRunPipelineResources(ужесуществоватьv0.44версия была отвергнута,Вот краткое введение).

  • Task:Tekton серединаиз Наименьшая единица, представляющая собой шаблон задачи, включающий несколько шагов. Определите упорядоченный шаг и каждый Step позвоните конкретному существующий инструмент строится на определенном наборе входных данных и производит определенный набор выходных данных, которые могут быть использованы в качестве следующих входных данных. Step。
  • TaskRun:Создать конкретный экземпляр из Task существует определенный набор входных данных и генерирует определенный набор выходных данных, а TaskRun создам перепишусяиз Под,каждый step переписываться pod серединаизодин container。
  • Pipeline:Tekton в серии заказанных Task Он формирует направленный ациклический граф и определяет шаблон конвейера.
  • PipelineRun:Pipeline Вам необходимо определить PipelineRun,как конвейер из примера,Создайте запись конвейера.
  • PipelineResource(ужевыброшенный):Процесс выполнения конвейерасерединануждатьсяиз Информация о ресурсе。

Пример диаграммы выполнения шагов, задач и конвейеров

  • существовать Step середина Определение рабочего процесса CI/CD может завершить определенный этап операций, таких как извлечение кода, компиляция и сборка программ Java, создание образов и развертывание приложений, Tekton Обычно для каждого этапа создается Контейнер.
  • существовать Task середина расположен в порядке Step из коллекции, определяющей общую среду тома Kubernetes, Tekton to Kubernetes Подиз формирует запущенную задачу, и каждый шаг ее середина становится работающим контейнером подсередина.
  • существовать Pipelines серединарасположен в порядке Task из коллекции, Тектон Соберите все задачи, подключите их к направленному ациклическому графу (DAG) середина и выполняйте их один за другим по порядку. Другими словами, он создает множество Kubernetes. модули и убедитесь, что каждый модуль работает успешно, как требуется.

Добрые советы: Задача(Tasks)итрубопровод(Pipelines)обозначен какKubernetesкластерсерединаиз Пользовательские ресурсы(CRD)。 Расширение знаний: Task、Pipeline Когда они используются?

Task - Подходит для более простыхизрабочая нагрузка,НапримерЗапустите тесты, проверьте или создайте кэш Kaniko., Task Выполнить в одном Kubernetes Поды, использующие один диск, обычно остаются простыми. Pipeline - Подходит для сложныхизрабочая нагрузка,Напримерстатический анализ,А также тестирование, построение и развертывание комплекса из проектов.

Пример диаграммы запуска TaskRuns и PipelineRuns

  • pipelineRuns да Pipeline запись изExecution, которая может инициировать выполнение Pipeline Прямо сейчас Рабочий процесс CI/CD,Каждое выполнение станет серединным отслеживаемым ресурсом кластера Kubernetes изpipelineRun.
  • TaskRuns да Task из Специальное исполнение, Когда вы выбираете существование трубопровода Это очень полезно при запуске задачи вне приложения. Оно позволяет просматривать детали выполнения каждого шага задачи.

Краткое изложение знаний: TaskRuns и PipelineRuns Запустите ресурс с помощью Task и Pipeline Для подключения запуск должен включать фактический адрес ресурса, например URL-адрес репозитория, задачу или требование конвейера, что позволяет разработчикам повторно использовать его для различных входных и выходных данных. Task или Pipeline.

Добрые советы: Вы можете создать его вручную taskRunилиpipelineRunsи через Tekton Triggers Автоматически запускайте Tekton для немедленного запуска задачи или конвейера.

5.Как использовать Тектон?

описывать: В этом разделе будет объяснено Tekton Как его изучить и использовать, мы можем обратиться к официальным изTask, Pipeline и Tekton. Примеры триггеров для вводного обучения и быстрого старта: https://tekton.dev/docs/getting-started/

Второе — обратиться к Тектону. Проект Github серединаизTask, Taskrun, Pipeline, Pipeline и подключенный том, Step Примеры расширенных примеров, таких как хранение результатов, доступны по адресу: https://github.com/tektoncd/pipeline/tree/main/examples

Наконец, обратитесь к Tekton Hubсерединаиз часто используемый скрипт изTask,Помогите зрителям быстро начать работу.,После того, как вы с ним ознакомитесь, вы сможете позже написать свою собственную задачу.,Затем используйте Pipeline для настройки комбинации конвейеров.,Адрес: https://hub.tekton.dev.

До сих пор,Мы можем быстро научиться использовать его, воспользовавшись приведенным выше сайтом середина.,И примените существование к вашей внутренней среде GitOps середина.


0x01 Установка и развертывание

Среда развертывания

Тестовая среда и описание версии:

Язык кода:javascript
копировать
# K8S Высокодоступный узел кластера x 4
Версия выпуска системы: Ubuntu 20.04 
Kubernetes v1.23.17
Tekton -> Pipelines v0.44.4 | Triggers v0.22.2 | Dashboard v0.35.1

Практика развертывания

Развертывание компонентов Tekton

pipeline

описывать: Tekton Pipelines Проект обеспечивает k8s Стиль ресурсов используется для объявлений. CI/CD Стиль из трубы. Тектон Pipelines МожетразвертыватьлюбомуизK8Sкластер,Задачи конвейерного серединаиз могут выполняться независимо,Ресурсы хранилища Git могут легко взаимодействовать друг с другом.

Адрес проекта: https://github.com/tektoncd/pipeline/releases

Добрые советы: Для разных версий Kubernetes требуется разный Tekton. Версия Pipelines, вам следует проверить официальную документацию. Required Kubernetes Version глава, Например, окружение автора k8s на данный момент такое: Следует выбрать версию v1.23.x v0.41.x <= Дополнительный диапазон <v0.45.xмеждуиз Версия 。

Язык кода:javascript
копировать
v0.24.x release of Tekton: Kubernetes version 1.18 or later
v0.27.x release of Tekton: Kubernetes version 1.19 or later
v0.30.x release of Tekton: Kubernetes version 1.20 or later
v0.33.x release of Tekton: Kubernetes version 1.21 or later
v0.39.x release of Tekton: Kubernetes version 1.22 or later
v0.41.x release of Tekton: Kubernetes version 1.23 or later
v0.45.x release of Tekton: Kubernetes version 1.24 or later

Добрые советы: Pipelines v0.44.4 | Triggers v0.22.2 | Dashboard v0.35.1 Версию из связанных изображений можно скачать с сайта существующего автора dockerHubсередина, адрес https://hub.docker.com/r/weiyigeek/


Рассказать тебе по секрету?Комплексное обучение компьютерных специалистов】Апплет WeChatужеоткрыть

Просматривать статьи блоггера можно прямо в WeChat. В будущем будут опубликованы еще больше интересных статей.


Этапы установки Шаг 1. Загрузите список развертывания ресурсов конвейера tektoncd.

Язык кода:javascript
копировать
mkdir -vp /storage/dev/webapp/tekton-pipelines/Tekton
cd /storage/dev/webapp/tekton-pipelines/Tekton
curl -Ls https://github.com/tektoncd/pipeline/releases/download/v0.44.4/release.yaml -o TektonCD-Pipelines.yaml

Step 2. Используйте статью автора【 Как использовать GitHub Action элегантно синхронизирует сторонние изображения с DockerHub или частными складами. 】Статья из метода[ https://mp.weixin.qq.com/s/0STtKrlgYqpoqwMgb0QnoA],Используйте действие Github, чтобы переместить указанный образ в наш изDockerHubсередина или частное хранилище образов середина.,Выполните следующим образомShellСкрипт СтроитьskopeoКоманды синхронизации и замены Список ресурсовсередина Похожие изображения。

Язык кода:javascript
копировать
DOCKER_USERHUB=weiyigeek/tektoncd-pipeline-
grep "image: " TektonCD-Pipelines.yaml | cut -f 2,3 -d ":" | cut -f 1 -d "@" > TektonCD-Pipelines-image.txt
grep "git-image" TektonCD-Pipelines.yaml | sed -e "s#,#\n#g" -e 's/"//g' | grep "gcr.io" | cut -f 1 -d "@" >> TektonCD-Pipelines-image.txt
for i in `cat TektonCD-Pipelines-image.txt`;do
  echo  skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
  sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Pipelines.yaml
done

Результат выполнения:

Язык кода:javascript
копировать
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.44.4 docker://weiyigeek/tektoncd-pipeline-controller:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.44.4 docker://weiyigeek/tektoncd-pipeline-resolvers:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.44.4 docker://weiyigeek/tektoncd-pipeline-webhook:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.44.4 docker://weiyigeek/tektoncd-pipeline-git-init:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.44.4 docker://weiyigeek/tektoncd-pipeline-entrypoint:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.44.4 docker://weiyigeek/tektoncd-pipeline-nop:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/sidecarlogresults:v0.44.4 docker://weiyigeek/tektoncd-pipeline-sidecarlogresults:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter:v0.44.4 docker://weiyigeek/tektoncd-pipeline-imagedigestexporter:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/pullrequest-init:v0.44.4 docker://weiyigeek/tektoncd-pipeline-pullrequest-init:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/workingdirinit:v0.44.4 docker://weiyigeek/tektoncd-pipeline-workingdirinit:v0.44.4

Адрес проекта на Github (можете форкнуть, а потом менять проект самостоятельно серединаизсекретс Прямо сейчас Может): https://github.com/WeiyiGeek/action-sync-images/ , поместите приведенные выше результаты выполнения в рабочий процесс, показанный на рисунке ниже.

Шаг 3. Развертывание Tekton Pipelines

Язык кода:javascript
копировать
# развертывать Tekton-Pipelines
kubectl apply -f TektonCD-Pipelines.yaml

# Просмотр статуса модуля (создается по умолчанию tekton-pipelines и tekton-pipelines-resolvers два пространства имен )
kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-pipelines
  # NAME                                           READY   STATUS    RESTARTS   AGE
  # tekton-pipelines-controller-568fdb7466-dsddr   1/1     Running   0          5m
  # tekton-pipelines-webhook-7f7cc7d4d6-4tsmb      1/1     Running   0          5m

kubectl get pods --namespace tekton-pipelines-resolvers -l app.kubernetes.io/part-of=tekton-pipelines
  # NAME                                                 READY   STATUS    RESTARTS   AGE
  # tekton-pipelines-remote-resolvers-7b4bc78db5-rwj5j   1/1     Running   0          5m

Результат выполнения:

Язык кода:javascript
копировать
Monitor the installation:
kubectl get pods --namespace tekton-pipelines --watch
When all components show 1/1 under the READY column, the installation is complete. Hit Ctrl + C to stop monitoring.

# Если других ошибок нет, все модули в пространстве имен tekton-pipelines запущены и отображается следующее приглашение, установка прошла успешно.
Congratulations! You have successfully installed Tekton Pipelines on your Kubernetes cluster.


triggers

описываю: Tekton Triggersда Контроллер определения пользовательского ресурса Kubernetes (CRD),Это позволяет вам базировать полезную нагрузку событий изсерединаизвлекатьизинформациясоздаватьKuberneteресурс。

Адрес проекта: https://github.com/tektoncd/triggers Документация по установке: https://tekton.dev/docs/installation/triggers/.

Добрые советы: То же самое из,Для разных версий Kubernetes требуется разный Tekton. версию триггеров, вам следует проверить официальную документацию Required Kubernetes Version глава, Например, окружение автора k8s на данный момент такое: Следует выбрать версию v1.23.xv0.22.xиз Версия 。

Язык кода:javascript
копировать
v0.23.x release of Triggers: Kubernetes version 1.24 or later
v0.22.x release of Triggers: Kubernetes version 1.23 or later
v0.21.x release of Triggers: Kubernetes version 1.22 or later

Этапы установки Step 1. Скачать с официального сайта tekton-triggers необходимыйиз Список ресурсов。

Язык кода:javascript
копировать
curl -ls https://storage.googleapis.com/tekton-releases/triggers/previous/v0.22.2/release.yaml -o TektonCD-Triggers.yaml
curl -ls https://storage.googleapis.com/tekton-releases/triggers/previous/v0.22.2/interceptors.yaml -o TektonCD-Triggers-interceptors.yaml

Step 2. Так же, как и шаг 2 установки конвейеров, автор использует эту статью [ Как использовать GitHub Action элегантно синхронизирует сторонние изображения с DockerHub или частными складами.】Статья из метода[https://mp.weixin.qq.com/s/0STtKrlgYqpoqwMgb0QnoA],Используйте действие Github, чтобы переместить указанный образ в наш изDockerHubсередина или частное хранилище образов середина.,Выполните следующим образомShellСкрипт СтроитьskopeoКоманды синхронизации и замены Список ресурсовсередина Похожие изображения。

Язык кода:javascript
копировать
DOCKER_USERHUB=weiyigeek/tektoncd-triggers-
grep "image: " TektonCD-Triggers.yaml TektonCD-Triggers-interceptors.yaml | cut -f 3,4 -d ":" | cut -f 1 -d "@" | tr -d '"'> TektonCD-triggers-image.txt
grep '-el-image' TektonCD-Triggers.yaml | sed -e "s#,#\n#g" -e 's/"//g' | grep "gcr.io" | cut -f 1 -d "@" >> TektonCD-triggers-image.txt
for i in `cat TektonCD-triggers-image.txt`;do
  echo  skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
  if [[ $(echo ${i} | grep -c "interceptors") -gt 0 ]];then
    sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Triggers-interceptors.yaml
  else
    sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Triggers.yaml
  fi
done

Результат выполнения:

Язык кода:javascript
копировать
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/controller:v0.22.2 docker://weiyigeek/tektoncd-triggers-controller:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/webhook:v0.22.2 docker://weiyigeek/tektoncd-triggers-webhook:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/interceptors:v0.22.2 docker://weiyigeek/tektoncd-triggers-interceptors:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/eventlistenersink:v0.22.2 docker://weiyigeek/tektoncd-triggers-eventlistenersink:v0.22.2

Адрес проекта на Github (можете форкнуть, а потом менять проект самостоятельно серединаизсекретс Прямо сейчас Может): https://github.com/WeiyiGeek/action-sync-images/ , поместите приведенные выше результаты выполнения в конвейеры, шаг 2, как показано на рисунке середина из рабочего процесса середина.

Шаг 3. Развертывание триггеров Tekton

Язык кода:javascript
копировать
# развертыватьTriggers Список ресурсов
kubectl apply -f TektonCD-Triggers.yaml
kubectl apply -f TektonCD-Triggers-interceptors.yaml

# Проверятьразвертывать Список Ресурсы Подда функционируют должным образом?
$ kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-triggers --watch
  # NAME                                               READY   STATUS    RESTARTS   AGE
  # tekton-triggers-controller-56d988bf44-sfp5x        1/1     Running   0          6m4s
  # tekton-triggers-core-interceptors-d56b49cf-gr9b5   1/1     Running   0          6m3s
  # tekton-triggers-webhook-544d4d5f6-msg4g            1/1     Running   0          6m4s
dashboard

Описание: Тектон Dashboard — универсальный веб-интерфейс пользователя для Tekton. PipelinesиTekton Запускает ресурсы, Он позволяет пользователям управлятьи ПроверятьTektonресурсизсоздавать、осуществлятьирезультат Проверять,Он поддерживает некоторые функции:

  • Статус PipelineRun и TaskRun, журнал и просмотр в режиме реального времени
  • Фильтрация ресурсов по тегам
  • Посмотреть обзор ресурса и YAML
  • Отображение ресурсов по всему кластеру или ограничение видимости определенными пространствами имен.
  • Импортируйте ресурсы прямо из репозитория git.
  • Добавляйте функциональность через расширения

Адрес проекта: https://github.com/tektoncd/dashboard/ Документация по установке: https://tekton.dev/docs/dashboard/

Добрые советы: То же самое из,Для разных версий Kubernetes требуется разный Tekton. dashboardВерсияипереписываться СPipelines Releases / Triggers ReleasesВерсия,вам следует Проверять Официальная документация Required Kubernetes Version глава, Например, окружение автора k8s на данный момент такое: Следует выбрать версию v1.23.xv0.22.xиз Версия 。

Язык кода:javascript
копировать
# v0.35 (LTS)
Latest Release: v0.35.1 (2023-05-31) (docs)
Initial Release: v0.35.0 (2023-04-25)
End of Life: 2024-04-24
Patch Releases: v0.35.0, v0.35.1
Supported Pipelines Releases: v0.44.x LTS, v0.47.x LTS
Supported Triggers Releases: v0.23.x

Этапы установки Step 1. Скачать с официального сайта Tekton Dashboard необходимыйиз Список ресурсов, Обратите внимание, что оно разделено на release и release-full Передняя версия двух версий поддерживает только чтение, а последняя поддерживает такие операции, как изменение конвейера. Здесь автор использует полную версию.

Язык кода:javascript
копировать
curl -ls https://storage.googleapis.com/tekton-releases/dashboard/previous/v0.35.1/release-full.yaml -o TektonCD-Dashboard-full.yaml

Step 2. Так же, как и шаг 2 установки конвейеров, автор использует эту статью [Как использовать GitHub Action элегантно синхронизирует сторонние изображения с DockerHub или частными складами.】статьяиз Способ,Используйте действие Github, чтобы переместить указанный образ в наш изDockerHubсередина или частное хранилище образов середина.,Выполните следующим образомShellСкрипт СтроитьskopeoКоманды синхронизации и замены Список ресурсовсередина Похожие изображения。

Язык кода:javascript
копировать
DOCKER_USERHUB=weiyigeek/tektoncd-dashboard-
grep "image: " TektonCD-Dashboard-full.yaml | cut -f 2,3 -d ":" | cut -f 1 -d "@" > TektonCD-dashboard-image.txt
for i in `cat TektonCD-dashboard-image.txt`;do
  echo skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
  sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Dashboard-full.yaml
done

Результат выполнения: skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.35.1 docker://weiyigeek/tektoncd-dashboard-dashboard:v0.35.1

Шаг 3. Развертывание панели управления Tekton

Язык кода:javascript
копировать
# развертывать Tekton Dashboard Список ресурсов
kubectl apply -f TektonCD-Dashboard-full.yaml
  # namespace/tekton-dashboard created
  # customresourcedefinition.apiextensions.k8s.io/extensions.dashboard.tekton.dev created
  # serviceaccount/tekton-dashboard created
  # role.rbac.authorization.k8s.io/tekton-dashboard-info created
  # clusterrole.rbac.authorization.k8s.io/tekton-dashboard-backend created
  # clusterrole.rbac.authorization.k8s.io/tekton-dashboard-tenant created
  # rolebinding.rbac.authorization.k8s.io/tekton-dashboard-info created
  # clusterrolebinding.rbac.authorization.k8s.io/tekton-dashboard-backend created
  # configmap/dashboard-info created
  # service/tekton-dashboard created
  # deployment.apps/tekton-dashboard created
  # clusterrolebinding.rbac.authorization.k8s.io/tekton-dashboard-tenant created

# Посмотреть ситуацию с развертыванием
kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-dashboard
  # NAME                                READY   STATUS    RESTARTS   AGE
  # tekton-dashboard-855f998964-pj6xx   1/1     Running   0          46h

Step 4. Для Тектона DashboardДоменное имя конфигурации сайтаtest.weiyigeek.top,Здесь я существуюTencent Cloud середина подала заявку на бесплатный SSL-сертификат,Настройте SSL для этого сайта, После подачи заявки это займет около 5-10 минут. Сейчас Да, после выдачи существующего сертификата нажмите «Загрузить», чтобы загрузить корневой сертификат (crt-файл) и Nginx (применимо к большинству сценариев) (файл pem, файл crt, файл ключа), загрузите его на сервер и используйте распаковку для его распаковки.

Адрес приложения: https://cloud.tencent.com/act/cps/redirect?redirect=10019&cps_key=b33075ae5a2baf3b47e7456ee5821502

Язык кода:javascript
копировать
# Разархивировать сертификат
unzip test.weiyigeek.top_nginx.zip
cd test.weiyigeek.top_nginx/ && ls
test.weiyigeek.top_bundle.crt  test.weiyigeek.top_bundle.pem  test.weiyigeek.top.csr  test.weiyigeek.top.key

# создавать tls из secret 
kubectl create secret tls test-weiyigeek-top-certs --cert=test.weiyigeek.top_bundle.crt --key=test.weiyigeek.top.key -n tekton-pipelines
  # secret/test-weiyigeek-top-certs created

Step 5.здесьавторужечерезсуществоватькластерсередина Установленоingress-nginx,Если еще не установленразвертыватьиз Может参考автор此篇статья【 Ingress-Nginx Базовое обучение и практика предоставления услуг 】[https://blog.weiyigeek.top/2020/5-27-529.html]официальный сайт ingress-nginx,осуществлять Следующие командысоздаватьingressправило,чтобы мы могли пройтиhttps://test.weiyigeek.top/tekton/доступ по адресу Tekton-Dashboard Служить.

Язык кода:javascript
копировать
# ingressclasses Вид контроллера
kubectl get ingressclasses.networking.k8s.io
  # NAME    CONTROLLER             PARAMETERS   AGE
  # nginx   k8s.io/ingress-nginx   <none>       397d

# TektonCD-Dashboard-ingress Список ресурсов
tee TektonCD-Dashboard-ingress.yaml <<'EOF'
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: tekton-dashboard
  namespace: tekton-pipelines
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - host: test.weiyigeek.top
    http:
      paths:
      - path: /tekton(/|$)(.*)
        pathType: ImplementationSpecific
        backend:
          service:
            name: tekton-dashboard
            port:
              number: 9097
  tls:
  - hosts:
    - test.weiyigeek.top
    secretName: test-weiyigeek-top-certs
EOF

# развертывать Dashboard-ingress
kubectl apply -f TektonCD-Dashboard-ingress.yaml
  # ingress.networking.k8s.io/tekton-dashboard created

# Проверятьразвертывать Dashboard-ingress
kubectl get ingress -n tekton-pipelines
  # NAME               CLASS    HOSTS                ADDRESS        PORTS     AGE
  # tekton-dashboard   <none>   test.weiyigeek.top   10.107.81.40   80, 443   15s

Step 6.Жесткий парсинг настроек клиентаили Используйте внутреннийDNSсервер Воляtest.weiyigeek.topразобрать наKubernetesпроизвольныйодинузел,Обычно указывается выходной узел,Напримерздесь10.20.176.215 test.weiyigeek.top

Затем используйте браузер для доступа tekton-dashboard адрес(https://test.weiyigeek.top/tekton/) , Если конфигурация правильная, она будет отображаться, как показано ниже:

На данный момент Тектон существования K8S установлен штатные компоненты.


Tekton CLI

Описание: Tekton Pipelines CLIПроект обеспечивает интерфейс командной строки (CLI).,Используется для взаимодействия с Tekton.,Tekton — это платформа с открытым исходным кодом для систем непрерывной интеграции и доставки (CI/CD).

Адрес проекта: https://github.com/tektoncd/cli/releases Документация по использованию: https://tekton.dev/docs/cli/

Процесс установки

Шаг 1. Укажите последнюю версию Cli и разверните бинарный метод установки.

Язык кода:javascript
копировать
CLI_VERSION="0.31.1"
curl -LO https://github.com/tektoncd/cli/releases/download/v${CLI_VERSION}/tkn_${CLI_VERSION}_Linux_x86_64.tar.gz
# Здесь стоит изучить команду. Просто распакуйте сжатый пакет серединаизtkn в каталог /usr/local/bin/ середина.
tar xvzf tkn_${CLI_VERSION}_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn

Шаг 2. Добавьте tkn в качестве плагина kubectl.

Язык кода:javascript
копировать
# создательпрограммная ссылка
ln -s /usr/local/bin/tkn /usr/local/bin/kubectl-tkn

# Проверьте конфигурацию плагина
kubectl plugin list
  # The following compatible plugins are available:
  # /usr/local/bin/kubectl-tkn

На этом статья заканчивается. Если вам нужны дополнительные технические статьи, ждите следующей статьи!

Исходный адрес: https://blog.weiyigeek.top/2023/7-22-768.html

boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]