Deploy on GKE
Run Hiver on Google Kubernetes Engine. This builds on the Kubernetes guide with GKE-specific cluster setup.
Prerequisites
- A GCP project with billing enabled
gcloudCLI installed and authenticatedkubectlandhelm(v3+) installed
Create a GKE cluster
gcloud container clusters create hiver-cluster \
--zone us-central1-a \
--num-nodes 3 \
--machine-type n2-standard-4
gcloud container clusters get-credentials hiver-cluster --zone us-central1-aThe default microVM images require nested virtualization on the nodes. See MicroVM runtime for enabling it, or use the plain container image variants if your node pool doesn't support it.
Install with Helm
Install the chart exactly as in the Kubernetes guide:
helm repo add hiver https://hiver-sh.github.io/hiver
helm repo update
helm install hiver hiver/hiverThe chart creates its own hiver and hiver-sandbox namespaces.
Expose the gateway
The gateway is a LoadBalancer Service, so GKE provisions an external IP for it
(a <pending> value means it's still being assigned):
kubectl get svc gateway -n hiver \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}'Verify
kubectl get pods -n hiver
# NAME READY STATUS AGE
# controller-7d9f6b8c4-xkqzp 1/1 Running 2m
# gateway-5b8f9d6c3-rplwk 1/1 Running 2mConnect a client
Point the SDK at the gateway's external IP:
index.ts
import { getOrCreateSandbox } from "@hiver.sh/client";
const sandbox = await getOrCreateSandbox("my-sandbox", { image: "python" }, {
gatewayUrl: "http://<gateway-ip>",
});