Gke Quickstart

LogZilla documentation for Gke Quickstart

Purpose

This quickstart helps a technical operator new to Kubernetes bring up LogZilla on Google Kubernetes Engine (GKE) using the repository's existing helper scripts and manifests.

Prerequisites

  • Google Cloud project with billing enabled.
  • gcloud CLI and kubectl installed and on PATH.
  • Authentication and project selection performed:
bash
# Authenticate gcloud and select the project
gcloud auth login

# The scripts default to the project "logzilla-v7" and region "us-east1".
# If using a different project or region, edit the script noted below.
gcloud config set project logzilla-v7

Create a GKE cluster (scripted)

The repository provides k8s/gcloud_scripts/create_cluster. The quickstart uses the script as-is (project "logzilla-v7", region "us-east1").

bash
# Optional: review or edit the script before running
sed -n '1,200p' k8s/gcloud_scripts/create_cluster

# Create a cluster named lz-cluster with 3 nodes (defaults in the script)
bash k8s/gcloud_scripts/create_cluster lz-cluster 3

Script defaults to be aware of (file: k8s/gcloud_scripts/create_cluster):

  • Line 6: --project "logzilla-v7"
  • Line 8: --region "us-east1"
  • Lines 23–24: Default VPC and subnetwork values referencing the same project

If those do not match the target environment, edit the script accordingly before running.

Configure kubectl context

bash
# Fetch cluster credentials for kubectl
gcloud container clusters get-credentials lz-cluster \
  --region us-east1 \
  --project logzilla-v7

# Verify connectivity
kubectl get nodes

Optional: create a dedicated namespace

bash
kubectl create namespace logzilla
# Remember to add: -n logzilla to subsequent kubectl commands

Deploy backing services

Manifests are provided in k8s/services/.

bash
kubectl apply -f k8s/services/postgres.yaml
kubectl apply -f k8s/services/redis.yaml
kubectl apply -f k8s/services/influxdb.yaml
# Optional dashboard
kubectl apply -f k8s/services/grafana.yaml

Deploy common config and LogZilla modules

Manifests are provided in k8s/modules/.

bash
kubectl apply -f k8s/modules/common.yaml
kubectl apply -f k8s/modules/storage.yaml
kubectl apply -f k8s/modules/query.yaml
kubectl apply -f k8s/modules/api.yaml
kubectl apply -f k8s/modules/ingest.yaml
kubectl apply -f k8s/modules/front.yaml

Expose services (GKE example)

bash
kubectl apply -f k8s/ingress/ingress-gke.yaml

This creates LoadBalancer Services for syslog (TCP/UDP), JSON, RFC5424, and HTTP ingest, and an Ingress routing the UI (/), static assets, API (/api/), WebSocket (/ws/), and /incoming.

Verify

bash
kubectl get pods
kubectl get svc
kubectl describe ingress ingress-gke

Notes

  • LogZilla images should use the stable tag for production. If a release pinning policy exists, use vX.Y.Z.
  • Secrets in the docs use stringData: for readability. If using data:, base64-encode values first.

Cleanup

Scripts are provided and should be reviewed before running, as they are potentially destructive.

bash
# Delete the cluster (uses region us-east1 and project logzilla-v7)
sed -n '1,200p' k8s/gcloud_scripts/delete_cluster
bash k8s/gcloud_scripts/delete_cluster lz-cluster

# Delete leftover disks in the project (uses region us-east1)
sed -n '1,200p' k8s/gcloud_scripts/delete_disks
bash k8s/gcloud_scripts/delete_disks
Gke Quickstart | LogZilla Documentation