Skip to content

Commit

Permalink
Update ingress outputs (#10052)
Browse files Browse the repository at this point in the history
* Update ingress outputs

* ing -> ingress

* Feedback from @cmluciano

* update describe outputs

* update output description
  • Loading branch information
makocchi-git authored and k8s-ci-robot committed Aug 29, 2018
1 parent 6f4f97b commit 0ecb825
Showing 1 changed file with 80 additions and 28 deletions.
108 changes: 80 additions & 28 deletions content/en/docs/concepts/services-networking/ingress.md
Expand Up @@ -97,15 +97,15 @@ In order for the Ingress resource to work, the cluster must have an Ingress cont
* [NGINX, Inc.](https://www.nginx.com/) offers support and maintenance for the [NGINX Ingress Controller for Kubernetes](https://www.nginx.com/products/nginx/kubernetes-ingress-controller)

{{< note >}}
Review the documentation for your controller to find its specific support policy.
**Note:** Review the documentation for your controller to find its specific support policy.
{{< /note >}}

## Before you begin

The following document describes a set of cross-platform features exposed through the Ingress resource. Ideally, all Ingress controllers should fulfill this specification, but we're not there yet. We currently support and maintain [GCE](https://git.k8s.io/ingress-gce/README.md) and [nginx](https://git.k8s.io/ingress-nginx/README.md) controllers. If you use the F5 BIG-IP Controller, see [Use the BIG-IP Controller as a Kubernetes Ingress Controller](http://clouddocs.f5.com/containers/latest/kubernetes/kctlr-k8s-ingress-ctlr.html).

{{< note >}}
Make sure you review your controller's specific docs so you understand the caveats.
**Note:** Make sure you review your controller's specific docs so you understand the caveats.
{{< /note >}}

## Types of Ingress
Expand All @@ -121,14 +121,16 @@ as well, by specifying a *default backend* with no rules.
If you create it using `kubectl create -f` you should see:

```shell
$ kubectl get ing
NAME RULE BACKEND ADDRESS
test-ingress - testsvc:80 107.178.254.228
kubectl get ingress test-ingress
```

```shell
NAME HOSTS ADDRESS PORTS AGE
test-ingress * 107.178.254.228 80 59s
```

Where `107.178.254.228` is the IP allocated by the Ingress controller to satisfy
this Ingress. The `RULE` column shows that all traffic sent to the IP are
directed to the Kubernetes Service listed under `BACKEND`.
this Ingress.

### Simple fanout

Expand Down Expand Up @@ -170,17 +172,36 @@ spec:
When you create the Ingress with `kubectl create -f`:

```shell
$ kubectl get ing
NAME RULE BACKEND ADDRESS
test -
foo.bar.com
/foo s1:80
/bar s2:80
kubectl describe ingress test
```

```shell
Name: test
Namespace: default
Address: 178.91.123.132
Default backend: default-http-backend:80 (10.8.2.3:8080)
Rules:
Host Path Backends
---- ---- --------
foo.bar.com
/foo s1:80 (10.8.0.90:80)
/bar s2:80 (10.8.0.91:80)
Annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ADD 22s loadbalancer-controller default/test
```

The Ingress controller will provision an implementation specific loadbalancer
that satisfies the Ingress, as long as the services (`s1`, `s2`) exist.
When it has done so, you will see the address of the loadbalancer under the
last column of the Ingress.
When it has done so, you will see the address of the loadbalancer at the
Address field.

{{< note >}}
**Note:** You need to create a default-http-backend [Service](/docs/concepts/services-networking/service/) if necessary.
{{< /note >}}

### Name based virtual hosting

Expand Down Expand Up @@ -292,12 +313,29 @@ specific docs to see how they handle health checks (
Say you'd like to add a new Host to an existing Ingress, you can update it by editing the resource:

```shell
$ kubectl get ing
NAME RULE BACKEND ADDRESS
test - 178.91.123.132
foo.bar.com
/foo s1:80
$ kubectl edit ing test
kubectl describe ingress test
```

```shell
Name: test
Namespace: default
Address: 178.91.123.132
Default backend: default-http-backend:80 (10.8.2.3:8080)
Rules:
Host Path Backends
---- ---- --------
foo.bar.com
/foo s1:80 (10.8.0.90:80)
Annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ADD 35s loadbalancer-controller default/test
```

```shell
kubectl edit ingress test
```

This should pop up an editor with the existing yaml, modify it to include the new Host:
Expand Down Expand Up @@ -325,13 +363,27 @@ spec:
Saving the yaml will update the resource in the API server, which should tell the Ingress controller to reconfigure the loadbalancer.

```shell
$ kubectl get ing
NAME RULE BACKEND ADDRESS
test - 178.91.123.132
foo.bar.com
/foo s1:80
bar.baz.com
/foo s2:80
kubectl describe ingress test
```

```shell
Name: test
Namespace: default
Address: 178.91.123.132
Default backend: default-http-backend:80 (10.8.2.3:8080)
Rules:
Host Path Backends
---- ---- --------
foo.bar.com
/foo s1:80 (10.8.0.90:80)
bar.baz.com
/foo s2:80 (10.8.0.91:80)
Annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ADD 45s loadbalancer-controller default/test
```

You can achieve the same by invoking `kubectl replace -f` on a modified Ingress yaml file.
Expand Down

0 comments on commit 0ecb825

Please sign in to comment.