Add docs on Election ID to Multiple Ingress Controller guide (#8855)

This commit is contained in:
qilong.qiu 2022-07-22 19:21:38 +08:00 committed by GitHub
parent c86d50ecef
commit a581a7bebc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View file

@ -228,3 +228,13 @@ If you start Ingress-Nginx B with the command line argument `--watch-ingress-wit
--set controller.ingressClassByName=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. - 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.
- 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.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
--set controller.ingressClassResource.enabled=true \
--set controller.ingressClassByName=true
```

View file

@ -8,7 +8,7 @@ To fix this problem, use [IngressClasses](https://kubernetes.io/docs/concepts/se
If all ingress controllers respect IngressClasses (e.g. multiple instances of ingress-nginx v1.0), you can deploy two Ingress controllers by granting them control over two different IngressClasses, then selecting one of the two IngressClasses with `ingressClassName`. If all ingress controllers respect IngressClasses (e.g. multiple instances of ingress-nginx v1.0), you can deploy two Ingress controllers by granting them control over two different IngressClasses, then selecting one of the two IngressClasses with `ingressClassName`.
First, ensure the `--controller-class=` and `--ingress-class` are set to something different on each ingress controller: First, ensure the `--controller-class=` and `--ingress-class` are set to something different on each ingress controller, If your additional ingress controller is to be installed in a namespace, where there is/are one/more-than-one ingress-nginx-controller(s) already installed, then you need to specify a different unique `--election-id` for the new instance of the controller.
```yaml ```yaml
# ingress-nginx Deployment/Statefulset # ingress-nginx Deployment/Statefulset
@ -19,6 +19,7 @@ spec:
- name: ingress-nginx-internal-controller - name: ingress-nginx-internal-controller
args: args:
- /nginx-ingress-controller - /nginx-ingress-controller
- '--election-id=ingress-controller-leader'
- '--controller-class=k8s.io/internal-ingress-nginx' - '--controller-class=k8s.io/internal-ingress-nginx'
- '--ingress-class=k8s.io/internal-nginx' - '--ingress-class=k8s.io/internal-nginx'
... ...
@ -53,6 +54,7 @@ or if installing with Helm:
```yaml ```yaml
controller: controller:
electionID: ingress-controller-leader
ingressClassResource: ingressClassResource:
name: internal-nginx # default: nginx name: internal-nginx # default: nginx
enabled: true enabled: true