added multiplecontrollers-howto to faq (#11389)
This commit is contained in:
parent
5639979cb5
commit
8f4f15f8e3
2 changed files with 59 additions and 52 deletions
60
docs/faq.md
60
docs/faq.md
|
@ -1,6 +1,64 @@
|
|||
|
||||
# FAQ
|
||||
|
||||
## How can I easily install multiple instances of the ingress-nginx controller in the same cluster?
|
||||
|
||||
You can install them in different namespaces.
|
||||
|
||||
- Create a new namespace
|
||||
|
||||
```
|
||||
kubectl create namespace ingress-nginx-2
|
||||
```
|
||||
|
||||
- Use Helm to install the additional instance of the ingress controller
|
||||
- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/))
|
||||
- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config.
|
||||
But, if you have not added the helm repo then you can do this to add the repo to your helm config;
|
||||
|
||||
```
|
||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||
```
|
||||
|
||||
- Make sure you have updated the helm repo data;
|
||||
|
||||
```
|
||||
helm repo update
|
||||
```
|
||||
|
||||
- Now, install an additional instance of the ingress-nginx controller like this:
|
||||
|
||||
```
|
||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||
--namespace ingress-nginx-2 \
|
||||
--set controller.ingressClassResource.name=nginx-two \
|
||||
--set controller.ingressClass=nginx-two \
|
||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||
--set controller.ingressClassResource.enabled=true \
|
||||
--set controller.ingressClassByName=true
|
||||
```
|
||||
|
||||
If you need to install yet another instance, then repeat the procedure to create a new namespace,
|
||||
change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs.
|
||||
|
||||
Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly.
|
||||
The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod.
|
||||
|
||||
### I can't use multiple namespaces, what should I do?
|
||||
|
||||
If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this:
|
||||
|
||||
```
|
||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||
--namespace kube-system \
|
||||
--set controller.electionID=nginx-two-leader \
|
||||
--set controller.ingressClassResource.name=nginx-two \
|
||||
--set controller.ingressClass=nginx-two \
|
||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||
--set controller.ingressClassResource.enabled=true \
|
||||
--set controller.ingressClassByName=true
|
||||
```
|
||||
|
||||
## Retaining Client IPAddress
|
||||
|
||||
Please read [Retain Client IPAddress Guide here](./user-guide/retaining-client-ipaddress.md).
|
||||
|
@ -11,7 +69,7 @@ If you are using Ingress objects in your cluster (running Kubernetes older than
|
|||
version 1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or
|
||||
above, then please read [the migration guide here](./user-guide/k8s-122-migration.md).
|
||||
|
||||
## Validation Of __`path`__
|
||||
## Validation Of **`path`**
|
||||
|
||||
- For improving security and also following desired standards on Kubernetes API
|
||||
spec, the next release, scheduled for v1.8.0, will include a new & optional
|
||||
|
|
|
@ -192,54 +192,3 @@ Bear in mind that if you start Ingress-Nginx B with the command line argument `-
|
|||
It is highly likely that you will also see the name of the ingress resource in the same error message.
|
||||
This error message has been observed on use the deprecated annotation (`kubernetes.io/ingress.class`) in an Ingress resource manifest.
|
||||
It is recommended to use the `.spec.ingressClassName` field of the Ingress resource, to specify the name of the IngressClass of the Ingress you are defining.
|
||||
|
||||
## How can I easily install multiple instances of the ingress-nginx controller in the same cluster?
|
||||
|
||||
You can install them in different namespaces.
|
||||
|
||||
- Create a new namespace
|
||||
```
|
||||
kubectl create namespace ingress-nginx-2
|
||||
```
|
||||
- Use Helm to install the additional instance of the ingress controller
|
||||
- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/))
|
||||
- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config.
|
||||
But, if you have not added the helm repo then you can do this to add the repo to your helm config;
|
||||
```
|
||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||
```
|
||||
- Make sure you have updated the helm repo data;
|
||||
```
|
||||
helm repo update
|
||||
```
|
||||
- Now, install an additional instance of the ingress-nginx controller like this:
|
||||
```
|
||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||
--namespace ingress-nginx-2 \
|
||||
--set controller.ingressClassResource.name=nginx-two \
|
||||
--set controller.ingressClass=nginx-two \
|
||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||
--set controller.ingressClassResource.enabled=true \
|
||||
--set controller.ingressClassByName=true
|
||||
```
|
||||
|
||||
If you need to install yet another instance, then repeat the procedure to create a new namespace,
|
||||
change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs.
|
||||
|
||||
Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly.
|
||||
The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod.
|
||||
|
||||
### I can't use multiple namespaces, what should I do?
|
||||
|
||||
If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this:
|
||||
|
||||
```
|
||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||
--namespace kube-system \
|
||||
--set controller.electionID=nginx-two-leader \
|
||||
--set controller.ingressClassResource.name=nginx-two \
|
||||
--set controller.ingressClass=nginx-two \
|
||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||
--set controller.ingressClassResource.enabled=true \
|
||||
--set controller.ingressClassByName=true
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue