I have the following service, the default service for nginx-ingress-controller:
apiVersion: v1
kind: Service
metadata:
annotations:
cloud.google.com/app-protocols: '{"http":"HTTP2","https":"HTTP2"}'
cloud.google.com/neg: '{"ingress":true}'
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"controller","app.kubernetes.io/instance":"nginx-ingress-controller","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"nginx-ingress-controller","app.kubernetes.io/version":"1.9.4","helm.sh/chart":"nginx-ingress-controller-9.9.3","io.portainer.kubernetes.application.name":"nginx-ingress-controller","io.portainer.kubernetes.application.owner":"admin"},"name":"nginx-ingress-controller","namespace":"default"},"spec":{"externalTrafficPolicy":"","ports":[{"name":"http","port":80,"protocol":"TCP","targetPort":"http"},{"name":"https","port":443,"protocol":"TCP","targetPort":"https"}],"selector":{"app.kubernetes.io/component":"controller","app.kubernetes.io/instance":"nginx-ingress-controller","app.kubernetes.io/name":"nginx-ingress-controller"},"sessionAffinity":"None","type":"LoadBalancer"}}
meta.helm.sh/release-name: nginx-ingress-controller
meta.helm.sh/release-namespace: default
creationTimestamp: "2023-12-02T15:20:36Z"
finalizers:
- service.kubernetes.io/load-balancer-cleanup
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: nginx-ingress-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: nginx-ingress-controller
app.kubernetes.io/version: 1.9.4
helm.sh/chart: nginx-ingress-controller-9.9.3
io.portainer.kubernetes.application.name: nginx-ingress-controller
io.portainer.kubernetes.application.owner: admin
name: nginx-ingress-controller
namespace: default
resourceVersion: "2398295"
uid: b8662a4f-3259-4f92-96fb-1a58f2250444
I have tried multiple things, but cannot get GKE to provision a L7 LB instead of a L4 LB.
Google Support have said it's possible to use L7 via service, but their documentation isn't there.
I have also tried specifying the LB via deployment.yaml args, but that isn't working.
I am not sure how to progress, the endgame is to use the nginx-ingress L7 with GCDN.
Unfortunately, the L4 LB cannot be used with Google CDN, which is rather annoying.
The nginx-service can use L7 but I cannot find the correct documentation to make the change.
Also, I thought there may be a way of using GKE, but that is going to be problematic.
To clarify, I need to specify in my deployment.yaml for Google to use a L7 and not L4 LB so I can integrate nginx-ingress with Google CDN.