Skip to content

Commit

Permalink
Merge pull request #2743 from aamederen/patch-1
Browse files Browse the repository at this point in the history
Clarify Installation Document by Separating Helm Steps
  • Loading branch information
k8s-ci-robot authored Jul 5, 2018
2 parents 5039e77 + 0e89612 commit c5584cc
Showing 1 changed file with 44 additions and 35 deletions.
79 changes: 44 additions & 35 deletions docs/deploy/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@

## Contents

- [Mandatory command](#mandatory-command)
- [Custom Provider](#custom-provider)
- [Docker for Mac](#docker-for-mac)
- [minikube](#minikube)
- [AWS](#aws)
- [GCE - GKE](#gce---gke)
- [Azure](#azure)
- [Baremetal](#baremetal)
- [Generic Deployment](#generic-deployment)
- [Mandatory command](#mandatory-command)
- [Provider Specific Steps](#provider-specific-steps)
- [Docker for Mac](#docker-for-mac)
- [minikube](#minikube)
- [AWS](#aws)
- [GCE - GKE](#gce---gke)
- [Azure](#azure)
- [Baremetal](#baremetal)
- [Verify installation](#verify-installation)
- [Detect installed version](#detect-installed-version)
- [Using Helm](#using-helm)
- [Verify installation](#verify-installation)
- [Detect installed version](#detect-installed-version)

## Generic Deployment

Expand All @@ -24,11 +25,11 @@ The following resources are required for a generic deployment.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
```

## Custom Service Provider Deployment
### Provider Specific Steps

There are cloud provider specific yaml files.

### Docker for Mac
#### Docker for Mac

Kubernetes is available for Docker for Mac's Edge channel. Switch to the [Edge
channel][edge] and [enable Kubernetes][enable].
Expand All @@ -42,7 +43,7 @@ Create a service
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/cloud-generic.yaml
```

### minikube
#### minikube

For standard usage:

Expand All @@ -68,13 +69,13 @@ default-http-backend-66b447d9cf-rrlf9 1/1 Running 0 12s
nginx-ingress-controller-fdcdcd6dd-vvpgs 1/1 Running 0 11s
```

### AWS
#### AWS

In AWS we use an Elastic Load Balancer (ELB) to expose the NGINX Ingress controller behind a Service of `Type=LoadBalancer`.
Since Kubernetes v1.9.0 it is possible to use a classic load balancer (ELB) or network load balancer (NLB)
Please check the [elastic load balancing AWS details page](https://aws.amazon.com/es/elasticloadbalancing/details/)

#### Elastic Load Balancer - ELB
##### Elastic Load Balancer - ELB

This setup requires to choose in which layer (L4 or L7) we want to configure the ELB:

Expand Down Expand Up @@ -102,70 +103,78 @@ This example creates an ELB with just two listeners, one in port 80 and another

![Listeners](../images/elb-l7-listener.png)

#### Network Load Balancer (NLB)
##### Network Load Balancer (NLB)

This type of load balancer is supported since v1.10.0 as an ALPHA feature.

```console
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/service-nlb.yaml
```

### GCE - GKE
#### GCE - GKE

```console
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/cloud-generic.yaml
```

**Important Note:** proxy protocol is not supported in GCE/GKE

### Azure
#### Azure


```console
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/cloud-generic.yaml
```


### Baremetal
#### Baremetal

Using [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport):

```console
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml
```

## Using Helm
### Verify installation

NGINX Ingress controller can be installed via [Helm](https://helm.sh/) using the chart [stable/nginx](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress) from the official charts repository.
To install the chart with the release name `my-nginx`:
To check if the ingress controller pods have started, run the following command:

```console
helm install stable/nginx-ingress --name my-nginx
kubectl get pods --all-namespaces -l app=ingress-nginx --watch
```

If the kubernetes cluster has RBAC enabled, then run:
Once the operator pods are running, you can cancel the above command by typing `Ctrl+C`.
Now, you are ready to create your first ingress.

### Detect installed version

To detect which version of the ingress controller is running, exec into the pod and run `nginx-ingress-controller version` command.

```console
helm install stable/nginx-ingress --name my-nginx --set rbac.create=true
POD_NAMESPACE=ingress-nginx
POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app=ingress-nginx -o jsonpath={.items[0].metadata.name})
kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
```

## Verify installation
## Using Helm

To check if the ingress controller pods have started, run the following command:
NGINX Ingress controller can be installed via [Helm](https://helm.sh/) using the chart [stable/nginx](https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress) from the official charts repository.
To install the chart with the release name `my-nginx`:

```console
kubectl get pods --all-namespaces -l app=ingress-nginx --watch
helm install stable/nginx-ingress --name my-nginx
```

Once the operator pods are running, you can cancel the above command by typing `Ctrl+C`.
Now, you are ready to create your first ingress.
If the kubernetes cluster has RBAC enabled, then run:

## Detect installed version
```console
helm install stable/nginx-ingress --name my-nginx --set rbac.create=true
```

To detect which version of the ingress controller is running, exec into the pod and run `nginx-ingress-controller version` command.
Detect installed version:

```console
POD_NAMESPACE=ingress-nginx
POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app=ingress-nginx -o jsonpath={.items[0].metadata.name})
kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
POD_NAME=$(kubectl get pods -l app=nginx-ingress -o jsonpath={.items[0].metadata.name})
kubectl exec -it $POD_NAME -- /nginx-ingress-controller --version
```

0 comments on commit c5584cc

Please sign in to comment.