digitalocean-cloud-controller-manager
digitalocean-cloud-controller-manager copied to clipboard
do-loadbalancer-protocol: 'http2' results in 'http2' --> 'http'
When setting the load balancer protocol, the droplet protocol defaults to HTTP instead of HTTP2. Is there an annotation to set the droplet protocol?
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: 'false'
service.beta.kubernetes.io/do-loadbalancer-name: 'ingress-lb-nyc1-01'
service.beta.kubernetes.io/do-loadbalancer-protocol: 'http2'
service.beta.kubernetes.io/do-loadbalancer-certificate-id: 'e22edb46-3d40-4b4b-a608-bd741da45562'
service.beta.kubernetes.io/do-loadbalancer-algorithm: 'least_connections'
service.beta.kubernetes.io/do-loadbalancer-size-slug: 'lb-small'
service.beta.kubernetes.io/do-loadbalancer-http2-ports: '5000'
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
type: LoadBalancer
externalTrafficPolicy: Cluster
ports:
- name: grpc
port: 5000
protocol: TCP
targetPort: 5000
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
Hi @evilaugust 👋
IIUC, you'd like to set different target and entry protocols. This is similar to #367 but unfortunately, right now it is not supported. I'm happy to keep the ticket open to track support.
@timoreimann Thank you for your response. Actually, I want the target and entry to be the same. They should both be HTTP2, but when I set service.beta.kubernetes.io/do-loadbalancer-protocol: 'http2', the target defaults to HTTP while the entry protocol gets set to HTTP2, which is essentially pointless. I just need them both to be HTTP2. Is that possible?
@timoreimann I honestly have no issue configuring the load balancer manually at the moment, however, with the managed Kubernetes implementation, the load balancer seems to automatically rebuild when the node pool scales, which makes sense, but is there anyway in preventing it from reconfiguring the protocols when this happens? Otherwise, how are other people handling gRPC ingress in DO?
Time has passed on, and by now Gateway API is a thing in the Kubernetes community. We should seriously consider that to be the structure to adopt for better configuration UX.