DanielLeens commented on PR #10932: URL: https://github.com/apache/seatunnel/pull/10932#issuecomment-4561720889
Hi @Chris79OG, picking up the two items raised in the earlier review (the missing `docs/zh` translation and the `VCR` → `Volcengine Container Registry` rename), I've prepared a follow-up commit on top of your PR head `46b8735105`: - Commit: https://github.com/DanielLeens/seatunnel/commit/38bc430d835052cb62ed5f388e99436ed4371210 - Branch: https://github.com/DanielLeens/seatunnel/tree/pr10932-zh-sync - Range: `46b8735105..38bc430d83` ### What the follow-up commit does 1. Adds the matching `## 托管 Kubernetes 注意事项` section to `docs/zh/getting-started/kubernetes/kubernetes.mdx`, mirroring the English checklist 1:1 so the Chinese site stays in parity with the English site (project convention is that user-visible doc changes must land in both `docs/en` and `docs/zh`). 2. Adds the matching managed-cluster `values` bullet list and `-f values-eks.yaml` example to `docs/zh/getting-started/kubernetes/helm.md`. 3. Replaces `VCR` with `Volcengine Container Registry` in both English files. Volcengine's container image service is officially "Volcengine Container Registry" (sometimes abbreviated `CR` / `VeCR`); `VCR` is not part of their official naming and would mislead readers searching for it. The diff is 4 files / +34 / -2 and does not touch your existing English additions other than the two `VCR` cells/lines. ### How to bring it into this PR Option A — fetch and cherry-pick on top of your branch: ```bash git fetch https://github.com/DanielLeens/seatunnel.git pr10932-zh-sync git cherry-pick FETCH_HEAD git push origin luminaflow/kubernetes-managed-platform-notes ``` Option B — apply the patch directly (full patch is included below for reference; you do not need to copy it if you use Option A): ```bash git fetch https://github.com/DanielLeens/seatunnel.git pr10932-zh-sync git apply --3way <(git show FETCH_HEAD --format=) ``` If you'd rather I open this as a separate doc PR after this one merges, just say the word — but since the English text in this PR is what the `docs/zh` translation has to track verbatim, landing both in the same PR is the cleanest path. <details> <summary>Full patch (for visual review only — you don't need to copy this if you cherry-pick)</summary> ```diff From 38bc430d835052cb62ed5f388e99436ed4371210 Mon Sep 17 00:00:00 2001 From: davidzollo <[email protected]> Date: Thu, 28 May 2026 15:27:02 +0800 Subject: [PATCH] [Docs] Sync managed Kubernetes notes to docs/zh and fix Volcengine registry name - Translate the new "Managed Kubernetes Notes" section in docs/en/getting-started/kubernetes/kubernetes.mdx to docs/zh/getting-started/kubernetes/kubernetes.mdx so the Chinese site keeps parity with the English site. - Translate the new managed-cluster values bullet list in docs/en/getting-started/kubernetes/helm.md to docs/zh/getting-started/kubernetes/helm.md for the same reason. - Replace the inaccurate "VCR" abbreviation with the official "Volcengine Container Registry" name in both the English Kubernetes and Helm guides. --- docs/en/getting-started/kubernetes/helm.md | 2 +- docs/en/getting-started/kubernetes/kubernetes.mdx | 2 +- docs/zh/getting-started/kubernetes/helm.md | 15 +++++++++++++++ docs/zh/getting-started/kubernetes/kubernetes.mdx | 17 +++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/docs/en/getting-started/kubernetes/helm.md b/docs/en/getting-started/kubernetes/helm.md index 749cb1d911..558df162f9 100644 --- a/docs/en/getting-started/kubernetes/helm.md +++ b/docs/en/getting-started/kubernetes/helm.md @@ -49,7 +49,7 @@ helm install seatunnel . -n <your namespace> -f values-eks.yaml Common managed-cluster values to review include: -- image repository and `imagePullSecrets` for ECR, Artifact Registry, ACR, ACK Container Registry, TCR, SWR, VCR, or an OpenShift internal registry +- image repository and `imagePullSecrets` for ECR, Artifact Registry, ACR, ACK Container Registry, TCR, SWR, Volcengine Container Registry, or an OpenShift internal registry - ServiceAccount, RBAC, and OpenShift SecurityContextConstraint requirements for the target namespace - Service or Ingress annotations for the provider load balancer, subnet, certificate, and internal/external exposure model - object storage or PersistentVolume settings for checkpoint and state paths diff --git a/docs/en/getting-started/kubernetes/kubernetes.mdx b/docs/en/getting-started/kubernetes/kubernetes.mdx index 1156cfa8ed..f969e6496c 100644 --- a/docs/en/getting-started/kubernetes/kubernetes.mdx +++ b/docs/en/getting-started/kubernetes/kubernetes.mdx @@ -31,7 +31,7 @@ The examples below use Minikube, but the same manifests can be adapted to manage | Area | What to verify | | --- | --- | -| Image registry | Push the SeaTunnel image to a registry reachable by the cluster, such as ECR, Artifact Registry, ACR, ACK Container Registry, TCR, SWR, VCR, or the internal OpenShift registry. Update `image` and `imagePullSecrets` when the image is private. | +| Image registry | Push the SeaTunnel image to a registry reachable by the cluster, such as ECR, Artifact Registry, ACR, ACK Container Registry, TCR, SWR, Volcengine Container Registry, or the internal OpenShift registry. Update `image` and `imagePullSecrets` when the image is private. | | Namespace and access | Create a dedicated namespace for SeaTunnel and bind the required ServiceAccount, Role, and RoleBinding there. OpenShift deployments may also need a SecurityContextConstraint compatible with the container user. | | Config and secrets | Keep non-sensitive SeaTunnel configuration in ConfigMaps and mount credentials through Secrets or the cloud provider's secret integration. Avoid putting connector credentials directly into the job ConfigMap. | | Connector packaging | Package commonly used connectors in the image for repeatable deployments, or mount connector libraries from a PersistentVolume or object-storage backed init step when connector sets change frequently. | diff --git a/docs/zh/getting-started/kubernetes/helm.md b/docs/zh/getting-started/kubernetes/helm.md index 5ee1a4dbf7..860d4ee9c0 100644 --- a/docs/zh/getting-started/kubernetes/helm.md +++ b/docs/zh/getting-started/kubernetes/helm.md @@ -42,6 +42,21 @@ helm install seatunnel . helm install seatunnel . -n <your namespace> ``` +对于托管 Kubernetes 服务,建议将云厂商相关的差异化配置单独维护在一个 values 文件中,并通过 `-f` 传入,例如: + +```bash +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的restapi端口转发出来。 diff --git a/docs/zh/getting-started/kubernetes/kubernetes.mdx b/docs/zh/getting-started/kubernetes/kubernetes.mdx index 726e23c2c7..cb9eca1850 100644 --- a/docs/zh/getting-started/kubernetes/kubernetes.mdx +++ b/docs/zh/getting-started/kubernetes/kubernetes.mdx @@ -25,6 +25,23 @@ import TabItem from '@theme/TabItem'; minikube start --kubernetes-version=v1.23.3 ``` +## 托管 Kubernetes 注意事项 + +下面的示例使用 Minikube,但相同的 manifest 可以适配到各种托管 Kubernetes 服务,例如 Amazon EKS、Google Kubernetes Engine (GKE)、Azure Kubernetes Service (AKS)、阿里云 ACK、腾讯云 TKE、华为云 CCE、火山引擎 VKE 和 Red Hat OpenShift。在将 manifest 应用到托管集群之前,请按下表检查与平台相关的设置。 + +| 项目 | 需要确认的内容 | +| --- | --- | +| 镜像仓库 | 将 SeaTunnel 镜像推送到集群可访问的镜像仓库,例如 ECR、Artifact Registry、ACR、ACK 容器镜像服务、TCR、SWR、Volcengine Container Registry 或 OpenShift 内置镜像仓库。当镜像为私有镜像时,需要同步更新 `image` 与 `imagePullSecrets`。 | +| 命名空间与权限 | 为 SeaTunnel 创建专用命名空间,并在该命名空间下绑定所需的 ServiceAccount、Role 与 RoleBinding。在 OpenShift 上部署时,可能还需要配置与容器用户兼容的 SecurityContextConstraint。 | +| 配置与密钥 | 将非敏感的 SeaTunnel 配置放入 ConfigMap,通过 Secret 或云厂商的密钥管理服务挂载凭据,避免把连接器凭据直接写入任务的 ConfigMap。 | +| 连接器打包 | 对于稳定的部署,建议将常用连接器一并打入镜像;当连接器组合经常变更时,可以通过 PersistentVolume 或对象存储 + init 容器的方式挂载连接器依赖。 | +| 存储与 Checkpoint | 选择与所在云相匹配的存储服务,例如 S3、GCS、Azure Blob Storage、OSS、COS、OBS、TOS,或 Kubernetes PersistentVolume。确保 SeaTunnel Pod 对所选 checkpoint / state 路径同时具有网络可达性和访问凭据。 | +| 网络访问 | 集群内部访问使用 `ClusterIP`,外部访问使用 `LoadBalancer` 或 Ingress;当需要指定负载均衡器类型、子网或证书时,请使用对应云厂商的 annotation。 | +| 资源调度 | 在混合节点池的集群上,按需要设置 CPU、内存 request、node selector、toleration 与 affinity;如果开启了集群自动扩缩容,请确保 worker Pod 的资源 request 足以触发节点扩容后再提交任务。 | +| 可观测性 | 将 Pod 日志和 SeaTunnel 指标接入云厂商的日志与监控栈,例如 CloudWatch、Cloud Logging、Azure Monitor、阿里云日志服务 SLS、腾讯云 CLS、华为云 LTS、火山引擎 TLS 或 OpenShift 内置监控。 | + +对于生产环境,请固定 SeaTunnel 镜像 tag,把云厂商相关的 values 单独维护在独立的 manifest 或 Helm values 文件中,并在改动正在运行的集群之前,先在 staging 命名空间中验证升级。 + ## 安装 ### SeaTunnel Docker 镜像 ``` </details> Heads up: I tried to push this commit directly to your branch (this PR has `Allow edits by maintainers` enabled), but my GitHub account (`DanielLeens`) isn't an `apache/seatunnel` collaborator, so the maintainer-edit path is closed for me. Hence this cherry-pick-friendly handoff. Thanks for the contribution! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
