Deploy GitHub Pages

This commit is contained in:
k8s-ci-robot 2021-11-28 21:12:19 +00:00
parent e2c1e93055
commit 02cf70e8fc
20 changed files with 67 additions and 67 deletions

View file

@ -30,7 +30,7 @@
</code></pre></div> <h4 id=exoscale>Exoscale<a class=headerlink href=#exoscale title="Permanent link"></a></h4> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/exoscale/deploy.yaml</span> </code></pre></div> <h4 id=exoscale>Exoscale<a class=headerlink href=#exoscale title="Permanent link"></a></h4> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/exoscale/deploy.yaml</span>
</code></pre></div> <p>The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager <a href=https://github.com/exoscale/exoscale-cloud-controller-manager/blob/master/docs/service-loadbalancer.md>documentation</a>.</p> <h4 id=oracle-cloud-infrastructure>Oracle Cloud Infrastructure<a class=headerlink href=#oracle-cloud-infrastructure title="Permanent link"></a></h4> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml</span> </code></pre></div> <p>The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager <a href=https://github.com/exoscale/exoscale-cloud-controller-manager/blob/master/docs/service-loadbalancer.md>documentation</a>.</p> <h4 id=oracle-cloud-infrastructure>Oracle Cloud Infrastructure<a class=headerlink href=#oracle-cloud-infrastructure title="Permanent link"></a></h4> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml</span>
</code></pre></div> <p>A <a href=https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md>complete list of available annotations for Oracle Cloud Infrastructure</a> can be found in the <a href=https://github.com/oracle/oci-cloud-controller-manager>OCI Cloud Controller Manager</a> documentation.</p> <h3 id=bare-metal-clusters>Bare metal clusters<a class=headerlink href=#bare-metal-clusters title="Permanent link"></a></h3> <p>Using <a href=https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport>NodePort</a>:</p> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/baremetal/deploy.yaml</span> </code></pre></div> <p>A <a href=https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md>complete list of available annotations for Oracle Cloud Infrastructure</a> can be found in the <a href=https://github.com/oracle/oci-cloud-controller-manager>OCI Cloud Controller Manager</a> documentation.</p> <h3 id=bare-metal-clusters>Bare metal clusters<a class=headerlink href=#bare-metal-clusters title="Permanent link"></a></h3> <p>Using <a href=https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport>NodePort</a>:</p> <div class=highlight><pre><span></span><code><span class=go>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/baremetal/deploy.yaml</span>
</code></pre></div> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>Applicable on kubernetes clusters deployed on bare-metal with generic Linux distro(Such as CentOs, Ubuntu ...).</p> </div> <div class="admonition info"> <p class=admonition-title>Info</p> <p>For extended notes regarding deployments on bare-metal, see <a href=baremetal/ >Bare-metal considerations</a>.</p> </div> <h2 id=miscellaneous>Miscellaneous<a class=headerlink href=#miscellaneous title="Permanent link"></a></h2> <h3 id=checking-ingress-controller-version>Checking ingress controller version<a class=headerlink href=#checking-ingress-controller-version title="Permanent link"></a></h3> <p>Run <code>nginx-ingress-controller --version</code> within the pod, for instance with <code>kubectl exec</code>:</p> <div class=highlight><pre><span></span><code><span class=go>POD_NAMESPACE=ingress-nginx</span> </code></pre></div> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>Applicable on kubernetes clusters deployed on bare-metal with generic Linux distro(Such as CentOs, Ubuntu ...).</p> </div> <div class="admonition info"> <p class=admonition-title>Info</p> <p>For extended notes regarding deployments on bare-metal, see <a href=baremetal/ >Bare-metal considerations</a>.</p> </div> <h2 id=miscellaneous>Miscellaneous<a class=headerlink href=#miscellaneous title="Permanent link"></a></h2> <h3 id=checking-ingress-controller-version>Checking ingress controller version<a class=headerlink href=#checking-ingress-controller-version title="Permanent link"></a></h3> <p>Run <code>ingress-nginx-controller --version</code> within the pod, for instance with <code>kubectl exec</code>:</p> <div class=highlight><pre><span></span><code><span class=go>POD_NAMESPACE=ingress-nginx</span>
<span class=go>POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx --field-selector=status.phase=Running -o name)</span> <span class=go>POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx --field-selector=status.phase=Running -o name)</span>
<span class=go>kubectl exec $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version</span> <span class=go>kubectl exec $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version</span>
</code></pre></div> <h3 id=scope>Scope<a class=headerlink href=#scope title="Permanent link"></a></h3> <p>By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior, use the flag <code>--watch-namespace</code> or check the Helm chart value <code>controller.scope</code> to limit the controller to a single namespace.</p> <p>See also <a href=https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster>“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”</a> for more details.</p> <h3 id=webhook-network-access>Webhook network access<a class=headerlink href=#webhook-network-access title="Permanent link"></a></h3> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The controller uses an <a href=https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ >admission webhook</a> to validate Ingress definitions. Make sure that you don't have <a href=https://kubernetes.io/docs/concepts/services-networking/network-policies/ >Network policies</a> or additional firewalls preventing connections from the API server to the <code>ingress-nginx-controller-admission</code> service.</p> </div> <h3 id=certificate-generation>Certificate generation<a class=headerlink href=#certificate-generation title="Permanent link"></a></h3> <div class="admonition attention"> <p class=admonition-title>Attention</p> <p>The first time the ingress controller starts, two <a href=https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ >Jobs</a> create the SSL Certificate used by the admission webhook.</p> </div> <p>THis can cause an initial delay of up to two minutes until it is possible to create and validate Ingress definitions.</p> <p>You can wait until it is ready to run the next command:</p> <div class=highlight><pre><span></span><code> <span class="l l-Scalar l-Scalar-Plain">kubectl wait --namespace ingress-nginx \</span> </code></pre></div> <h3 id=scope>Scope<a class=headerlink href=#scope title="Permanent link"></a></h3> <p>By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior, use the flag <code>--watch-namespace</code> or check the Helm chart value <code>controller.scope</code> to limit the controller to a single namespace.</p> <p>See also <a href=https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster>“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”</a> for more details.</p> <h3 id=webhook-network-access>Webhook network access<a class=headerlink href=#webhook-network-access title="Permanent link"></a></h3> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>The controller uses an <a href=https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ >admission webhook</a> to validate Ingress definitions. Make sure that you don't have <a href=https://kubernetes.io/docs/concepts/services-networking/network-policies/ >Network policies</a> or additional firewalls preventing connections from the API server to the <code>ingress-nginx-controller-admission</code> service.</p> </div> <h3 id=certificate-generation>Certificate generation<a class=headerlink href=#certificate-generation title="Permanent link"></a></h3> <div class="admonition attention"> <p class=admonition-title>Attention</p> <p>The first time the ingress controller starts, two <a href=https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ >Jobs</a> create the SSL Certificate used by the admission webhook.</p> </div> <p>THis can cause an initial delay of up to two minutes until it is possible to create and validate Ingress definitions.</p> <p>You can wait until it is ready to run the next command:</p> <div class=highlight><pre><span></span><code> <span class="l l-Scalar l-Scalar-Plain">kubectl wait --namespace ingress-nginx \</span>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -17,7 +17,7 @@
<span class=go>Events:</span> <span class=go>Events:</span>
<span class=go> FirstSeen LastSeen Count From SubObjectPath Type Reason Message</span> <span class=go> FirstSeen LastSeen Count From SubObjectPath Type Reason Message</span>
<span class=go> --------- -------- ----- ---- ------------- -------- ------ -------</span> <span class=go> --------- -------- ----- ---- ------------- -------- ------ -------</span>
<span class=go> 7s 7s 1 {nginx-ingress-controller } Normal CREATE default/nginx-test</span> <span class=go> 7s 7s 1 {ingress-nginx-controller } Normal CREATE default/nginx-test</span>
<span class=gp>$</span> curl -I http://stickyingress.example.com <span class=gp>$</span> curl -I http://stickyingress.example.com

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: nginx-ingress-controller name: ingress-nginx-controller
labels: labels:
app.kubernetes.io/name: ingress-nginx app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/part-of: ingress-nginx
@ -18,14 +18,14 @@ spec:
app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/part-of: ingress-nginx
spec: spec:
# hostNetwork makes it possible to use ipv6 and to preserve the source IP correctly regardless of docker configuration # hostNetwork makes it possible to use ipv6 and to preserve the source IP correctly regardless of docker configuration
# however, it is not a hard dependency of the nginx-ingress-controller itself and it may cause issues if port 10254 already is taken on the host # however, it is not a hard dependency of the ingress-nginx-controller itself and it may cause issues if port 10254 already is taken on the host
# that said, since hostPort is broken on CNI (https://github.com/kubernetes/kubernetes/issues/31307) we have to use hostNetwork where CNI is used # that said, since hostPort is broken on CNI (https://github.com/kubernetes/kubernetes/issues/31307) we have to use hostNetwork where CNI is used
# like with kubeadm # like with kubeadm
# hostNetwork: true # hostNetwork: true
terminationGracePeriodSeconds: 60 terminationGracePeriodSeconds: 60
containers: containers:
- image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.33.0 - image: k8s.gcr.io/ingress-nginx/controller:v1.0.5
name: nginx-ingress-controller name: controller
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
@ -54,4 +54,4 @@ spec:
fieldPath: metadata.namespace fieldPath: metadata.namespace
args: args:
- /nginx-ingress-controller - /nginx-ingress-controller
- --publish-service=$(POD_NAMESPACE)/nginx-ingress-lb - --publish-service=$(POD_NAMESPACE)/ingress-nginx-lb

