尝试在Windows 11上体验Kestra

首先

本文介绍了在Windows系统上使用WSL2和Docker搭建环境,以便在分布式处理平台Kestra上运行。文章中记录了在操作过程中遇到的困难和意识到的问题等。安装步骤的参考来源于某个网站。鉴于参考网站是基于Windows 10的,因此在这里只介绍在Windows 11中所需的工作。

Kestra的概述

截至2022年6月8日,写这篇文章时,Qiita上完全没有关于Kestra的信息,所以我首先简单介绍一下Kestra是什么。

kestra_architecture

Kestra使用YAML描述服务的工作流程。
工作流程可以以与特定执行环境无关的方式进行定义,并与工作流程的运营管理相关。

    • デプロイメント

 

    • スケーリング

 

    • モニタリング

 

    エラー処理

所有纷繁复杂的部分都将由Kestra完成处理。
根据官方网站的说明,Kestra据说没有可扩展性上限,所以可能很容易将以最小配置环境构建的工作流部署到大规模分布式环境中。
关于可扩展性的问题,我想在另一个机会上进行尝试。

建立环境

那么我们来构建Kestra,看看它能否像上述那样实际运行。根据官方网站的入门指南,只需准备Docker和Docker Compose,然后按照几个步骤就能完成。考虑到准备Linux机器的工作可能并不需要那么麻烦,我选择了基于Windows 11和WSL2作为基本环境。

将Debian安装到WSL2中。

在Windows 11中,您可以轻松地使用WSL2,并且可以通过以管理员权限启动的命令提示符或PowerShell来实现。

> wsl --install

只需执行该操作,便能启用WSL2。

下一步是选择哪个Linux发行版作为Docker运行环境,但这次我们会选择Debian,根据参考的网站,在Docker的安装中选择Debian。
只需执行以下命令,Debian就会被安装。

> wsl --install -d Debian

然后,虽然不是必需的,但为了更方便地操作WSL2环境,我们也会安装Windows终端。
安装Windows终端后,可以通过鼠标操作启动PowerShell、WSL2等多个 shell,并通过选项卡进行切换,非常方便。

安装 Docker 和 Docker Compose。

在Debian上安装Docker。
从Windows的开始菜单或Windows终端启动Debian时,会显示命令提示符,然后在那里执行以下命令。

    • apt-getをアップデートしHTTPSリポジトリ使用を設定

 

    apt-getは標準ではHTTPSトランスポートがインストールされないので2つめのコマンドを実行しておかないと後ではまります。
$ sudo apt-get update
$ sudo apt-get install apt-transport-https
$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    DockerのGPGキーを追加
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/debian/gpg \
 | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    リポジトリをセットアップ
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
    • Docker Engineをインストール

 

    • Docker公式サイトの記載に従うとコマンド末尾のdocker-composeはdocker-compose-pluginとするところなのですが、やってみるとエラーが出て進みません。

 

    こちらの情報を参考に”-plugin”を削除して実行します。
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose
    • Docker Composeをアップグレード

 

    デフォルトでインストールされるDocker ComposeだとKestraのdocker-compose.ymlが実行できないので別途適切なバージョンをインストールします。ここでは2022.06.08時点で最新の2.6.0を指定します。
$ sudo rm -f /usr/local/bin/docker-compose
$ sudo curl -L https://github.com/docker/compose/releases/download/v2.6.0/\
docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
    念のためバージョンを確認
$ docker-compose -v
Docker Compose version v2.6.0
    sudoなしでのdockerコマンド実行権限を付与
$ sudo usermod -aG docker <USER>

自从重新启动终端后就开始生效了。

通过这个步骤,Kestra安装准备工作已经完成。

安装Kestra

    docker-compose.ymlをダウンロード
$ wget https://raw.githubusercontent.com/kestra-io/kestra/develop/docker-compose.yml
    • イメージをダウンロード

 

    私の環境では数十分掛かりました。
$ docker-compose pull
    サービスを起動
$ docker-compose up -d

启动WEB控制台

Main.png

尝试运行Kestra

使用Docker的Kestra中注册了许多示例工作流。我们选择其中一个示例来观察Kestra的运行情况。

执行并行工作流程

parallel_topology.png
マイビデオ1.gif
parallel_Gantt_for_AGIF.PNG

当任务t1~t6全部完成时,根据拓扑图的表示,我们可以确定任务parent的执行已经完成,并且随后任务last被执行。

编辑并行工作流

parallel_7_topology.PNG

执行编辑后的工作流程

parallel_7_gantt.PNG
parallel_7_execution_task_log.PNG

大家也可以试试在Docker上注册了不止并行操作的各种工作流示例的Kestra。

总结

通过搭建和使用Kestra环境,我确认了可以轻松地创建、执行和监控工作流的操作。由于在WSL2上使用Docker可以实现最小配置,我无法测试可扩展性和部署方面的内容,但我希望在另一个机会上构建基于Kubernetes的全面分布式环境。

广告
将在 10 秒后关闭
bannerAds