Local Mode
Local Mode runs one SeaTunnel job in Kubernetes with a single Pod or Job. It does not provide cluster high availability and is not suitable as a long-running production cluster.
Create Job Configuration
Create seatunnel.streaming.conf:
env {
parallelism = 2
job.mode = "STREAMING"
checkpoint.interval = 2000
}
source {
FakeSource {
parallelism = 2
plugin_output = "fake"
row.num = 16
schema = {
fields {
name = "string"
age = "int"
}
}
}
}
sink {
Console {
}
}
Create a ConfigMap:
kubectl create configmap seatunnel-job-config \
--from-file=seatunnel.streaming.conf=seatunnel.streaming.conf
Create Pod
apiVersion: v1
kind: Pod
metadata:
name: seatunnel-local
labels:
app: seatunnel
mode: local
spec:
restartPolicy: Never
containers:
- name: seatunnel
image: seatunnel:3.0.0
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- /opt/seatunnel/bin/seatunnel.sh --config /data/seatunnel.streaming.conf -e local
env:
- name: SEATUNNEL_HOME
value: /opt/seatunnel
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "1"
memory: 4Gi
volumeMounts:
- name: job-config
mountPath: /data/seatunnel.streaming.conf
subPath: seatunnel.streaming.conf
volumes:
- name: job-config
configMap:
name: seatunnel-job-config
Apply it:
kubectl apply -f seatunnel-local.yaml
View logs:
kubectl logs -f seatunnel-local
Delete the Pod:
kubectl delete -f seatunnel-local.yaml
Recommendation
Use Local Mode to verify images, connectors, and job configuration. If you need long-running service, REST API submission, cluster failover, or independent scaling, use Separated Cluster Mode.