-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Create Configure Knative Networking page #6518
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
cbc1aa6
14b81f4
3b315cb
9a212b2
2300e4f
e6167d0
d283146
5062101
916f3b4
81fd46e
d10ab27
9aec3ac
1c48767
205ecae
310d9eb
84f0b03
92d24f1
55a8c41
e35130c
77cb4b8
a019583
fb9a9f0
e39c0ae
f346e57
c277d3d
2578283
4d49145
4fad8ae
8b39f84
8986808
761be15
f7a24a0
3905026
a4512c4
49db831
41240db
631c56f
73e845f
6dbb22a
497620d
359f605
8e5bf80
5c032f4
9cf4980
187c0a1
3e2a67f
1c05b86
dddacd1
129133a
f300403
d475c32
6f6fb4b
1eeda2e
614e293
ee0d3f0
d70fae5
aa5c536
1425f02
6659e07
9059d0d
1d76ef9
7c0cb5d
d21ff02
89a5b3c
e1b403e
39b879a
96c2e5d
de084ee
4de8810
6240ade
d10aa03
845b289
190f622
176cadf
e77ee57
003de74
aa645a3
0f1e2c6
7806497
fc76a54
93dc28b
32eb3a4
b9ee495
99a8194
94f611a
73f8507
47883ad
f5a1367
9ec1cfe
d1fedb1
10035ad
1948079
48664a3
031fec0
2d0b90d
065b020
daab253
4dc3ea2
dd6e4be
7e94de4
1af8870
33a0b7a
c489ded
2b6b3f3
dd061d9
15884c6
5b132e9
bcc347a
aba1034
d2af6d9
c988447
214e7ba
4df6d8c
92670a8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| Use the following steps to install and enable Contour and set it as the ingress conroller. | ||
|
|
||
| 1. Install the Knative Contour configuration: | ||
|
|
||
| ```bash | ||
| kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}} | ||
| ``` | ||
|
|
||
| 1. Install the Knative Contour integration controller: | ||
|
|
||
| ```bash | ||
| kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} | ||
| ``` | ||
|
|
||
| 1. Configure Knative Serving to use Contour: | ||
|
|
||
| ```bash | ||
| kubectl patch configmap/config-network \ | ||
| --namespace knative-serving \ | ||
| --type merge \ | ||
| --patch '{"data":{"ingress-class":"contour.ingress.networking.knative.dev"}}' | ||
| ``` | ||
|
|
||
| 1. Get the external IP address (FQDN) to later configure DNS: | ||
|
|
||
| ```bash | ||
| kubectl --namespace contour-external get service envoy | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| Use the following steps to install and configure the Knative Gateway API adapter. Note that you need to have a [Gateway API implementation](https://gateway-api.sigs.k8s.io/implementations/) installed in your cluster. The Knative team currently tests the Istio, Contour, and Envoy-Gateway implementations of Gateway API. | ||
|
|
||
| 1. Clone the Gateway API repo: | ||
|
|
||
| ```bash | ||
| git clone https://github.com/knative-extensions/net-gateway-api.git | ||
| cd net-gateway-api | ||
| ``` | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need an additional step here (not currently well-documented) to align the Creation of these gateways is alluded to in this section of the More concretely, the
Each value is a string which contains additional YAML content (a list of objects, typically a single item) in the following format: - class: $GATEWAY_CLASS_NAME
gateway: $NAMESPACE/$GATEWAY_NAME
service: $NAMESPACE/$SERVICE_NAMEWhere
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We still need some documentation about filling in the |
||
|
|
||
| 1. Set environment variables: | ||
|
|
||
| ```bash | ||
| export KO_DOCKER_REPO=kind.local | ||
| export KIND_CLUSTER_NAME=knative # (keep this if your cluster is named "knative") | ||
| ``` | ||
|
|
||
| 1. Deploy Gateway API resources: | ||
|
|
||
| ```bash | ||
| ko apply -f config/ | ||
| ``` | ||
|
|
||
| 1. Install the Knative Gateway API: | ||
|
|
||
| ```bash | ||
| kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateway-api.yaml") }} | ||
| ``` | ||
|
|
||
| 1. Configure Knative Serving to use the Knative Gateway API ingress class: | ||
|
|
||
| ```bash | ||
| kubectl patch configmap/config-network \ | ||
| --namespace knative-serving \ | ||
| --type merge \ | ||
| --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' | ||
| ``` | ||
|
|
||
| 1. Edit the `config-gateway` ConfigMap in the knative-serving namespace to specify gateway resources for external and local traffic. For the `external-gateways` key, specify the value for `name` and for `service` as needed. Do the same for the `local gateways`. The `namespace` should be kept at `knative-serving`. | ||
|
|
||
| ```bash | ||
| cat <<EOF | kubectl apply -f - | ||
| apiVersion: v1 | ||
| kind: ConfigMap | ||
| metadata: | ||
| name: config-gateway | ||
| namespace: knative-serving | ||
| labels: | ||
| app.kubernetes.io/component: net-gateway-api | ||
| app.kubernetes.io/name: knative-serving | ||
| data: | ||
| external-gateways: | | ||
| - name: knative-ingress-gateway # Name of the external Gateway resource | ||
| namespace: knative-serving # Namespace where the Gateway is deployed | ||
| service: knative-ingress-service.knative-serving.svc.cluster.local # backing Service FQDN | ||
| local-gateways: | | ||
| - name: knative-local-gateway # Name of the local Gateway resource | ||
| namespace: knative-serving # Namespace where the Gateway is deployed | ||
| service: knative-local-service.knative-serving.svc.cluster.local # backing Service FQDN | ||
| EOF | ||
| ``` | ||
|
|
||
| 1. Verify the `config-gateway` ConfigMap: | ||
|
|
||
| ```bash | ||
| kubectl get configmap config-gateway -n knative-serving -o yaml | ||
| ``` | ||
|
|
||
| 1. Get the external IP address (FQDN) to configure DNS records: | ||
|
|
||
| ```bash | ||
| kubectl get gateway --all-namespaces | ||
| ``` | ||
|
|
||
| Look for the external Gateway (`knative-ingress-gateway`) to get status and address for DNS configuration. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| Use the following steps to install Istio and set it as the ingress conroller. | ||
|
|
||
| 1. Install a properly configured Istio: | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The artifact "macros" are not rendering to provide the URL. I wasn't able to find this one.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You may need a space between
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep, I see this not working, but I haven't yet figured out why. I'm guessing it's the combination of macros and snippets that is doing it.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Okay, I figured it out. We have two ways of including snippets. You can see the use of Note that you may need to indent the snippet content by 4 spaces when using |
||
|
|
||
| ```bash | ||
| kubectl apply -l knative.dev/crd-install=true -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml") }} | ||
evankanderson marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| kubectl apply -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml") }} | ||
| ``` | ||
|
|
||
| 1. Install the Knative Istio controller: | ||
|
|
||
| ```bash | ||
| kubectl apply -f {{ artifact(repo="net-istio",org="knative-extensions", file="net-istio.yaml") }} | ||
| ``` | ||
|
|
||
| <!-- ```bash | ||
| kubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.20.1/net-istio.yaml | ||
| ``` --> | ||
|
|
||
| 1. Configure the `config-network` ConfigMap to use Istio: | ||
|
|
||
| ```bash | ||
| kubectl patch configmap/config-network \ | ||
| --namespace knative-serving \ | ||
| --type merge \ | ||
| --patch '{"data":{"ingress-class":"istio.ingress.networking.knative.dev"}}' | ||
| ``` | ||
|
|
||
| 1. Get the external IP address (FQDN) to later configure DNS: | ||
|
|
||
| ```bash | ||
| kubectl --namespace istio-system get service istio-ingressgateway | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| Use the following steps to install Kourier and set it as the ingress controller. | ||
|
|
||
| 1. Install the Knative Kourier controller: | ||
|
|
||
| ```bash | ||
| kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions", file="kourier.yaml") }} | ||
| ``` | ||
|
|
||
| 1. Configure Knative Serving to use Kourier by default: | ||
|
|
||
| ```bash | ||
| kubectl patch configmap/config-network \ | ||
| --namespace knative-serving \ | ||
| --type merge \ | ||
| --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' | ||
| ``` | ||
|
|
||
| 1. Get the external IP address (FQDN) to later configure DNS: | ||
|
|
||
| ```bash | ||
| kubectl --namespace kourier-system get service kourier | ||
| ``` |
Uh oh!
There was an error while loading. Please reload this page.