Deployment
Make sure to set the replicas to 1, otherwise, it may cause data race issues.
Here is a sample Kubernetes YAML file bytebase.yaml describing the minimal components and configuration required to run Bytebase in Kubernetes.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: bytebase
namespace: default
spec:
# To prevent data races, only request one replica.
replicas: 1
selector:
matchLabels:
app: bytebase
template:
metadata:
labels:
app: bytebase
spec:
containers:
- name: bytebase
image: bytebase/bytebase:latest
imagePullPolicy: Always
# Configure external PostgreSQL following the guide:
# https://www.bytebase.com/docs/get-started/self-host/external-postgres
env:
- name: PG_URL
value: 'postgresql://<<user>>:<<secret>>@<<host>>:<<port>>/<<dbname>>'
args:
[
'--port',
'8080',
]
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 300
periodSeconds: 300
timeoutSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
name: bytebase-entrypoint
namespace: default
spec:
# Optional
type: ClusterIP
selector:
app: bytebase
ports:
- protocol: TCP
port: 80
targetPort: 8080
-
Start Bytebase with the following command:
kubectl apply -f bytebase.yaml
-
Make sure everything worked by listing your deployments:
Do the same check for your services:
Deploy with Helm
Bytebase provides an official Helm chart for simplified Kubernetes deployments. For comprehensive configuration options and advanced settings, visit the Bytebase Helm Chart on Artifact Hub.
Installation
Deploy Bytebase using Helm with your external PostgreSQL database:
helm -n <YOUR_NAMESPACE> \
--set "bytebase.option.externalPg.url"={PGDSN} \
--set "bytebase.version"={VERSION} \
install <RELEASE_NAME> bytebase-repo/bytebase
Uninstallation
To remove the Bytebase deployment:
helm delete --namespace <YOUR_NAMESPACE> <RELEASE_NAME>