跳到主要内容
版本:Next

使用 Helm 部署

使用 Helm 快速部署 SeaTunnel 集群。

提示

在 Zeta 集群模式下,生产环境推荐 Master 和 Worker 都使用 StatefulSet 部署。当前 Helm Chart 适合快速体验,但 Master 和 Worker 仍会渲染为 Deployment。生产环境使用 Helm 前,建议先阅读 Kubernetes 部署分离集群模式Kubernetes 配置,了解基于 StatefulSet 的拓扑、Headless Service、checkpoint、IMap MapStore 与 slot 规划等生产实践。

准备

我们假设您的本地已经安装如下软件:

在您的本地环境中能够正常执行 kubectlhelm 命令。

minikube 为例, 您可以使用如下命令启动一个集群:

minikube start --kubernetes-version=v1.23.3

安装

使用默认配置安装:

# 自行选择对应版本
export VERSION=2.3.10
helm pull oci://registry-1.docker.io/apache/seatunnel-helm --version ${VERSION}
tar -xvf seatunnel-helm-${VERSION}.tgz
cd seatunnel-helm
helm install seatunnel .

如果您需要使用其他命名空间进行安装:

helm install seatunnel . -n <your-namespace>

对于托管 Kubernetes 服务,建议将云厂商相关的差异化配置单独维护在一个 values 文件中,并通过 -f 传入,例如:

helm install seatunnel . -n <your-namespace> -f values-eks.yaml

在托管集群上常见需要复核的 values 包括:

  • 用于 ECR、Artifact Registry、ACR、ACK 容器镜像服务、TCR、SWR、Volcengine Container Registry 或 OpenShift 内置镜像仓库的镜像仓库地址与 imagePullSecrets
  • 目标命名空间对应的 ServiceAccount、RBAC,以及 OpenShift 上的 SecurityContextConstraint 要求
  • 云厂商负载均衡、子网、证书与内外网暴露模式相关的 Service 或 Ingress annotation
  • 用于 checkpoint 与 state 路径的对象存储或 PersistentVolume 配置
  • 用于运行 SeaTunnel Pod 的节点池所需的 resource request/limit、node selector、toleration 与 affinity
  • 接入云厂商监控栈的日志与指标采集配置

提交任务

当前默认配置没有启用 Ingress,所以需要使用转发命令将 Master 的 REST API 端口转发出来。

kubectl port-forward -n <namespace> svc/seatunnel-master 8080:8080

如果安装时没有通过 -n 指定命名空间,<namespace> 使用 default。 然后可以通过地址 http://127.0.0.1:8080/ 访问 Master 的 REST API。

如果想要使用 Ingress,需要更新 values.yaml

例如:

ingress:
enabled: true
host: "<your domain>"

然后更新 SeaTunnel。

就可以使用域名 http://<your-domain> 进行访问了。

或者您可以直接进入 Master Pod 执行 curl 命令。

# 获取其中一个 Master Pod
MASTER_POD=$(kubectl get po -n <namespace> -l 'app.kubernetes.io/name=seatunnel-master' | sed '1d' | awk '{print $1}' | head -n1)
# 进入 Master Pod
kubectl -n <namespace> exec -it $MASTER_POD -- /bin/bash
# 执行 REST API
curl http://127.0.0.1:8080/running-jobs
curl http://127.0.0.1:8080/system-monitoring-information

后面就可以使用 REST API V2 提交任务了。

下一步

到现在为止,您已经安装好 SeaTunnel 集群了,可以继续查看连接器文档,了解 SeaTunnel 支持哪些 source 和 sink。 如需手写 Kubernetes manifest 或了解生产部署建议,请查看 分离集群模式Kubernetes 运维