Zephyr's Kubernetes deployment option allows you to run the Zephyr edge worker on your own Kubernetes infrastructure. This deployment model provides maximum control over your infrastructure while leveraging Zephyr's deployment and versioning capabilities.
Kubernetes deployment is available exclusively for Enterprise customers. If you're interested in deploying Zephyr on your own K8S infrastructure, please contact our sales team to discuss your requirements.
The Kubernetes edge worker (ze-k8s-worker) is a containerized service that handles asset uploads and serves your deployed applications. It integrates with:
The recommended way to configure the worker is using a JSON config file mounted as a Kubernetes Secret. This approach keeps all your configuration in one place and makes it easier to manage secrets securely.
Alternatively, you can use environment variables directly, though this is less recommended for production deployments.
Create a JSON file containing all your configuration. All keys use the ZE_WORKER_ prefix:
Mount the config file as a Secret for secure configuration:
For local development or testing with MinIO:
When using MinIO or other S3-compatible storage, set ZE_WORKER_S3_FORCE_PATH_STYLE to "true".
The worker exposes the following health check endpoints for Kubernetes probes:
| Endpoint | Type | Description |
|---|---|---|
GET /healthz | Liveness probe | Always returns 200 if the process is running |
GET /readyz | Readiness probe | Checks S3 and Redis connectivity; returns 200 if healthy, 503 if not |
Below is the complete reference for all available configuration options. These can be set in your JSON config file or as environment variables.
| Key | Description | Example |
|---|---|---|
ZE_WORKER_JWT_SECRET | Secret key for JWT token validation | your-secret-key-here |
ZE_WORKER_S3_ENDPOINT | S3-compatible storage endpoint URL | https://s3.amazonaws.com or http://minio:9000 |
ZE_WORKER_S3_ACCESS_KEY_ID | S3 access key ID | AKIAIOSFODNN7EXAMPLE |
ZE_WORKER_S3_SECRET_ACCESS_KEY | S3 secret access key | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
ZE_WORKER_S3_BUCKET | S3 bucket name for storing assets | zephyr-assets |
ZE_WORKER_REDIS_HOST | Redis-compatible KV store hostname | redis.default.svc.cluster.local |
| Key | Description | Default | Example |
|---|---|---|---|
ZE_WORKER_PORT | HTTP server port | 8080 | 3000 |
ZE_WORKER_LOG_LEVEL | Logging level | info | debug, trace, warn, error, fatal |
ZE_WORKER_DELIMITER | Delimiter for hostname parsing | - | . or _ |
| Key | Description | Default | Example |
|---|---|---|---|
ZE_WORKER_S3_REGION | S3 region | us-east-1 | eu-west-1 |
ZE_WORKER_S3_FORCE_PATH_STYLE | Use path-style URLs (required for MinIO/Ceph) | true | false |
| Key | Description | Default | Example |
|---|---|---|---|
ZE_WORKER_REDIS_PORT | Redis port | 6379 | 6380 |
ZE_WORKER_REDIS_PASSWORD | Redis password (if required) | (empty) | your-redis-password |
ZE_WORKER_REDIS_TLS | Enable TLS for Redis connection | false | true |
ZE_WORKER_REDIS_DB | Redis database number | 0 | 1, 2, etc. |
ZE_WORKER_REDIS_PREFIX_ENVS | Key prefix for environment variables | {ze-k8s-worker}:envs: | {myapp}:envs: |
ZE_WORKER_REDIS_PREFIX_SNAPSHOTS | Key prefix for snapshots | {ze-k8s-worker}:snapshots: | {myapp}:snapshots: |
The curly braces {} in the default prefixes enable Redis Cluster hash tags. This ensures all keys with the same hash tag are stored on the same cluster node, enabling multi-key operations, transactions, and better performance. For standalone Redis instances, the braces have no special meaning but don't cause issues.
While the JSON config file is recommended, you can also configure the worker using environment variables directly. This can be useful for simple setups or when integrating with external secret management systems.
Set ZE_WORKER_CONFIG_JSON to the path of your config file. If both are provided, values in the JSON file take precedence over environment variables.
kubectl logs -l app=ze-k8s-workerZE_WORKER_DELIMITER matches your DNS configurationIf you encounter issues with your Kubernetes deployment, reach out to your Zephyr account representative or contact us on Discord.