Configuring the ingress gateway
You’ll need to create the gateway service and deployment instance to handle traffic first. Let’s say you customized the default istio-ingressgateway
to custom-ingressgateway
as follows.
Update gateway instance knative-ingress-gateway
under knative-serving
namespace:
kubectl edit gateway knative-ingress-gateway -n knative-serving
Replace the label selector with the label of your service:
istio: ingressgateway
For the example custom-ingressgateway
service mentioned earlier, it should be updated to:
istio: custom-gateway
If there is a change in service ports (compared with that of istio-ingressgateway
), update the port info in the gateway accordingly.
-
This command opens your default text editor and allows you to edit the config-istio ConfigMap.
apiVersion: v1
data:
_example: |
################################
# #
# EXAMPLE CONFIGURATION #
# #
################################
# ...
Edit the file to add the
gateway.knative-serving.knative-ingress-gateway: <ingress_name>.<ingress_namespace>.svc.cluster.local
field with the fully qualified url of your service. For the examplecustom-ingressgateway
service mentioned earlier, it should be updated to:apiVersion: v1
data:
gateway.knative-serving.knative-ingress-gateway: custom-ingressgateway.custom-ns.svc.cluster.local
kind: ConfigMap
[...]
Replace the knative-ingress-gateway
gateway
We customized the gateway service so far, but we may also want to use our own gateway. We can replace the default gateway with our own gateway with following steps.
Let’s say you replace the default knative-ingress-gateway
gateway with knative-custom-gateway
in custom-ns
. First, create the knative-custom-gateway
gateway:
Create a YAML file using the following template:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: knative-custom-gateway
namespace: custom-ns
spec:
selector:
istio: <service-label>
servers:
- port:
number: 80
name: http
protocol: HTTP
Apply the YAML file by running the command:
Where
<filename>
is the name of the file you created in the previous step.
Update gateway configmap
config-istio
underknative-serving
namespace:kubectl edit configmap config-istio -n knative-serving
This command opens your default text editor and allows you to edit the config-istio ConfigMap.
apiVersion: v1
data:
_example: |
################################
# #
# EXAMPLE CONFIGURATION #
# #
################################
# ...
gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"
Edit the file to add the
gateway.<gateway-namespace>.<gateway-name>: istio-ingressgateway.istio-system.svc.cluster.local
field with the customized gateway. For the exampleknative-custom-gateway
mentioned earlier, it should be updated to:apiVersion: v1
data:
gateway.custom-ns.knative-custom-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"
kind: ConfigMap
[...]