View file

@ -2,7 +2,7 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: nginx-ingress-lb name: ingress-nginx-lb
labels: labels:
app.kubernetes.io/name: ingress-nginx app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/part-of: ingress-nginx
@ -18,6 +18,6 @@ spec:
name: https name: https
targetPort: 443 targetPort: 443
selector: selector:
# Selects nginx-ingress-controller pods # Selects ingress-nginx-controller pods
app.kubernetes.io/name: ingress-nginx app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/part-of: ingress-nginx

View file

@ -39,10 +39,10 @@
<span class=go>Events:</span> <span class=go>Events:</span>
<span class=go> FirstSeen LastSeen Count From SubObjectPath Type Reason Message</span> <span class=go> FirstSeen LastSeen Count From SubObjectPath Type Reason Message</span>
<span class=go> --------- -------- ----- ---- ------------- -------- ------ -------</span> <span class=go> --------- -------- ----- ---- ------------- -------- ------ -------</span>
<span class=go> 7s 7s 1 {nginx-ingress-controller } Normal CREATE default/nginx-test</span> <span class=go> 7s 7s 1 {ingress-nginx-controller } Normal CREATE default/nginx-test</span>
<span class=go> 7s 7s 1 {nginx-ingress-controller } Normal UPDATE default/nginx-test</span> <span class=go> 7s 7s 1 {ingress-nginx-controller } Normal UPDATE default/nginx-test</span>
<span class=go> 7s 7s 1 {nginx-ingress-controller } Normal CREATE ip: 104.198.183.6</span> <span class=go> 7s 7s 1 {ingress-nginx-controller } Normal CREATE ip: 104.198.183.6</span>
<span class=go> 7s 7s 1 {nginx-ingress-controller } Warning MAPPING Ingress rule &#39;default/nginx-test&#39; contains no path definition. Assuming /</span> <span class=go> 7s 7s 1 {ingress-nginx-controller } Warning MAPPING Ingress rule &#39;default/nginx-test&#39; contains no path definition. Assuming /</span>
<span class=gp>$</span> curl <span class=m>104</span>.198.183.6 -L <span class=gp>$</span> curl <span class=m>104</span>.198.183.6 -L
<span class=go>curl: (60) SSL certificate problem: self signed certificate</span> <span class=go>curl: (60) SSL certificate problem: self signed certificate</span>

