Deploy on Google GKE¶
This guide shows you how to prepare a GKE Standard cluster for Kionga and install the chart with the GKE overlay. It adds the Google Cloud steps to Deploy on Kubernetes; read that guide first.
Before you begin¶
- A GKE Standard cluster with at least three Ready nodes across two or more zones.
- Workload Identity Federation, network policy enforcement
(
--enable-dataplane-v2, or another enforced NetworkPolicy provider) and the Compute Engine persistent disk CSI driver turned on. - The
gcloudCLI,kubectland Helm, signed in with an identity that can describe the cluster. - The dependencies listed in Deploy on Kubernetes, with their credentials in Secret Manager.
- External Secrets Operator, an ingress controller, wildcard DNS and TLS
certificates. The overlay sets
ingress.className: nginx; change it if you use another controller.
Steps¶
-
Get cluster credentials and note the context name; use it explicitly in every command:
-
Create the secret-reader identity. Create a Google service account that can read only the Kionga secret versions in Secret Manager, and allow the Kubernetes service account
kionga-secret-readerinkionga-systemto impersonate it. Put the project, cluster name and location intodeploy/helm/secretstore-gcp.example.yaml. -
Create the namespace, CRDs and pull Secret, as in steps 1 and 2 of Deploy on Kubernetes, then apply the secret store:
-
Create the storage class
kionga-pd-balanced(balanced PD, expandable, retained, bound on first use):Persistent disks are zonal and single-writer. Keep shared project data in object storage.
-
Run the preflight check.
python3 deploy/scripts/cloud-preflight.py gke --context CONTEXT --cluster CLUSTER --project PROJECT --location LOCATIONIt confirms that the context points at this cluster, that the cluster is running, that Workload Identity, network policy (
--enable-dataplane-v2or the NetworkPolicy add-on) and the PD CSI driver are on, that there are three Ready nodes in two zones, and that the storage class is configured as above. -
Check and install with the GKE overlay after your values file:
Verify¶
With --enable-dataplane-v2, GKE treats ipBlock rules for Pod and Service ranges in its own way.
Test Kionga's network policies against your actual VPC and DNS paths before you
allow user workloads. The preflight does not prove IAM permissions, policy
behavior, disk attachment or recovery. Follow
Verify in the Kubernetes guide, then run
restore and failover drills before you admit users.
Next steps¶
Related: GKE network policy, Workload Identity Federation for GKE, PD CSI driver, External Secrets for Google.