Измените LB с l4 на l7 в GKE с помощью nginx-ingress-controller.
У меня есть следующая служба, служба по умолчанию для 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
Я пробовал несколько вещей, но не могу заставить GKE предоставить L7 LB вместо L4 LB.
Служба поддержки Google заявила, что L7 можно использовать через сервис, но их документации там нет.
Я также пытался указать LB через аргументы Deployment.yaml, но это не работает.
Я не уверен, как двигаться дальше, в конечном итоге нужно использовать nginx-ingress L7 с GCDN.
К сожалению, L4 L4 нельзя использовать с Google CDN, что весьма раздражает.
Служба nginx может использовать L7, но я не могу найти правильную документацию для внесения изменений.
Кроме того, я думал, что есть способ использовать GKE, но это будет проблематично.
Чтобы уточнить, мне нужно указать в моем файле Deployment.yaml, чтобы Google использовал L7, а не L4 LB, чтобы я мог интегрировать nginx-ingress с Google CDN.