View file

@ -44,7 +44,7 @@ Do not move it without providing redirects.
<span class=go> --user string The name of the kubeconfig user to use</span> <span class=go> --user string The name of the kubeconfig user to use</span>
<span class=go>Use &quot;ingress-nginx [command] --help&quot; for more information about a command.</span> <span class=go>Use &quot;ingress-nginx [command] --help&quot; for more information about a command.</span>
</code></pre></div> <h2 id=common-flags>Common Flags<a class=headerlink href=#common-flags title="Permanent link"></a></h2> <ul> <li>Every subcommand supports the basic <code>kubectl</code> configuration flags like <code>--namespace</code>, <code>--context</code>, <code>--client-key</code> and so on.</li> <li>Subcommands that act on a particular <code>ingress-nginx</code> pod (<code>backends</code>, <code>certs</code>, <code>conf</code>, <code>exec</code>, <code>general</code>, <code>logs</code>, <code>ssh</code>), support the <code>--deployment &lt;deployment&gt;</code> and <code>--pod &lt;pod&gt;</code> flags to select either a pod from a deployment with the given name, or a pod with the given name. The <code>--deployment</code> flag defaults to <code>nginx-ingress-controller</code>.</li> <li>Subcommands that inspect resources (<code>ingresses</code>, <code>lint</code>) support the <code>--all-namespaces</code> flag, which causes them to inspect resources in every namespace.</li> </ul> <h2 id=subcommands>Subcommands<a class=headerlink href=#subcommands title="Permanent link"></a></h2> <p>Note that <code>backends</code>, <code>general</code>, <code>certs</code>, and <code>conf</code> require <code>ingress-nginx</code> version <code>0.23.0</code> or higher.</p> <h3 id=backends>backends<a class=headerlink href=#backends title="Permanent link"></a></h3> <p>Run <code>kubectl ingress-nginx backends</code> to get a JSON array of the backends that an ingress-nginx controller currently knows about:</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl ingress-nginx backends -n ingress-nginx </code></pre></div> <h2 id=common-flags>Common Flags<a class=headerlink href=#common-flags title="Permanent link"></a></h2> <ul> <li>Every subcommand supports the basic <code>kubectl</code> configuration flags like <code>--namespace</code>, <code>--context</code>, <code>--client-key</code> and so on.</li> <li>Subcommands that act on a particular <code>ingress-nginx</code> pod (<code>backends</code>, <code>certs</code>, <code>conf</code>, <code>exec</code>, <code>general</code>, <code>logs</code>, <code>ssh</code>), support the <code>--deployment &lt;deployment&gt;</code> and <code>--pod &lt;pod&gt;</code> flags to select either a pod from a deployment with the given name, or a pod with the given name. The <code>--deployment</code> flag defaults to <code>ingress-nginx-controller</code>.</li> <li>Subcommands that inspect resources (<code>ingresses</code>, <code>lint</code>) support the <code>--all-namespaces</code> flag, which causes them to inspect resources in every namespace.</li> </ul> <h2 id=subcommands>Subcommands<a class=headerlink href=#subcommands title="Permanent link"></a></h2> <p>Note that <code>backends</code>, <code>general</code>, <code>certs</code>, and <code>conf</code> require <code>ingress-nginx</code> version <code>0.23.0</code> or higher.</p> <h3 id=backends>backends<a class=headerlink href=#backends title="Permanent link"></a></h3> <p>Run <code>kubectl ingress-nginx backends</code> to get a JSON array of the backends that an ingress-nginx controller currently knows about:</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl ingress-nginx backends -n ingress-nginx
<span class=go>[</span> <span class=go>[</span>
<span class=go> {</span> <span class=go> {</span>
<span class=go> &quot;name&quot;: &quot;default-apple-service-5678&quot;,</span> <span class=go> &quot;name&quot;: &quot;default-apple-service-5678&quot;,</span>
@ -174,7 +174,7 @@ Do not move it without providing redirects.
<span class=go> https://github.com/kubernetes/ingress-nginx/issues/3174</span> <span class=go> https://github.com/kubernetes/ingress-nginx/issues/3174</span>
<span class=go>Checking deployments...</span> <span class=go>Checking deployments...</span>
<span class=go>✗ namespace2/nginx-ingress-controller</span> <span class=go>✗ namespace2/ingress-nginx-controller</span>
<span class=go> - Uses removed config flag --sort-backends</span> <span class=go> - Uses removed config flag --sort-backends</span>
<span class=go> Lint added for version 0.22.0</span> <span class=go> Lint added for version 0.22.0</span>
<span class=go> https://github.com/kubernetes/ingress-nginx/issues/3655</span> <span class=go> https://github.com/kubernetes/ingress-nginx/issues/3655</span>
@ -189,7 +189,7 @@ Do not move it without providing redirects.
<span class=go> https://github.com/kubernetes/ingress-nginx/issues/3743</span> <span class=go> https://github.com/kubernetes/ingress-nginx/issues/3743</span>
<span class=go>Checking deployments...</span> <span class=go>Checking deployments...</span>
<span class=go>✗ namespace2/nginx-ingress-controller</span> <span class=go>✗ namespace2/ingress-nginx-controller</span>
<span class=go> - Uses removed config flag --enable-dynamic-certificates</span> <span class=go> - Uses removed config flag --enable-dynamic-certificates</span>
<span class=go> Lint added for version 0.24.0</span> <span class=go> Lint added for version 0.24.0</span>
<span class=go> https://github.com/kubernetes/ingress-nginx/issues/3808</span> <span class=go> https://github.com/kubernetes/ingress-nginx/issues/3808</span>
@ -210,7 +210,7 @@ Do not move it without providing redirects.
<span class=go>I0405 16:53:46.193913 7 event.go:209] Event(v1.ObjectReference{Kind:&quot;ConfigMap&quot;, Namespace:&quot;ingress-nginx&quot;, Name:&quot;udp-services&quot;, UID:&quot;82258915-563e-11e9-9c52-025000000001&quot;, APIVersion:&quot;v1&quot;, ResourceVersion:&quot;494&quot;, FieldPath:&quot;&quot;}): type: &#39;Normal&#39; reason: &#39;CREATE&#39; ConfigMap ingress-nginx/udp-services</span> <span class=go>I0405 16:53:46.193913 7 event.go:209] Event(v1.ObjectReference{Kind:&quot;ConfigMap&quot;, Namespace:&quot;ingress-nginx&quot;, Name:&quot;udp-services&quot;, UID:&quot;82258915-563e-11e9-9c52-025000000001&quot;, APIVersion:&quot;v1&quot;, ResourceVersion:&quot;494&quot;, FieldPath:&quot;&quot;}): type: &#39;Normal&#39; reason: &#39;CREATE&#39; ConfigMap ingress-nginx/udp-services</span>
<span class=go>...</span> <span class=go>...</span>
</code></pre></div> <h3 id=ssh>ssh<a class=headerlink href=#ssh title="Permanent link"></a></h3> <p><code>kubectl ingress-nginx ssh</code> is exactly the same as <code>kubectl ingress-nginx exec -it -- /bin/bash</code>. Use it when you want to quickly be dropped into a shell inside a running <code>ingress-nginx</code> container.</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl ingress-nginx ssh -n ingress-nginx </code></pre></div> <h3 id=ssh>ssh<a class=headerlink href=#ssh title="Permanent link"></a></h3> <p><code>kubectl ingress-nginx ssh</code> is exactly the same as <code>kubectl ingress-nginx exec -it -- /bin/bash</code>. Use it when you want to quickly be dropped into a shell inside a running <code>ingress-nginx</code> container.</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl ingress-nginx ssh -n ingress-nginx
<span class=gp>www-data@nginx-ingress-controller-7cbf77c976-wx5pn:/etc/nginx$</span> <span class=gp>www-data@ingress-nginx-controller-7cbf77c976-wx5pn:/etc/nginx$</span>
</code></pre></div> </article> </div> </div> </main> <footer class=md-footer> <div class=md-footer-nav> <nav class="md-footer-nav__inner md-grid" aria-label=Footer> <a href=../troubleshooting/ class="md-footer-nav__link md-footer-nav__link--prev" rel=prev> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Previous </span> Troubleshooting </div> </div> </a> <a href=../deploy/ class="md-footer-nav__link md-footer-nav__link--next" rel=next> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Next </span> Installation Guide </div> </div> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> </div> </div> </footer> </div> <script src=../assets/javascripts/vendor.93c04032.min.js></script> <script src=../assets/javascripts/bundle.83e5331e.min.js></script><script id=__lang type=application/json>{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script> <script> </code></pre></div> </article> </div> </div> </main> <footer class=md-footer> <div class=md-footer-nav> <nav class="md-footer-nav__inner md-grid" aria-label=Footer> <a href=../troubleshooting/ class="md-footer-nav__link md-footer-nav__link--prev" rel=prev> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Previous </span> Troubleshooting </div> </div> </a> <a href=../deploy/ class="md-footer-nav__link md-footer-nav__link--next" rel=next> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Next </span> Installation Guide </div> </div> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> </div> </div> </footer> </div> <script src=../assets/javascripts/vendor.93c04032.min.js></script> <script src=../assets/javascripts/bundle.83e5331e.min.js></script><script id=__lang type=application/json>{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script> <script>
app = initialize({ app = initialize({
base: "..", base: "..",

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -25,13 +25,13 @@ Do not move it without providing redirects.
<span class=go>Events:</span> <span class=go>Events:</span>
<span class=go> Type Reason Age From Message</span> <span class=go> Type Reason Age From Message</span>
<span class=go> ---- ------ ---- ---- -------</span> <span class=go> ---- ------ ---- ---- -------</span>
<span class=go> Normal CREATE 1m nginx-ingress-controller Ingress default/cafe-ingress</span> <span class=go> Normal CREATE 1m ingress-nginx-controller Ingress default/cafe-ingress</span>
<span class=go> Normal UPDATE 58s nginx-ingress-controller Ingress default/cafe-ingress</span> <span class=go> Normal UPDATE 58s ingress-nginx-controller Ingress default/cafe-ingress</span>
</code></pre></div> <p>Check the Ingress Controller Logs</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get pods -n &lt;namespace-of-ingress-controller&gt; </code></pre></div> <p>Check the Ingress Controller Logs</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get pods -n &lt;namespace-of-ingress-controller&gt;
<span class=go>NAME READY STATUS RESTARTS AGE</span> <span class=go>NAME READY STATUS RESTARTS AGE</span>
<span class=go>nginx-ingress-controller-67956bf89d-fv58j 1/1 Running 0 1m</span> <span class=go>ingress-nginx-controller-67956bf89d-fv58j 1/1 Running 0 1m</span>
<span class=gp>$</span> kubectl logs -n &lt;namespace&gt; nginx-ingress-controller-67956bf89d-fv58j <span class=gp>$</span> kubectl logs -n &lt;namespace&gt; ingress-nginx-controller-67956bf89d-fv58j
<span class=go>-------------------------------------------------------------------------------</span> <span class=go>-------------------------------------------------------------------------------</span>
<span class=go>NGINX Ingress controller</span> <span class=go>NGINX Ingress controller</span>
<span class=go> Release: 0.14.0</span> <span class=go> Release: 0.14.0</span>
@ -41,9 +41,9 @@ Do not move it without providing redirects.
<span class=go>....</span> <span class=go>....</span>
</code></pre></div> <p>Check the Nginx Configuration</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get pods -n &lt;namespace-of-ingress-controller&gt; </code></pre></div> <p>Check the Nginx Configuration</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get pods -n &lt;namespace-of-ingress-controller&gt;
<span class=go>NAME READY STATUS RESTARTS AGE</span> <span class=go>NAME READY STATUS RESTARTS AGE</span>
<span class=go>nginx-ingress-controller-67956bf89d-fv58j 1/1 Running 0 1m</span> <span class=go>ingress-nginx-controller-67956bf89d-fv58j 1/1 Running 0 1m</span>
<span class=gp>$</span> kubectl <span class=nb>exec</span> -it -n &lt;namespace-of-ingress-controller&gt; nginx-ingress-controller-67956bf89d-fv58j -- cat /etc/nginx/nginx.conf <span class=gp>$</span> kubectl <span class=nb>exec</span> -it -n &lt;namespace-of-ingress-controller&gt; ingress-nginx-controller-67956bf89d-fv58j -- cat /etc/nginx/nginx.conf
<span class=go>daemon off;</span> <span class=go>daemon off;</span>
<span class=go>worker_processes 2;</span> <span class=go>worker_processes 2;</span>
<span class=go>pid /run/nginx.pid;</span> <span class=go>pid /run/nginx.pid;</span>
@ -67,9 +67,9 @@ Do not move it without providing redirects.
</code></pre></div> <h2 id=debug-logging>Debug Logging<a class=headerlink href=#debug-logging title="Permanent link"></a></h2> <p>Using the flag <code>--v=XX</code> it is possible to increase the level of logging. This is performed by editing the deployment.</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get deploy -n &lt;namespace-of-ingress-controller&gt; </code></pre></div> <h2 id=debug-logging>Debug Logging<a class=headerlink href=#debug-logging title="Permanent link"></a></h2> <p>Using the flag <code>--v=XX</code> it is possible to increase the level of logging. This is performed by editing the deployment.</p> <div class=highlight><pre><span></span><code><span class=gp>$</span> kubectl get deploy -n &lt;namespace-of-ingress-controller&gt;
<span class=go>NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE</span> <span class=go>NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE</span>
<span class=go>default-http-backend 1 1 1 1 35m</span> <span class=go>default-http-backend 1 1 1 1 35m</span>
<span class=go>nginx-ingress-controller 1 1 1 1 35m</span> <span class=go>ingress-nginx-controller 1 1 1 1 35m</span>
<span class=gp>$</span> kubectl edit deploy -n &lt;namespace-of-ingress-controller&gt; nginx-ingress-controller <span class=gp>$</span> kubectl edit deploy -n &lt;namespace-of-ingress-controller&gt; ingress-nginx-controller
<span class=gp>#</span> Add --v<span class=o>=</span>X to <span class=s2>&quot;- args&quot;</span>, where X is an integer <span class=gp>#</span> Add --v<span class=o>=</span>X to <span class=s2>&quot;- args&quot;</span>, where X is an integer
</code></pre></div> <ul> <li><code>--v=2</code> shows details using <code>diff</code> about the changes in the configuration in nginx</li> <li><code>--v=3</code> shows details about the service, Ingress rule, endpoint changes and it dumps the nginx configuration in JSON format</li> <li><code>--v=5</code> configures NGINX in <a href=http://nginx.org/en/docs/debugging_log.html>debug mode</a></li> </ul> <h2 id=authentication-to-the-kubernetes-api-server>Authentication to the Kubernetes API Server<a class=headerlink href=#authentication-to-the-kubernetes-api-server title="Permanent link"></a></h2> <p>A number of components are involved in the authentication process and the first step is to narrow down the source of the problem, namely whether it is a problem with service authentication or with the kubeconfig file.</p> <p>Both authentications must work:</p> <div class=highlight><pre><span></span><code>+-------------+ service +------------+ </code></pre></div> <ul> <li><code>--v=2</code> shows details using <code>diff</code> about the changes in the configuration in nginx</li> <li><code>--v=3</code> shows details about the service, Ingress rule, endpoint changes and it dumps the nginx configuration in JSON format</li> <li><code>--v=5</code> configures NGINX in <a href=http://nginx.org/en/docs/debugging_log.html>debug mode</a></li> </ul> <h2 id=authentication-to-the-kubernetes-api-server>Authentication to the Kubernetes API Server<a class=headerlink href=#authentication-to-the-kubernetes-api-server title="Permanent link"></a></h2> <p>A number of components are involved in the authentication process and the first step is to narrow down the source of the problem, namely whether it is a problem with service authentication or with the kubeconfig file.</p> <p>Both authentications must work:</p> <div class=highlight><pre><span></span><code>+-------------+ service +------------+
| | authentication | | | | authentication | |
@ -136,15 +136,15 @@ Do not move it without providing redirects.
<span class=gp>#</span> when you <span class=nb>type</span> <span class=sb>`</span><span class=nb>exit</span><span class=sb>`</span> or <span class=sb>`</span>^D<span class=sb>`</span> the <span class=nb>test</span> pod will be deleted. <span class=gp>#</span> when you <span class=nb>type</span> <span class=sb>`</span><span class=nb>exit</span><span class=sb>`</span> or <span class=sb>`</span>^D<span class=sb>`</span> the <span class=nb>test</span> pod will be deleted.
</code></pre></div> <p>If it is not working, there are two possible reasons:</p> <ol> <li> <p>The contents of the tokens are invalid. Find the secret name with <code>kubectl get secrets | grep service-account</code> and delete it with <code>kubectl delete secret &lt;name&gt;</code>. It will automatically be recreated.</p> </li> <li> <p>You have a non-standard Kubernetes installation and the file containing the token may not be present. The API server will mount a volume containing this file, but only if the API server is configured to use the ServiceAccount admission controller. If you experience this error, verify that your API server is using the ServiceAccount admission controller. If you are configuring the API server by hand, you can set this with the <code>--admission-control</code> parameter.</p> <blockquote> <p>Note that you should use other admission controllers as well. Before configuring this option, you should read about admission controllers.</p> </blockquote> </li> </ol> <p>More information:</p> <ul> <li><a href=http://kubernetes.io/docs/user-guide/service-accounts/ >User Guide: Service Accounts</a></li> <li><a href=http://kubernetes.io/docs/admin/service-accounts-admin/ >Cluster Administrator Guide: Managing Service Accounts</a></li> </ul> <h2 id=kube-config>Kube-Config<a class=headerlink href=#kube-config title="Permanent link"></a></h2> <p>If you want to use a kubeconfig file for authentication, follow the <a href=../deploy/ >deploy procedure</a> and add the flag <code>--kubeconfig=/etc/kubernetes/kubeconfig.yaml</code> to the args section of the deployment.</p> <h2 id=using-gdb-with-nginx>Using GDB with Nginx<a class=headerlink href=#using-gdb-with-nginx title="Permanent link"></a></h2> <p><a href=https://www.gnu.org/software/gdb/ >Gdb</a> can be used to with nginx to perform a configuration dump. This allows us to see which configuration is being used, as well as older configurations.</p> <p>Note: The below is based on the nginx <a href=https://docs.nginx.com/nginx/admin-guide/monitoring/debugging/#dumping-nginx-configuration-from-a-running-process>documentation</a>.</p> <ol> <li>SSH into the worker</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> ssh user@workerIP </code></pre></div> <p>If it is not working, there are two possible reasons:</p> <ol> <li> <p>The contents of the tokens are invalid. Find the secret name with <code>kubectl get secrets | grep service-account</code> and delete it with <code>kubectl delete secret &lt;name&gt;</code>. It will automatically be recreated.</p> </li> <li> <p>You have a non-standard Kubernetes installation and the file containing the token may not be present. The API server will mount a volume containing this file, but only if the API server is configured to use the ServiceAccount admission controller. If you experience this error, verify that your API server is using the ServiceAccount admission controller. If you are configuring the API server by hand, you can set this with the <code>--admission-control</code> parameter.</p> <blockquote> <p>Note that you should use other admission controllers as well. Before configuring this option, you should read about admission controllers.</p> </blockquote> </li> </ol> <p>More information:</p> <ul> <li><a href=http://kubernetes.io/docs/user-guide/service-accounts/ >User Guide: Service Accounts</a></li> <li><a href=http://kubernetes.io/docs/admin/service-accounts-admin/ >Cluster Administrator Guide: Managing Service Accounts</a></li> </ul> <h2 id=kube-config>Kube-Config<a class=headerlink href=#kube-config title="Permanent link"></a></h2> <p>If you want to use a kubeconfig file for authentication, follow the <a href=../deploy/ >deploy procedure</a> and add the flag <code>--kubeconfig=/etc/kubernetes/kubeconfig.yaml</code> to the args section of the deployment.</p> <h2 id=using-gdb-with-nginx>Using GDB with Nginx<a class=headerlink href=#using-gdb-with-nginx title="Permanent link"></a></h2> <p><a href=https://www.gnu.org/software/gdb/ >Gdb</a> can be used to with nginx to perform a configuration dump. This allows us to see which configuration is being used, as well as older configurations.</p> <p>Note: The below is based on the nginx <a href=https://docs.nginx.com/nginx/admin-guide/monitoring/debugging/#dumping-nginx-configuration-from-a-running-process>documentation</a>.</p> <ol> <li>SSH into the worker</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> ssh user@workerIP
</code></pre></div> <ol> <li>Obtain the Docker Container Running nginx</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> docker ps <span class=p>|</span> grep nginx-ingress-controller </code></pre></div> <ol> <li>Obtain the Docker Container Running nginx</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> docker ps <span class=p>|</span> grep ingress-nginx-controller
<span class=go>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span> <span class=go>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span>
<span class=go>d9e1d243156a quay.io/kubernetes-ingress-controller/nginx-ingress-controller &quot;/usr/bin/dumb-init …&quot; 19 minutes ago Up 19 minutes k8s_nginx-ingress-controller_nginx-ingress-controller-67956bf89d-mqxzt_kube-system_079f31ec-aa37-11e8-ad39-080027a227db_0</span> <span class=go>d9e1d243156a k8s.gcr.io/ingress-nginx/controller &quot;/usr/bin/dumb-init …&quot; 19 minutes ago Up 19 minutes k8s_ingress-nginx-controller_ingress-nginx-controller-67956bf89d-mqxzt_kube-system_079f31ec-aa37-11e8-ad39-080027a227db_0</span>
</code></pre></div> <ol> <li>Exec into the container</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> docker <span class=nb>exec</span> -it --user<span class=o>=</span><span class=m>0</span> --privileged d9e1d243156a bash </code></pre></div> <ol> <li>Exec into the container</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> docker <span class=nb>exec</span> -it --user<span class=o>=</span><span class=m>0</span> --privileged d9e1d243156a bash
</code></pre></div> <ol> <li>Make sure nginx is running in <code>--with-debug</code></li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> nginx -V <span class=m>2</span>&gt;<span class=p>&amp;</span><span class=m>1</span> <span class=p>|</span> grep -- <span class=s1>&#39;--with-debug&#39;</span> </code></pre></div> <ol> <li>Make sure nginx is running in <code>--with-debug</code></li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> nginx -V <span class=m>2</span>&gt;<span class=p>&amp;</span><span class=m>1</span> <span class=p>|</span> grep -- <span class=s1>&#39;--with-debug&#39;</span>
</code></pre></div> <ol> <li>Get list of processes running on container</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> ps -ef </code></pre></div> <ol> <li>Get list of processes running on container</li> </ol> <div class=highlight><pre><span></span><code><span class=gp>$</span> ps -ef
<span class=go>UID PID PPID C STIME TTY TIME CMD</span> <span class=go>UID PID PPID C STIME TTY TIME CMD</span>
<span class=go>root 1 0 0 20:23 ? 00:00:00 /usr/bin/dumb-init /nginx-ingres</span> <span class=go>root 1 0 0 20:23 ? 00:00:00 /usr/bin/dumb-init /nginx-ingres</span>
<span class=go>root 5 1 0 20:23 ? 00:00:05 /nginx-ingress-controller --defa</span> <span class=go>root 5 1 0 20:23 ? 00:00:05 /ingress-nginx-controller --defa</span>
<span class=go>root 21 5 0 20:23 ? 00:00:00 nginx: master process /usr/sbin/</span> <span class=go>root 21 5 0 20:23 ? 00:00:00 nginx: master process /usr/sbin/</span>
<span class=go>nobody 106 21 0 20:23 ? 00:00:00 nginx: worker process</span> <span class=go>nobody 106 21 0 20:23 ? 00:00:00 nginx: worker process</span>
<span class=go>nobody 107 21 0 20:23 ? 00:00:00 nginx: worker process</span> <span class=go>nobody 107 21 0 20:23 ? 00:00:00 nginx: worker process</span>

File diff suppressed because one or more lines are too long

View file

@ -15,7 +15,7 @@
# limitations under the License. # limitations under the License.
""" """
Convert the output of `nginx-ingress-controller --help` to Convert the output of `ingress-nginx-controller --help` to
a Markdown table. a Markdown table.
""" """

View file

@ -3,7 +3,7 @@
<span class=nt>template</span><span class=p>:</span> <span class=nt>template</span><span class=p>:</span>
<span class=nt>spec</span><span class=p>:</span> <span class=nt>spec</span><span class=p>:</span>
<span class=nt>containers</span><span class=p>:</span> <span class=nt>containers</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">nginx-ingress-internal-controller</span> <span class="p p-Indicator">-</span> <span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">ingress-nginx-internal-controller</span>
<span class=nt>args</span><span class=p>:</span> <span class=nt>args</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/nginx-ingress-controller</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/nginx-ingress-controller</span>
<span class="p p-Indicator">-</span> <span class=s>&#39;--controller-class=k8s.io/internal-ingress-nginx&#39;</span> <span class="p p-Indicator">-</span> <span class=s>&#39;--controller-class=k8s.io/internal-ingress-nginx&#39;</span>
@ -41,7 +41,7 @@
<span class=nt>template</span><span class=p>:</span> <span class=nt>template</span><span class=p>:</span>
<span class=nt>spec</span><span class=p>:</span> <span class=nt>spec</span><span class=p>:</span>
<span class=nt>containers</span><span class=p>:</span> <span class=nt>containers</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">nginx-ingress-internal-controller</span> <span class="p p-Indicator">-</span> <span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">ingress-nginx-internal-controller</span>
<span class=nt>args</span><span class=p>:</span> <span class=nt>args</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/nginx-ingress-controller</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/nginx-ingress-controller</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">--ingress-class=internal-nginx</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">--ingress-class=internal-nginx</span>

View file

@ -13,7 +13,7 @@
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">ingress-demo.example.com</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">ingress-demo.example.com</span>
<span class=nt>secretName</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">ingress-demo-tls</span> <span class=nt>secretName</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">ingress-demo-tls</span>
<span class="p p-Indicator">[</span><span class=nv>...</span><span class="p p-Indicator">]</span> <span class="p p-Indicator">[</span><span class=nv>...</span><span class="p p-Indicator">]</span>
</code></pre></div> <h2 id=default-tls-version-and-ciphers>Default TLS Version and Ciphers<a class=headerlink href=#default-tls-version-and-ciphers title="Permanent link"></a></h2> <p>To provide the most secure baseline configuration possible,</p> <p>nginx-ingress defaults to using TLS 1.2 and 1.3 only, with a <a href=../nginx-configuration/configmap/#ssl-ciphers>secure set of TLS ciphers</a>.</p> <h3 id=legacy-tls>Legacy TLS<a class=headerlink href=#legacy-tls title="Permanent link"></a></h3> <p>The default configuration, though secure, does not support some older browsers and operating systems.</p> <p>For instance, TLS 1.1+ is only enabled by default from Android 5.0 on. At the time of writing, May 2018, <a href=https://developer.android.com/about/dashboards/#Platform>approximately 15% of Android devices</a> are not compatible with nginx-ingress's default configuration.</p> <p>To change this default behavior, use a <a href=../nginx-configuration/configmap/ >ConfigMap</a>.</p> <p>A sample ConfigMap fragment to allow these older clients to connect could look something like the following (generated using the Mozilla SSL Configuration Generator)<a href="https://ssl-config.mozilla.org/#server=nginx&config=old">mozilla-ssl-config-old</a>:</p> <div class=highlight><pre><span></span><code>kind: ConfigMap </code></pre></div> <h2 id=default-tls-version-and-ciphers>Default TLS Version and Ciphers<a class=headerlink href=#default-tls-version-and-ciphers title="Permanent link"></a></h2> <p>To provide the most secure baseline configuration possible,</p> <p>ingress-nginx defaults to using TLS 1.2 and 1.3 only, with a <a href=../nginx-configuration/configmap/#ssl-ciphers>secure set of TLS ciphers</a>.</p> <h3 id=legacy-tls>Legacy TLS<a class=headerlink href=#legacy-tls title="Permanent link"></a></h3> <p>The default configuration, though secure, does not support some older browsers and operating systems.</p> <p>For instance, TLS 1.1+ is only enabled by default from Android 5.0 on. At the time of writing, May 2018, <a href=https://developer.android.com/about/dashboards/#Platform>approximately 15% of Android devices</a> are not compatible with ingress-nginx's default configuration.</p> <p>To change this default behavior, use a <a href=../nginx-configuration/configmap/ >ConfigMap</a>.</p> <p>A sample ConfigMap fragment to allow these older clients to connect could look something like the following (generated using the Mozilla SSL Configuration Generator)<a href="https://ssl-config.mozilla.org/#server=nginx&config=old">mozilla-ssl-config-old</a>:</p> <div class=highlight><pre><span></span><code>kind: ConfigMap
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: nginx-config name: nginx-config