Установка и настройка Skaffold на Debian 12 Linux
11:17, 03.06.2024
Skaffold - довольно популярный инструмент, необходимый для продолжительной разработки. С помощью этого инструмента, основанного на контейнерах, можно управлять развертыванием, разработкой и продвижением приложения, а также создавать фрагменты для конвейеров CD/CI. Scaffold может доставить ваше приложение в кластер Kubernetes, облачный проект или среду docker.
Рабочий процесс легко автоматизируется благодаря управлению Scaffold, которое функционирует на кластерах Kubernetes. В целом, используя Skaffold, разработчики могут значительно упростить свой рабочий процесс. Этот инструмент функционирует в фоновом режиме, пока разработчики занимаются кодированием, и программа обновляет все автоматически, без дополнительных инструкций.
Возможности Skaffold
Skaffold действительно полезен для упрощения множества процессов, и вот некоторые из них:
- Создание образов Docker и разметка образов манифеста Kubernetes.
- Налаживание приложения.
- Быстрая смена кластера Kubernetes после внесения изменений в исходный код.
- Набор инструментов для непрерывной доставки и интеграции.
Вот несколько функций Skaffold, с учетом которых инструмент был разработан:
- Строительные блоки CD/CI (удалить/тестировать/создать/применить и другие опции).
- Опции конвейера (test/ deploy/build/delete/apply/render).
- Pipeline управляется для автоматического создания, запуска, распространения приложения и распознавания изменений в исходном коде.
- Значение дополнительных компонентов, таких как развертывание/выстраивание, локальная конфигурация и переменные окружения, также очень важно.
- Этот инструмент считается действительно легким в весе вариантом, который можно применять во внешних CI/CD-компонентах и Dev.
- В Skaffold предусмотрены методы ведения журналов и переадресации портов.
Необходимые условия для установки скафолда
Перед началом процесса установки вам нужно иметь следующие инструменты:
- Kubectl
- Docker
- Skaffold
- Minikube
В этой статье мы поделимся своим практическим опытом и покажем установку и настройку Skaffold на Linux-системе (в данном примере мы будем использовать Debian).
Установка Skaffold
Процесс установки Skaffold очень прост, и все, что вам нужно сделать, это открыть терминал и ввести следующую строку:
curl -Lo skaffold https://storage.googleapis.com/skaffold/builds/latest/skaffold-linux-arm64 && \
sudo install skaffold /usr/local/bin/
Когда вы завершили этот начальный шаг, переходим к следующему, не менее важному для полноценной работы.
Руководство по установке Docker
Следуйте пошаговой инструкции для правильной установки Docker в системе Linux:
Обновите пакеты, введя в терминале следующую команду.
sudo apt update
Установка необходимых пакетов.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Добавление репозитория Docker.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Обновите пакеты.
sudo apt update
Установка Docker.
sudo apt install docker-ce docker-ce-cli containerd.io
Запустите Docker.
sudo systemctl start docker
sudo systemctl enable docker
Установка Minikube и kubectl
Kubectl важен для управления кластерами Kubernetes. Для установки последней версии используйте следующую команду:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl".
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Для установки minikube используйте следующее:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
Создание кластера Kubernetes с помощью minikube
Чтобы начать создание кластера Kubernetes, выполните следующую команду:
minikube start --profile custom
skaffold config set --global local-cluster true
eval $(minikube -p custom docker-env)
Вывод вышеупомянутой команды будет содержать информацию о версиях Debian и minikube, а также некоторые советы и описания текущих процессов.
Развертывание приложения на Kubernetes
Чтобы упростить понимание этого процесса, давайте воспользуемся приложением Spring Boot от Petclinic в качестве примера. Чтобы протестировать и развернуть приложение на Kubernetes, скопируйте его из:
git clone https://github.com/spring-projects/spring-petclinic.git
Следующее действие необходимо выполнить для изменения директории:
cd spring-petclinic
Создайте файл Docker, который будет включать исходный код и образ контейнера. В корневом каталоге приложения создайте такой файл и добавьте в него следующее содержимое.
FROM maven:3.8.4-openjdk-17-slim AS build
WORKDIR /home/app
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY --from=build /home/app/target/*.jar /usr/local/lib/petclinic.jar
Затем используйте следующую строку:
docker build -t spring-petclinic-builder
Проверьте, был ли создан контейнер:
docker run -p 8080:8080 spring-petclinic-builder
Чтобы проверить, работает ли программа, вы можете открыть браузер и зайти на веб-страницу.
Теперь, когда вы проверили и протестировали приложение, приступаем к следующему процессу, связанному с запуском приложения на Kubernetes. Используйте такие команды, как:
skaffold init --generate-manifests
Для доступа к приложению в Kubernetes необходимо открыть туннель с помощью:
$ minikube tunnel -p custom
С помощью run можно запустить/сборку приложения в Kubernetes.
skaffold run -tail
Для автоматического развертывания и мониторинга изменений в исходном коде используйте следующую строку:
skaffold dev
Подведем итоги
Это руководство важно для всех пользователей, которым нужна профессиональная информация об установке, настройке и дальнейшем использовании Skaffold в системе Linux. Процесс использования этого инструмента настолько прост, что все, что вам нужно сделать, - это следовать руководству. Если вы хотите получить дополнительные рекомендации по использованию Skaffold, вы можете найти документацию на официальном сайте. Не медлите и начните тестировать этот замечательный инструмент прямо сейчас, и вы сможете автоматизировать множество процессов в своем кодинге!