From 10d1d4c791bb7bfd309cda2861fbcc1c2ac565b0 Mon Sep 17 00:00:00 2001 From: Prashanth Balasubramanian Date: Thu, 5 Nov 2015 22:54:23 -0800 Subject: [PATCH] Ingress doc clarifications --- .../addons/cluster-loadbalancing/glbc/README.md | 15 ++++++++++++--- docs/user-guide/ingress.md | 9 +++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/cluster/addons/cluster-loadbalancing/glbc/README.md b/cluster/addons/cluster-loadbalancing/glbc/README.md index f79f01187c46..d2342c30251d 100644 --- a/cluster/addons/cluster-loadbalancing/glbc/README.md +++ b/cluster/addons/cluster-loadbalancing/glbc/README.md @@ -6,6 +6,15 @@ This cluster addon is composed of: It relies on the [Ingress resource](../../../../docs/user-guide/ingress.md) only available in Kubernetes version 1.1 and beyond. +## Prerequisites + +Before you can receiver traffic through the GCE L7 Loadbalancer Controller you need: +* A Working Kubernetes 1.1 cluster +* At least 1 Kubernetes [NodePort Service](../../../../docs/user-guide/services.md#type-nodeport) (this is the endpoint for your Ingress) +* Firewall-rules that allow traffic to the NodePort service, as indicated by `kubectl` at Service creation time +* Adequate quota, as mentioned in the next section +* A single instance of the L7 Loadbalancer Controller pod (if you're using the default GCE setup, this should already be running in the `kube-system` namespace) + ## Quota GLBC is not aware of your GCE quota. As of this writing users get 3 [GCE Backend Services](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) by default. If you plan on creating Ingresses for multiple Kubernetes Services, remember that each one requires a backend service, and request quota. Should you fail to do so the controller will poll periodically and grab the first free backend service slot it finds. You can view your quota: @@ -55,7 +64,7 @@ forwarding-rule: k8s-fw-default-test-ingress Events: FirstSeen LastSeen Count From SubobjectPath Reason Message ───────── ──────── ───── ──── ───────────── ────── ─────── - 46s 46s 1 {loadbalancer-controller } Success Created loadbalancer 130.211.5.27 + 46s 46s 1 {loadbalancer-controller } Success Created loadbalancer 130.211.5.27 ``` * time, t=5m @@ -68,7 +77,7 @@ forwarding-rule: k8s-fw-default-test-ingress Events: FirstSeen LastSeen Count From SubobjectPath Reason Message ───────── ──────── ───── ──── ───────────── ────── ─────── - 46s 46s 1 {loadbalancer-controller } Success Created loadbalancer 130.211.5.27 + 46s 46s 1 {loadbalancer-controller } Success Created loadbalancer 130.211.5.27 ``` @@ -76,7 +85,7 @@ Events: Since GLBC runs as a cluster addon, you cannot simply delete the RC. The easiest way to disable it is to do as follows: -* IFF you wat to tear down existing L7 loadbalancers, hit the /delete-all-and-quit endpoint on the pod: +* IFF you want to tear down existing L7 loadbalancers, hit the /delete-all-and-quit endpoint on the pod: ```console $ kubectl get pods --namespace=kube-system diff --git a/docs/user-guide/ingress.md b/docs/user-guide/ingress.md index 0ccbbd125026..9c06a4e65127 100644 --- a/docs/user-guide/ingress.md +++ b/docs/user-guide/ingress.md @@ -38,6 +38,7 @@ Documentation for other releases can be found at - [Ingress](#ingress) - [What is Ingress?](#what-is-ingress) + - [Prerequisites](#prerequisites) - [The Ingress Resource](#the-ingress-resource) - [Ingress controllers](#ingress-controllers) - [Types of Ingress](#types-of-ingress) @@ -84,6 +85,14 @@ An Ingress is a collection of rules that allow inbound connections to reach the It can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. Users request ingress by POSTing the Ingress resource to the API server. An [Ingress controller](#ingress-controllers) is responsible for fulfilling the Ingress, usually with a loadbalancer, though it may also configure your edge router or additional frontends to help handle the traffic in an HA manner. +## Prerequisites + +Before you start using the Ingress resource, there are a few things you should understand: +* The Ingress resource is not available in any Kubernetes release prior to 1.1 +* You need an Ingress controller to satisfy an Ingress. Simply creating the resource will have no effect. +* On GCE/GKE there should be a [L7 cluster addon](../../cluster/addons/cluster-loadbalancing/glbc/README.md#prerequisites), on other platforms you either need to write your own or [deploy an existing controller](https://github.com/kubernetes/contrib/tree/master/Ingress) as a pod. +* The resource currently does not support HTTPS, but will do so before it leaves beta. + ## The Ingress Resource A minimal Ingress might look like: