<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.williams-net.org/index.php?action=history&amp;feed=atom&amp;title=NGINX-ingress</id>
	<title>NGINX-ingress - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.williams-net.org/index.php?action=history&amp;feed=atom&amp;title=NGINX-ingress"/>
	<link rel="alternate" type="text/html" href="https://wiki.williams-net.org/index.php?title=NGINX-ingress&amp;action=history"/>
	<updated>2026-06-01T02:39:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.williams-net.org/index.php?title=NGINX-ingress&amp;diff=27&amp;oldid=prev</id>
		<title>DrEdWilliams: Created page with &quot;== NGINX &#039;Official&#039; Ingress Controller == When researching the methods to install the NGINX Ingress Controller, I found many varied and somewhat conflicting methods and manife...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.williams-net.org/index.php?title=NGINX-ingress&amp;diff=27&amp;oldid=prev"/>
		<updated>2019-08-03T01:21:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== NGINX &amp;#039;Official&amp;#039; Ingress Controller == When researching the methods to install the NGINX Ingress Controller, I found many varied and somewhat conflicting methods and manife...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== NGINX &amp;#039;Official&amp;#039; Ingress Controller ==&lt;br /&gt;
When researching the methods to install the NGINX Ingress Controller, I found many varied and somewhat conflicting methods and manifests.  Eventually, I found the [https://github.com/nginxinc/kubernetes-ingress &amp;#039;official&amp;#039; github repo from the NGINX team].&lt;br /&gt;
&lt;br /&gt;
I used the manifests and instructions from this repo mostly intact.  [https://github.com/nginxinc/kubernetes-ingress/blob/master/docs/installation.md Full installation instructions] are located online.&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;ns-and-sa.yaml&amp;#039;&amp;#039;&amp;#039; -- creates the namespace and serviceaccount&lt;br /&gt;
# I manually created the SSL certificate secret (after creating a self-signed certificate) instead of using their manifest&lt;br /&gt;
#:&amp;lt;pre&amp;gt;kubectl create secret tls default-server-secret --cert=ingress.crt --key=ingress.key -n nginx-ingress&amp;lt;/pre&amp;gt;&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;nginx-config.yaml&amp;#039;&amp;#039;&amp;#039; - creates the configmap for providing configuration options (not used ... yet )&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;rbac.yaml&amp;#039;&amp;#039;&amp;#039; - creates the appropriate roles and rolebindings&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;nginx-ingress.yaml&amp;#039;&amp;#039;&amp;#039; -- I used the deployment version ... don&amp;#039;t think there will be a need for using a daemonset&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;loadbalancer.yaml&amp;#039;&amp;#039;&amp;#039; - creates the loadbalancer service that gives an external IP address for the controller.&lt;br /&gt;
#* NOTE: I had to comment out the &amp;#039;externalTrafficPolicy&amp;#039; parameter for the service, as it caused erratic behavior when accessing the controller&lt;br /&gt;
&lt;br /&gt;
At this point, you have a fully functional ingress controller that responds on both http and https ports ... and provides its own default page for &amp;#039;resources not found&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The manifests and files are checked into the [https://gitlab.williams-net.org/k8s/k8s-admin GitLab k8s-admin repository] in the directory &amp;#039;nginx-ingress-controller&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The repo for this controller is cloned into:&lt;br /&gt;
 /workspace/outside-repos/kubernetes-ingress&lt;br /&gt;
&lt;br /&gt;
== Kubernetes Ingress Controller ==&lt;br /&gt;
This ingress controller is also labeled as &amp;#039;nginx&amp;#039;, though it diverges in features from the &amp;#039;official&amp;#039; version.  It&lt;br /&gt;
is, however, more flexible than the NGINX version  through its ability to route arbitrary ports to services, not just 80 and 443 using HTTP/HTTPS protocols.  This is done by specifying the map from port to service in a configMap (and adding the ports to the exposing service), which makes it less &amp;#039;generic&amp;#039; than it should, and forces you to modify the base controller deployment instead of just providing the Ingress like it is supposed to work.  &lt;br /&gt;
&lt;br /&gt;
This version of the ingress controller is housed in this [https://github.com/kubernetes/ingress-nginx github repo].&lt;br /&gt;
&lt;br /&gt;
The manifest that deploys the ingress controller is in the file deploy/mandatory.yaml ... it creates everything needed including the namespace, RBAC stuff, default backend, and the controller deployment.  I added the --update-status parameter, just to see what happened, but that is the only change.&lt;br /&gt;
&lt;br /&gt;
To expose the controller, you need to provide a LoadBalancer service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;kind: Service&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
metadata:&lt;br /&gt;
  name: ingress-nginx&lt;br /&gt;
  namespace: ingress-nginx&lt;br /&gt;
  labels:&lt;br /&gt;
    app: ingress-nginx&lt;br /&gt;
spec:&lt;br /&gt;
  externalTrafficPolicy: Local&lt;br /&gt;
  type: LoadBalancer&lt;br /&gt;
  selector:&lt;br /&gt;
    app: ingress-nginx&lt;br /&gt;
  ports:&lt;br /&gt;
  - name: http&lt;br /&gt;
    port: 80&lt;br /&gt;
    targetPort: http&lt;br /&gt;
  - name: https&lt;br /&gt;
    port: 443&lt;br /&gt;
    targetPort: https&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One like this is included in deploy/provider/cloud-generic.yaml.&lt;br /&gt;
&lt;br /&gt;
This needs to be done in the namespace of the controller (ingress-nginx) so it can select the controller ... but it will need to be modified if additional ports are proxied.&lt;br /&gt;
&lt;br /&gt;
The repo for this controller is cloned into:&lt;br /&gt;
 /workspace/outside-repos/ingress-nginx&lt;/div&gt;</summary>
		<author><name>DrEdWilliams</name></author>
	</entry>
</feed>