Loading...
Loading...
Configures GKE edge networking, traffic routing, load balancing, and private service endpoints. Use when configuring Gateway API manifests, standard Ingress, Cloud Armor WAF security policies, Container-Native Load Balancing (NEGs), Private Service Connect (PSC), or Google-managed SSL certificates on GKE. Don't use for core cluster IP planning, Dataplane V2 network policies, or node NAT egress (use gke-networking instead).
npx skill4agent add google/skills gke-service-networkingapiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: {gateway_name}
namespace: {namespace}
spec:
gatewayClassName: gke-l7-global-external-managed # GKE managed external L7 load balancer
listeners:
- name: http
protocol: HTTP
port: 80apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: {route_name}
namespace: {namespace}
spec:
parentRefs:
- name: {gateway_name}
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: {service_name}
port: 80apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {ingress_name}
namespace: {namespace}
annotations:
kubernetes.io/ingress.class: "gce"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {service_name}
port:
number: 80BackendConfigapiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: {backend_config_name}
namespace: {namespace}
spec:
securityPolicy:
name: {security_policy_name}BackendConfigService# In your Kubernetes Service manifest metadata.annotations:
cloud.google.com/backend-config: '{"default": "{backend_config_name}"}'
# Or for specific port mappings:
cloud.google.com/backend-config: '{"ports": {"80": "{backend_config_name}"}}'apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
name: {certificate_name}
spec:
domains:
- {domain_name}networking.gke.io/managed-certificates: {certificate_name}CertificateMapnetworking.gke.io/cert-map: {certificate_map_name}apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: {gateway_name}
namespace: {namespace}
annotations:
networking.gke.io/cert-map: {certificate_map_name} # For Certificate Manager maps
spec:
gatewayClassName: gke-l7-global-external-managed
listeners:
- name: https
protocol: HTTPS
port: 443
tls:
mode: Terminate
certificateRefs:
- kind: Secret
name: {secret_name} # Or directly reference a Kubernetes Secretcloud.google.com/negapiVersion: v1
kind: Service
metadata:
name: {service_name}
annotations:
cloud.google.com/neg: '{"ingress": true}' # Enabled for Ingress
spec:
ports:
- protocol: TCP
port: 80
targetPort: 8080
selector:
app: {app_name}
type: ClusterIPServiceAttachmentapiVersion: networking.gke.io/v1
kind: ServiceAttachment
metadata:
name: {attachment_name}
namespace: {namespace}
spec:
connectionPreference: ACCEPT_AUTOMATIC
natSubnets:
- {nat_subnet_name} # Subnet dedicated for PSC NAT
resourceRef:
kind: Service
name: {service_name}ServiceAttachment