Merge pull request #1353 from tonglil/patch-2

Clarify how to disable the GCE ingress controller
This commit is contained in:
Nick Sardo 2017-09-29 09:47:56 -07:00 committed by GitHub
commit 15e885fd41
4 changed files with 45 additions and 57 deletions

View file

@ -52,7 +52,7 @@ for unsatisfied Ingress.
## How do I disable an Ingress controller?
Either shutdown the controller satisfying the Ingress, or use the
`Ingress-class` annotation, as follows:
`ingress.class` annotation:
```yaml
apiVersion: extensions/v1beta1
@ -69,17 +69,16 @@ spec:
servicePort: 80
```
Setting the annotation to any value other than "gce" or the empty string, will
force the GCE controller to ignore your Ingress. The same applies for the nginx
controller.
The GCE controller will only act on Ingresses with the annotation value of "gce" or empty string "" (the default value if the annotation is omitted).
To completely stop the Ingress controller on GCE/GKE, please see [this](gce.md#host-do-i-disable-the-ingress-controller) faq.
The nginx controller will only act on Ingresses with the annotation value of "nginx" or empty string "" (the default value if the annotation is omitted).
To completely stop the Ingress controller on GCE/GKE, please see [this](gce.md#how-do-i-disable-the-gce-ingress-controller) faq.
## How do I run multiple Ingress controllers in the same cluster?
Multiple Ingress controllers can co-exist and key off the `ingress-class`
annotation, as shown in this [faq](#how-do-i-run-multiple-ingress-controllers-in-the-same-cluster),
as well as in [this](/examples/daemonset/nginx) example.
Multiple Ingress controllers can co-exist and key off the `ingress.class`
annotation, as shown in this faq, as well as in [this](/examples/daemonset/nginx) example.
## How do I contribute a backend to the generic Ingress controller?

View file

@ -281,16 +281,39 @@ We plan to fix this [soon](https://github.com/kubernetes/kubernetes/issues/16337
## How do I disable the GCE Ingress controller?
3 options:
1. Have it no-op based on the `ingress.class` annotation as shown [here](README.md#how-do-i-disable-the-ingress-controller)
2. SSH into the GCE master node and delete the GLBC manifest file found at `/etc/kubernetes/manifests/glbc.manifest`
3. Create the GKE cluster without it:
As of Kubernetes 1.3, GLBC runs as a static pod on the master.
If you want to disable it, you have 3 options:
### Soft disable
Option 1. Have it no-op for an Ingress resource based on the `ingress.class` annotation as shown [here](README.md#how-do-i-disable-an-ingress-controller).
This can also be used to use one of the other Ingress controllers at the same time as the GCE controller.
### Hard disable
Option 2. SSH into the GCE master node and delete the GLBC manifest file found at `/etc/kubernetes/manifests/glbc.manifest`.
Option 3. Disable the addon in GKE via `gcloud`:
#### Disabling GCE ingress on cluster creation
Disable the addon in GKE at cluster bring-up time through the `disable-addons` flag:
```console
$ gcloud container clusters create mycluster --network "default" --num-nodes 1 \
--machine-type n1-standard-2 --zone $ZONE \
--disable-addons HttpLoadBalancing \
--disk-size 50 --scopes storage-full
gcloud container clusters create mycluster --network "default" --num-nodes 1 \
--machine-type n1-standard-2 \
--zone $ZONE \
--disk-size 50 \
--scopes storage-full \
--disable-addons HttpLoadBalancing
```
#### Disabling GCE ingress in an existing cluster
Disable the addon in GKE for an existing cluster through the `update-addons` flag:
```console
gcloud container clusters update mycluster --update-addons HttpLoadBalancing=DISABLED
```
## What GCE resources are shared between Ingresses?