/gke-networking-recipes

Primary LanguageShellApache License 2.0Apache-2.0

GKE Networking Recipes

This repository contains various use cases and examples of GKE Networking. For each of the use-cases there are full YAML examples that show how and when these GKE capabilities should be used.

If you're not familiar with the basics of Kubernetes networking then check out cluster networking and service networking. These resources should give you some of the foundations behind Kubernetes networking.

GKE is a managed Kubernetes platform that provides a more opinionated and seamless experience. For more information on GKE networking, check out network overview, Ingress, and Service networking pages. Each of the following recipes demonstrate specific networking use-cases in GKE. Setup your GKE environment and try out some of these recipes in your own kitchen.

Recipes

  • Ingress
    • Basic External Ingress - Deploy host-based routing through an internet-facing HTTP load balancer
    • Basic Internal Ingress - Deploy host-based routing through a private, internal HTTP load balancer
    • Secure Ingress - Secure Ingress-hosted Services with HTTPS, Google-managed certificates, SSL policies, and HTTPS redirects.
  • Multi-cluster Ingress
    • Basic Multi-cluster Ingress - Deploy applications across different clusters and different regions but retain a single global load balancer and public IP for global traffic management.
    • Blue/Green Multi-cluster Ingress - Deploy applications across multiple clusters in the same region, leveraging a single global load balancer and public IP for global traffic management, to support seamless cluster upgrades without impacting client access.
  • Services
  • Multi-cluster Services
  • Gateway
    • Basic Multi-cluster Gateway - Deploy an internal multi-cluster Gateway to load balance across applications across multiple clusters.
    • Blue-Green Cluster Pattern with multi-cluster Gateway - Deploy an internal multi-cluster Gateway to load balance across two versions of an application in different clusters, while utilizing traffic mirroring and traffic weighting to determine readiness and canary a new version of an application.

Contributions

Do you have a GKE networking recipe that would be useful for others? Contribute it and help build the shared knowledge of the GKE community!