<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-01-22</id>
	<title>Minutes 2026-01-22 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-01-22"/>
	<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-01-22&amp;action=history"/>
	<updated>2026-04-29T18:52:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://lug.mtu.edu/w/index.php?title=Minutes_2026-01-22&amp;diff=8049&amp;oldid=prev</id>
		<title>Freya: Freya moved page Minutes 2026-01-23 to Minutes 2026-01-22: put it under the wrong name</title>
		<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-01-22&amp;diff=8049&amp;oldid=prev"/>
		<updated>2026-01-23T18:42:47Z</updated>

		<summary type="html">&lt;p&gt;Freya moved page &lt;a href=&quot;/wiki/Minutes_2026-01-23&quot; class=&quot;mw-redirect&quot; title=&quot;Minutes 2026-01-23&quot;&gt;Minutes 2026-01-23&lt;/a&gt; to &lt;a href=&quot;/wiki/Minutes_2026-01-22&quot; title=&quot;Minutes 2026-01-22&quot;&gt;Minutes 2026-01-22&lt;/a&gt;: put it under the wrong name&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:42, 23 January 2026&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key lug_wiki:diff:wikidiff2:1.12:old-8048:rev-8049:1.13.0 --&gt;
&lt;/table&gt;</summary>
		<author><name>Freya</name></author>
	</entry>
	<entry>
		<id>https://lug.mtu.edu/w/index.php?title=Minutes_2026-01-22&amp;diff=8048&amp;oldid=prev</id>
		<title>Freya: Created page with &quot;=Meeting Minutes 01/22/26=  * Scott Raiford presenting on how to use Kubernetes * A little banter about the meeting and how LUG runs :P  ==Scott Story:==  * At a job lost a guy who knew a lot of stuff. There&#039;s a system they have to shut down everything and bring it back up 15 minutes later. * Next guy comes in to see how the code worked. The code is full of message boxes that say &amp;quot;I am here&amp;quot; and then SEGFAULTS. * There was no timing to the script, he conned the...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-01-22&amp;diff=8048&amp;oldid=prev"/>
		<updated>2026-01-23T18:41:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Meeting Minutes 01/22/26=  * Scott Raiford presenting on how to use Kubernetes * A little banter about the meeting and how LUG runs :P  ==Scott Story:==  * At a job lost a guy who knew a lot of stuff. There&amp;#039;s a system they have to shut down everything and bring it back up 15 minutes later. * Next guy comes in to see how the code worked. The code is full of message boxes that say &amp;quot;I am here&amp;quot; and then SEGFAULTS. * There was no timing to the script, he conned the...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Meeting Minutes 01/22/26=&lt;br /&gt;
&lt;br /&gt;
* Scott Raiford presenting on how to use Kubernetes&lt;br /&gt;
* A little banter about the meeting and how LUG runs :P&lt;br /&gt;
&lt;br /&gt;
==Scott Story:==&lt;br /&gt;
&lt;br /&gt;
* At a job lost a guy who knew a lot of stuff. There&amp;#039;s a system they have to shut down everything and bring it back up 15 minutes later.&lt;br /&gt;
* Next guy comes in to see how the code worked. The code is full of message boxes that say &amp;amp;quot;I am here&amp;amp;quot; and then SEGFAULTS.&lt;br /&gt;
* There was no timing to the script, he conned the company into paying him :P&lt;br /&gt;
&lt;br /&gt;
==The Presentation:==&lt;br /&gt;
&lt;br /&gt;
* Kubernetes allows the hosting of a lot of software on very small amounts of hardware&lt;br /&gt;
** Uses containers very efficiently to make this work&lt;br /&gt;
* Linux has the kernel, then on top of that the userspace, and on top of that your own programs.&lt;br /&gt;
** Userspace is where your programs live.&lt;br /&gt;
** Userspace asks the kernel to do things like file access or sending packets.&lt;br /&gt;
** Userspace programs will ask the kernel about network adapters or other processes on the system&lt;br /&gt;
* A container is a namespace for processes&lt;br /&gt;
** If the kernel is asked what processes are running, it lies and says only the namespace&amp;#039;s programs are running&lt;br /&gt;
** Multiple namespaces are possible&lt;br /&gt;
** Keeps applications from interfering with each other&lt;br /&gt;
* Kubernetes is solving the problem of managing containers in a scalable manner&lt;br /&gt;
** Example:&lt;br /&gt;
**# 3 nodes in a cloud&lt;br /&gt;
**# nginx is running on node 1, gateway on nodes 2 and 3&lt;br /&gt;
**# node 1 dies&lt;br /&gt;
**# nginx is moved into another node&lt;br /&gt;
**# when that other node dies, nginx is moved again This is what Kubernetes does, allowing things to keep running even if hardware fails.&lt;br /&gt;
** apiserver knows we need some state (a set of software that should be running), and if there&amp;#039;s a mismatch, it changes things to make things the way they should be.&lt;br /&gt;
*** apiserver and its database is redundant so it is resilient&lt;br /&gt;
** istio: routes traffic based on hostname, etc.&lt;br /&gt;
** Controllers can be deployed as pods. apiserver itself is a container&lt;br /&gt;
** Working example:&lt;br /&gt;
*** Containerfile defines what is in the container, what is installed, what is exposed, etc&lt;br /&gt;
*** Trivia game needs to be run on a node, with a service that passes traffic into it&lt;br /&gt;
*** Write YAML to describe how to actually run the software, pass in traffic&lt;br /&gt;
**** Push YAML to apiserver, which then gets added to etcd and run by Kubernetes&lt;br /&gt;
*** YAML states how many copies of a software should run&lt;br /&gt;
*** Controller configures things to keep things running according to spec, can have side effects.&lt;br /&gt;
*** If any node in the cluster gets traffic on any port, it is forwarded through a virtual network to the trivia app&lt;br /&gt;
*** a change in the config will trigger a rebuild of the pods (clusters of containers)&lt;br /&gt;
*** &amp;#039;&amp;#039;several minutes of troubleshooting have been omitted from these minutes&amp;#039;&amp;#039;&lt;br /&gt;
*** _19&amp;lt;span id=&amp;quot;-54_&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span id=&amp;quot;54_&amp;quot; class=&amp;quot;tag&amp;quot;&amp;gt;54_&amp;lt;/span&amp;gt; IT WORKS!!&lt;br /&gt;
&lt;br /&gt;
==Extra Little Notes==&lt;br /&gt;
&lt;br /&gt;
* Each control node runs an apiserver&lt;br /&gt;
* There is a kubernetes service, anything that wants to make a request can ask it and it will be load-balanced to one of the apiservers&lt;br /&gt;
* Meant to fail: if one node goes down, others can pick up the slack&lt;br /&gt;
* Outside of Kubernetes, you can run a few instances of software like HAproxy so that when one dies you still have load-balancing.&lt;br /&gt;
* Kubernetes will constantly try and repair the cluster if things are killed&lt;/div&gt;</summary>
		<author><name>Freya</name></author>
	</entry>
</feed>