You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multiple Gateway and LoadBalancer type Service in one Knative cluster, Pros and Cons
1. Knative version:
Kubernetes version v1.28.3
Knative Serving version 1.15.1
Istio is installed on Knative, version 1.15.1
2. Description
Hi, I am working with Knative Serving. Although I know that dedicated Load Balancer is expensive and "Knative uses a shared ingress Gateway to serve all incoming traffic within knative service mesh" (cited from Configuring the ingress gateway), but our business require me to do that. I achieved it by modify source code of net-istio-controller and net-istio-webhook. In detail, I made changes:
comment lines 242 to 244 in istio.go to make net-istio-webhook allows to configure multiple external-gateways
create another istiooperator.install.istio.io/v1alpha1
After that, I create 2 ksvc named alpha and beta, in two seperate namespaces:
$ kubectl get ksvc -A
NAMESPACE NAME URL LATESTCREATED LATESTREADY READY REASON
alpha alpha http://alpha.alpha.example.com alpha-00001 alpha-00001 True
beta beta http://beta.beta.example.com beta-00001 beta-00001 Unknown Uninitialized
Then, I can access to ksvc/alpha through knative-ingress-gateway and access ksvc/beta through knative-custom-gateway-alpha, perfectly.
# make request to ksvc alpha through knative-custom-gateway-alpha
$ curl -HHost:alpha.alpha.example.com 192.168.133.101
Alpha
# make request to ksvc beta through knative-ingress-gateway
$ curl -HHost:beta.beta.example.com 192.168.133.102
Beta
# make request to ksvc beta through knative-custom-gateway-alpha (no response)
$ curl -HHost:beta.beta.example.com 192.168.133.101
$
3. Question
What are the trade-offs we have to make when making this changes, for example, the first thing I easily recognize is ksvc/beta is marked as Unknown, despite the fact that it worked perfectly. What parts of the Knative Serving will be affected by this changes?
Assume that we knew how to rebuild Knative Serving from source and ready to do it.
Thanks for help.
The text was updated successfully, but these errors were encountered:
I think this would require a design doc including how to access alpha from beta as well if needed. Btw we have logic that stamps ingresses as ready that needs to change as well and not covered by the changes above. cc @ReToCode@dprotaso for commenting on this one.
Multiple Gateway and LoadBalancer type Service in one Knative cluster, Pros and Cons
1. Knative version:
2. Description
Hi, I am working with Knative Serving. Although I know that dedicated Load Balancer is expensive and "Knative uses a shared ingress Gateway to serve all incoming traffic within knative service mesh" (cited from Configuring the ingress gateway), but our business require me to do that. I achieved it by modify source code of
net-istio-controller
andnet-istio-webhook
. In detail, I made changes:net-istio-webhook
allows to configure multiple external-gatewaysistiooperator.install.istio.io/v1alpha1
config-istio
:After that, I create 2 ksvc named alpha and beta, in two seperate namespaces:
Then, I can access to
ksvc/alpha
throughknative-ingress-gateway
and accessksvc/beta
throughknative-custom-gateway-alpha
, perfectly.3. Question
What are the trade-offs we have to make when making this changes, for example, the first thing I easily recognize is
ksvc/beta
is marked asUnknown
, despite the fact that it worked perfectly. What parts of the Knative Serving will be affected by this changes?Assume that we knew how to rebuild Knative Serving from source and ready to do it.
Thanks for help.
The text was updated successfully, but these errors were encountered: