diff --git a/controllers/gce/BETA_LIMITATIONS.md b/controllers/gce/BETA_LIMITATIONS.md index 47fdb4978..3642f38a2 100644 --- a/controllers/gce/BETA_LIMITATIONS.md +++ b/controllers/gce/BETA_LIMITATIONS.md @@ -106,31 +106,7 @@ Ingress is not yet supported on single zone clusters of size > 1000 nodes ([issu ## Disabling GLBC -Setting the annotation `kubernetes.io/ingress.class` to any value other than "gce" or the empty string, will force the GCE Ingress controller to ignore your Ingress. Do this if you wish to use one of the other Ingress controllers at the same time as the GCE controller, eg: - -```yaml -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: test - annotations: - kubernetes.io/ingress.class: "nginx" -spec: - tls: - - secretName: tls-secret - backend: - serviceName: echoheaders-https - servicePort: 80 -``` - -As of Kubernetes 1.3, GLBC runs as a static pod on the master. If you want to totally disable it, you can ssh into the master node and delete the GLBC manifest file found at `/etc/kubernetes/manifests/glbc.manifest`. You can also disable it on GKE at cluster bring-up time through the `disable-addons` flag, eg: - -```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 -``` +To completely stop the Ingress controller on GCE/GKE, please see [this] (/docs/faq/gce.md#how-do-i-disable-the-gce-ingress-controller) faq. ## Changing the cluster UID diff --git a/docs/faq/README.md b/docs/faq/README.md index 2ad4bfff3..2c8e86bd3 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -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? diff --git a/docs/faq/gce.md b/docs/faq/gce.md index b9428608f..6f3ede801 100644 --- a/docs/faq/gce.md +++ b/docs/faq/gce.md @@ -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? diff --git a/examples/deployment/gce/README.md b/examples/deployment/gce/README.md index 1c8ef12db..229478917 100644 --- a/examples/deployment/gce/README.md +++ b/examples/deployment/gce/README.md @@ -4,27 +4,17 @@ This example demonstrates the deployment of a GCE Ingress controller. Note: __all GCE/GKE clusters already have an Ingress controller running on the master. The only reason to deploy another GCE controller is if you want -to debug or otherwise observe its operation (eg via kubectl logs). Before -deploying another one in your cluster, make sure you disable the master -controller.__ +to debug or otherwise observe its operation (eg via kubectl logs).__ + +__Before deploying another one in your cluster, make sure you disable the master controller.__ ## Disabling the master controller -As of Kubernetes 1.3, GLBC runs as a static pod on the master. If you want to -totally disable it, you can ssh into the master node and delete the GLBC -manifest file found at `/etc/kubernetes/manifests/glbc.manifest`. You can also -disable it on 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 -``` +See the hard disable options [here](/docs/faq/gce.md#how-do-i-disable-the-gce-ingress-controller). ## Deploying a new controller -The following command deploys a GCE Ingress controller in your cluster +The following command deploys a GCE Ingress controller in your cluster: ```console $ kubectl create -f gce-ingress-controller.yaml @@ -36,7 +26,7 @@ NAME READY STATUS RESTARTS AGE l7-lb-controller-1s22c 2/2 Running 0 27s ``` -now you can create an Ingress and observe the controller +Now you can create an Ingress and observe the controller: ```console $ kubectl create -f gce-tls-ingress.yaml