<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://coolscript.net/index.php?action=history&amp;feed=atom&amp;title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel</id>
	<title>Install Kubernetes 1.26 on Debian 11 with Flannel - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://coolscript.net/index.php?action=history&amp;feed=atom&amp;title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel"/>
	<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;action=history"/>
	<updated>2026-06-02T20:13:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=919&amp;oldid=prev</id>
		<title>Admin: /* References */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=919&amp;oldid=prev"/>
		<updated>2023-03-16T16:16:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;References&lt;/span&gt;&lt;/span&gt;&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 16:16, 16 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l324&quot;&gt;Line 324:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 324:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.linux-magazin.de/ausgaben/2017/08/netz-in-kubernetes/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.linux-magazin.de/ausgaben/2017/08/netz-in-kubernetes/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://ronaknathani.com/blog/2020/08/how-a-kubernetes-pod-gets-an-ip-address/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://ronaknathani.com/blog/2020/08/how-a-kubernetes-pod-gets-an-ip-address/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Nice cheat sheet https://spacelift.io/blog/kubernetes-cheat-sheet&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Troubleshoot Flannel&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Troubleshoot Flannel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.continualintegration.com/miscellaneous-articles/how-do-you-solve-the-kubernetes-error-networkplugin-cni-failed-to-set-up-pod-network-open-run-flannel-subnet-env-no-such-file-or-directory/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.continualintegration.com/miscellaneous-articles/how-do-you-solve-the-kubernetes-error-networkplugin-cni-failed-to-set-up-pod-network-open-run-flannel-subnet-env-no-such-file-or-directory/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.programmersought.com/article/7824768991/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://www.programmersought.com/article/7824768991/ &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Continue from Flannel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://github.com/Thoorium/kubernetes-local-cluster-flannel-metallb-traefik&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=917&amp;oldid=prev</id>
		<title>Admin: /* Additional Packages */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=917&amp;oldid=prev"/>
		<updated>2023-03-09T17:35:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Additional Packages&lt;/span&gt;&lt;/span&gt;&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 17:35, 9 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l79&quot;&gt;Line 79:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 79:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  echo &amp;quot;deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main&amp;quot; | tee /etc/apt/sources.list.d/kubernetes.list  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  echo &amp;quot;deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main&amp;quot; | tee /etc/apt/sources.list.d/kubernetes.list  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Additional Packages===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Additional Packages===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nee &lt;/del&gt;iptables  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Need &lt;/ins&gt;iptables  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install -y iptables libiptc0/stable libxtables12/stable&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install -y iptables libiptc0/stable libxtables12/stable&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Need the containertools (https://github.com/flannel-io/flannel)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Need the containertools (https://github.com/flannel-io/flannel)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install containernetworking-plugins&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install containernetworking-plugins&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Install and Hold===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Install and Hold===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install -y kubelet=1.26.0-00 kubeadm=1.26.0-00 kubectl=1.26.0-00&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  apt-get install -y kubelet=1.26.0-00 kubeadm=1.26.0-00 kubectl=1.26.0-00&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=916&amp;oldid=prev</id>
		<title>Admin: /* Intro */</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=916&amp;oldid=prev"/>
		<updated>2023-03-09T17:34:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Intro&lt;/span&gt;&lt;/span&gt;&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 17:34, 9 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  127.0.1.1       c1-control-plane&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  127.0.1.1       c1-control-plane&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  127.0.0.1       localhost&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  127.0.0.1       localhost&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.100 c1-control-plane&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.100 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c1-control-plane vm-&lt;/ins&gt;c1-control-plane&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.101 c1-worker-1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.101 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c1-worker-1 vm-&lt;/ins&gt;c1-worker-1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.102 c1-worker-2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  192.168.178.102 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;c1-worker-2 vm-&lt;/ins&gt;c1-worker-2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Installation on Master and on all Nodes=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Installation on Master and on all Nodes=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=915&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;=Intro= Installation example of Kubernetes Cluster on Debian 11 Hosts used in this sample: *c1-control-plane *c1-worker-1 *c1-worker-2  *Host specs: *VM&#039;s with 2CPUs, 4GB Ram...&quot;</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.26_on_Debian_11_with_Flannel&amp;diff=915&amp;oldid=prev"/>
		<updated>2023-03-09T17:33:13Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Intro= Installation example of Kubernetes Cluster on Debian 11 Hosts used in this sample: *c1-control-plane *c1-worker-1 *c1-worker-2  *Host specs: *VM&amp;#039;s with 2CPUs, 4GB Ram...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Intro=&lt;br /&gt;
Installation example of Kubernetes Cluster on Debian 11&lt;br /&gt;
Hosts used in this sample:&lt;br /&gt;
*c1-control-plane&lt;br /&gt;
*c1-worker-1&lt;br /&gt;
*c1-worker-2&lt;br /&gt;
&lt;br /&gt;
*Host specs:&lt;br /&gt;
*VM&amp;#039;s with 2CPUs, 4GB Ram each, running Debian11&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039; No sudo was used in this Lab, instead work as root&lt;br /&gt;
&lt;br /&gt;
*Host file example of c1-control-plane&lt;br /&gt;
 127.0.1.1       c1-control-plane&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 192.168.178.100 c1-control-plane&lt;br /&gt;
 192.168.178.101 c1-worker-1&lt;br /&gt;
 192.168.178.102 c1-worker-2&lt;br /&gt;
&lt;br /&gt;
=Installation on Master and on all Nodes=&lt;br /&gt;
==Hostnames==&lt;br /&gt;
Hostnames used in this Lab, makle sure to add them into /etc/hosts on all machines&lt;br /&gt;
*c1-control-plane&lt;br /&gt;
*c1-worker-1&lt;br /&gt;
*c1-worker-2&lt;br /&gt;
&lt;br /&gt;
==Load required modules and set kernel settings==&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF |  tee /etc/modules-load.d/containerd.conf&lt;br /&gt;
 overlay&lt;br /&gt;
 br_netfilter&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 net.bridge.bridge-nf-call-iptables = 1&lt;br /&gt;
 net.bridge.bridge-nf-call-ip6tables = 1&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
*Turn off swap&lt;br /&gt;
 sudo sed -i &amp;#039;/swap/d&amp;#039; /etc/fstab&lt;br /&gt;
&lt;br /&gt;
*Apply&lt;br /&gt;
 modprobe overlay&lt;br /&gt;
 modprobe br_netfilter&lt;br /&gt;
 sysctl --system&lt;br /&gt;
 swapoff -a&lt;br /&gt;
&lt;br /&gt;
*Install an NTP server otherwise etcd will be mad.&lt;br /&gt;
 apt install -y chrony&lt;br /&gt;
&lt;br /&gt;
==Containerd==&lt;br /&gt;
&lt;br /&gt;
*Requires the Docker repository&lt;br /&gt;
 apt install -y curl gpg lsb-release apparmor apparmor-utils&lt;br /&gt;
 curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable&amp;quot; | tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null &lt;br /&gt;
&lt;br /&gt;
*Update and install&lt;br /&gt;
 apt update&lt;br /&gt;
 apt-get install -y containerd.io&lt;br /&gt;
*Create a default configuration&lt;br /&gt;
 mkdir -p /etc/containerd&lt;br /&gt;
 containerd config default | tee /etc/containerd/config.toml &lt;br /&gt;
&lt;br /&gt;
*Open /etc/containerd/config.toml &lt;br /&gt;
**Search &lt;br /&gt;
 [plugins.&amp;quot;io.containerd.grpc.v1.cri&amp;quot;.containerd.runtimes.runc.options]&lt;br /&gt;
*Underneath add or change to:&lt;br /&gt;
  SystemdCgroup = true   &lt;br /&gt;
&lt;br /&gt;
*Restart and check the service&lt;br /&gt;
 systemctl restart containerd&lt;br /&gt;
 systemctl status containerd&lt;br /&gt;
&lt;br /&gt;
==Kubernetes==&lt;br /&gt;
===Repository===&lt;br /&gt;
 apt-get install -y apt-transport-https ca-certificates curl&lt;br /&gt;
 curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg&lt;br /&gt;
 echo &amp;quot;deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main&amp;quot; | tee /etc/apt/sources.list.d/kubernetes.list &lt;br /&gt;
===Additional Packages===&lt;br /&gt;
*Nee iptables &lt;br /&gt;
 apt-get install -y iptables libiptc0/stable libxtables12/stable&lt;br /&gt;
*Need the containertools (https://github.com/flannel-io/flannel)&lt;br /&gt;
 apt-get install containernetworking-plugins&lt;br /&gt;
===Install and Hold===&lt;br /&gt;
 apt-get install -y kubelet=1.26.0-00 kubeadm=1.26.0-00 kubectl=1.26.0-00&lt;br /&gt;
 apt-mark hold kubelet kubeadm kubectl&lt;br /&gt;
&lt;br /&gt;
=Initialization - MASTER ONLY=&lt;br /&gt;
==Init==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ATTENTION&amp;#039;&amp;#039;&amp;#039; As per Flannel requirement: You need to choose the below network&lt;br /&gt;
*https://gist.github.com/rkaramandi/44c7cea91501e735ea99e356e9ae7883&lt;br /&gt;
*https://stackoverflow.com/questions/48984659/understanding-kubeadm-init-command-for-flannel&lt;br /&gt;
&lt;br /&gt;
 # &amp;#039;&amp;#039;&amp;#039;sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.26.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 root@vm-c1-control-plane:~# kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.26.0&lt;br /&gt;
 [init] Using Kubernetes version: v1.26.0&lt;br /&gt;
 [preflight] Running pre-flight checks&lt;br /&gt;
 [preflight] Pulling images required for setting up a Kubernetes cluster&lt;br /&gt;
 [preflight] This might take a minute or two, depending on the speed of your internet connection&lt;br /&gt;
 [preflight] You can also perform this action in beforehand using &amp;#039;kubeadm config images pull&amp;#039;&lt;br /&gt;
 [certs] Using certificateDir folder &amp;quot;/etc/kubernetes/pki&amp;quot;&lt;br /&gt;
 [certs] Generating &amp;quot;ca&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;apiserver&amp;quot; certificate and key&lt;br /&gt;
 [certs] apiserver serving cert is signed for DNS names [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local vm-c1-control-plane] and IPs [10.96.0.1 192.168.178.100]&lt;br /&gt;
 [certs] Generating &amp;quot;apiserver-kubelet-client&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;front-proxy-ca&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;front-proxy-client&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;etcd/ca&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;etcd/server&amp;quot; certificate and key&lt;br /&gt;
 [certs] etcd/server serving cert is signed for DNS names [localhost vm-c1-control-plane] and IPs [192.168.178.100 127.0.0.1 ::1]&lt;br /&gt;
 [certs] Generating &amp;quot;etcd/peer&amp;quot; certificate and key&lt;br /&gt;
 [certs] etcd/peer serving cert is signed for DNS names [localhost vm-c1-control-plane] and IPs [192.168.178.100 127.0.0.1 ::1]&lt;br /&gt;
 [certs] Generating &amp;quot;etcd/healthcheck-client&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;apiserver-etcd-client&amp;quot; certificate and key&lt;br /&gt;
 [certs] Generating &amp;quot;sa&amp;quot; key and public key&lt;br /&gt;
 [kubeconfig] Using kubeconfig folder &amp;quot;/etc/kubernetes&amp;quot;&lt;br /&gt;
 [kubeconfig] Writing &amp;quot;admin.conf&amp;quot; kubeconfig file&lt;br /&gt;
 [kubeconfig] Writing &amp;quot;kubelet.conf&amp;quot; kubeconfig file&lt;br /&gt;
 [kubeconfig] Writing &amp;quot;controller-manager.conf&amp;quot; kubeconfig file&lt;br /&gt;
 [kubeconfig] Writing &amp;quot;scheduler.conf&amp;quot; kubeconfig file&lt;br /&gt;
 [kubelet-start] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
 [kubelet-start] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
 [kubelet-start] Starting the kubelet&lt;br /&gt;
 [control-plane] Using manifest folder &amp;quot;/etc/kubernetes/manifests&amp;quot;&lt;br /&gt;
 [control-plane] Creating static Pod manifest for &amp;quot;kube-apiserver&amp;quot;&lt;br /&gt;
 [control-plane] Creating static Pod manifest for &amp;quot;kube-controller-manager&amp;quot;&lt;br /&gt;
 [control-plane] Creating static Pod manifest for &amp;quot;kube-scheduler&amp;quot;&lt;br /&gt;
 [etcd] Creating static Pod manifest for local etcd in &amp;quot;/etc/kubernetes/manifests&amp;quot;&lt;br /&gt;
 [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory &amp;quot;/etc/kubernetes/manifests&amp;quot;. This can take up to 4m0s&lt;br /&gt;
 [apiclient] All control plane components are healthy after 7.503176 seconds&lt;br /&gt;
 [upload-config] Storing the configuration used in ConfigMap &amp;quot;kubeadm-config&amp;quot; in the &amp;quot;kube-system&amp;quot; Namespace&lt;br /&gt;
 [kubelet] Creating a ConfigMap &amp;quot;kubelet-config&amp;quot; in namespace kube-system with the configuration for the kubelets in the cluster&lt;br /&gt;
 [upload-certs] Skipping phase. Please see --upload-certs&lt;br /&gt;
 [mark-control-plane] Marking the node vm-c1-control-plane as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers]&lt;br /&gt;
 [mark-control-plane] Marking the node vm-c1-control-plane as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule]&lt;br /&gt;
 [bootstrap-token] Using token: cmp2ge.my1xmrxxonnp47vi&lt;br /&gt;
 [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles&lt;br /&gt;
 [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes&lt;br /&gt;
 [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials&lt;br /&gt;
 [bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token&lt;br /&gt;
 [bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster&lt;br /&gt;
 [bootstrap-token] Creating the &amp;quot;cluster-info&amp;quot; ConfigMap in the &amp;quot;kube-public&amp;quot; namespace&lt;br /&gt;
 [kubelet-finalize] Updating &amp;quot;/etc/kubernetes/kubelet.conf&amp;quot; to point to a rotatable kubelet client certificate and key&lt;br /&gt;
 [addons] Applied essential addon: CoreDNS&lt;br /&gt;
 [addons] Applied essential addon: kube-proxy&lt;br /&gt;
 &lt;br /&gt;
 Your Kubernetes control-plane has initialized successfully!&lt;br /&gt;
 &lt;br /&gt;
 To start using your cluster, you need to run the following as a regular user:&lt;br /&gt;
 &lt;br /&gt;
  mkdir -p $HOME/.kube&lt;br /&gt;
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;br /&gt;
  sudo chown $(id -u):$(id -g) $HOME/.kube/config&lt;br /&gt;
 &lt;br /&gt;
 Alternatively, if you are the root user, you can run:&lt;br /&gt;
 &lt;br /&gt;
  export KUBECONFIG=/etc/kubernetes/admin.conf&lt;br /&gt;
 &lt;br /&gt;
 You should now deploy a pod network to the cluster.&lt;br /&gt;
 Run &amp;quot;kubectl apply -f [podnetwork].yaml&amp;quot; with one of the options listed at:&lt;br /&gt;
  https://kubernetes.io/docs/concepts/cluster-administration/addons/&lt;br /&gt;
 &lt;br /&gt;
 Then you can join any number of worker nodes by running the following on each as root:&lt;br /&gt;
 &lt;br /&gt;
 kubeadm join 192.168.178.100:6443 --token cmp2ge.my1xmrxxonnp47vi \&lt;br /&gt;
        --discovery-token-ca-cert-hash sha256:0510de44004a0bcfceff8221c122b5116ce6fd8f507622a498abec3985a42fc1&lt;br /&gt;
&lt;br /&gt;
==Regular user setup==&lt;br /&gt;
Switch to a normal, non root user&lt;br /&gt;
 mkdir -p $HOME/.kube&lt;br /&gt;
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;br /&gt;
 sudo chown $(id -u):$(id -g) $HOME/.kube/config&lt;br /&gt;
&lt;br /&gt;
==Before Flannel==&lt;br /&gt;
Before Flannel&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ &amp;#039;&amp;#039;&amp;#039;kubectl get nodes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 NAME                  STATUS     ROLES           AGE     VERSION&lt;br /&gt;
 vm-c1-control-plane   &amp;#039;&amp;#039;&amp;#039;NotReady&amp;#039;&amp;#039;&amp;#039;   control-plane   2m30s   v1.24.0&lt;br /&gt;
&lt;br /&gt;
==Apply Flannel==&lt;br /&gt;
&lt;br /&gt;
 # &amp;#039;&amp;#039;&amp;#039;kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml&lt;br /&gt;
 namespace/kube-flannel created&lt;br /&gt;
 serviceaccount/flannel created&lt;br /&gt;
 clusterrole.rbac.authorization.k8s.io/flannel created&lt;br /&gt;
 clusterrolebinding.rbac.authorization.k8s.io/flannel created&lt;br /&gt;
 configmap/kube-flannel-cfg created&lt;br /&gt;
 daemonset.apps/kube-flannel-ds created&lt;br /&gt;
&lt;br /&gt;
==After Flannel==&lt;br /&gt;
After Flannel - &amp;#039;&amp;#039;&amp;#039;This may take a while&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ kubectl get nodes&lt;br /&gt;
 NAME                  STATUS   ROLES           AGE     VERSION&lt;br /&gt;
 vm-c1-control-plane   &amp;#039;&amp;#039;&amp;#039;Ready&amp;#039;&amp;#039;&amp;#039;    control-plane   3m35s   v1.24.0&lt;br /&gt;
&lt;br /&gt;
=Join the worker nodes=&lt;br /&gt;
==Node01==&lt;br /&gt;
 # &amp;#039;&amp;#039;&amp;#039;kubeadm join 192.168.178.100:6443 --token cmp2ge.my1xmrxxonnp47vi --discovery-token-ca-cert-hash sha256:0510de44004a0bcfceff8221c122b5116ce6fd8f507622a498abec3985a42fc1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 root@vm-c1-worker-1:~# kubeadm join 192.168.178.100:6443 --token cmp2ge.my1xmrxxonnp47vi \&lt;br /&gt;
        --discovery-token-ca-cert-hash sha256:0510de44004a0bcfceff8221c122b5116ce6fd8f507622a498abec3985a42fc1&lt;br /&gt;
 [preflight] Running pre-flight checks&lt;br /&gt;
 [preflight] Reading configuration from the cluster...&lt;br /&gt;
 [preflight] FYI: You can look at this config file with &amp;#039;kubectl -n kube-system get cm kubeadm-config -o yaml&amp;#039;&lt;br /&gt;
 [kubelet-start] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
 [kubelet-start] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
 [kubelet-start] Starting the kubelet&lt;br /&gt;
 [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...&lt;br /&gt;
&lt;br /&gt;
 This node has joined the cluster:&lt;br /&gt;
 * Certificate signing request was sent to apiserver and a response was received.&lt;br /&gt;
 * The Kubelet was informed of the new secure connection details.&lt;br /&gt;
 &lt;br /&gt;
 Run &amp;#039;kubectl get nodes&amp;#039; on the control-plane to see this node join the cluster.&lt;br /&gt;
&lt;br /&gt;
==Node02==&lt;br /&gt;
 # &amp;#039;&amp;#039;&amp;#039;kubeadm join 192.168.178.100:6443 --token cmp2ge.my1xmrxxonnp47vi --discovery-token-ca-cert-hash sha256:0510de44004a0bcfceff8221c122b5116ce6fd8f507622a498abec3985a42fc1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 root@vm-c1-worker-2:~# kubeadm join 192.168.178.100:6443 --token cmp2ge.my1xmrxxonnp47vi \&lt;br /&gt;
        --discovery-token-ca-cert-hash sha256:0510de44004a0bcfceff8221c122b5116ce6fd8f507622a498abec3985a42fc1&lt;br /&gt;
 [preflight] Running pre-flight checks&lt;br /&gt;
 [preflight] Reading configuration from the cluster...&lt;br /&gt;
 [preflight] FYI: You can look at this config file with &amp;#039;kubectl -n kube-system get cm kubeadm-config -o yaml&amp;#039;&lt;br /&gt;
 [kubelet-start] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
 [kubelet-start] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
 [kubelet-start] Starting the kubelet&lt;br /&gt;
 [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...&lt;br /&gt;
 &lt;br /&gt;
 This node has joined the cluster:&lt;br /&gt;
 * Certificate signing request was sent to apiserver and a response was received.&lt;br /&gt;
 * The Kubelet was informed of the new secure connection details.&lt;br /&gt;
 &lt;br /&gt;
 Run &amp;#039;kubectl get nodes&amp;#039; on the control-plane to see this node join the cluster.&lt;br /&gt;
&lt;br /&gt;
==Show Results==&lt;br /&gt;
 # &amp;#039;&amp;#039;&amp;#039;kubectl get nodes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ kubectl get nodes&lt;br /&gt;
 NAME                  STATUS   ROLES           AGE     VERSION&lt;br /&gt;
 vm-c1-control-plane   Ready    control-plane   7m37s   v1.24.0&lt;br /&gt;
 vm-c1-worker-1        Ready    &amp;lt;none&amp;gt;          64s     v1.24.0&lt;br /&gt;
 vm-c1-worker-2        Ready    &amp;lt;none&amp;gt;          58s     v1.24.0&lt;br /&gt;
&lt;br /&gt;
==Optional Labeling==&lt;br /&gt;
 kubectl label node vm-c1-worker-1 node-role.kubernetes.io/worker=worker&lt;br /&gt;
 kubectl label node vm-c1-worker-2 node-role.kubernetes.io/worker=worker&lt;br /&gt;
&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ kubectl get nodes&lt;br /&gt;
 NAME                  STATUS   ROLES           AGE     VERSION&lt;br /&gt;
 vm-c1-control-plane   Ready    control-plane   4m51s   v1.26.0&lt;br /&gt;
 vm-c1-worker-1        Ready    worker          2m56s   v1.26.0&lt;br /&gt;
 vm-c1-worker-2        Ready    worker          2m5s    v1.26.0&lt;br /&gt;
&lt;br /&gt;
=Testing=&lt;br /&gt;
==Apply Test Pods==&lt;br /&gt;
*create nginx.yml&lt;br /&gt;
 ---&lt;br /&gt;
 apiVersion: v1&lt;br /&gt;
 kind: Pod&lt;br /&gt;
 metadata:&lt;br /&gt;
   name: nginx1&lt;br /&gt;
   labels:&lt;br /&gt;
     app: web&lt;br /&gt;
 spec:&lt;br /&gt;
   containers:&lt;br /&gt;
     - name: nginx1&lt;br /&gt;
       image: nginx&lt;br /&gt;
       ports:&lt;br /&gt;
         - containerPort: 80&lt;br /&gt;
 ---&lt;br /&gt;
 apiVersion: v1&lt;br /&gt;
 kind: Pod&lt;br /&gt;
 metadata:&lt;br /&gt;
   name: nginx2&lt;br /&gt;
   labels:&lt;br /&gt;
     app: web&lt;br /&gt;
 spec:&lt;br /&gt;
   containers:&lt;br /&gt;
     - name: nginx2&lt;br /&gt;
       image: nginx&lt;br /&gt;
       ports:&lt;br /&gt;
         - containerPort: 80&lt;br /&gt;
&lt;br /&gt;
*Apply&lt;br /&gt;
 # kubectl create -f nginx.yml&lt;br /&gt;
&lt;br /&gt;
*The result should look like:&lt;br /&gt;
 vmadmin@vm-c1-control-plane:~$ kubectl get pods -o wide&lt;br /&gt;
 NAME     READY   STATUS    RESTARTS   AGE   IP           NODE             NOMINATED NODE   READINESS GATES&lt;br /&gt;
 nginx1   1/1     Running   0          31s   10.244.2.4   vm-c1-worker-2   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;br /&gt;
 nginx2   1/1     Running   0          31s   10.244.1.3   vm-c1-worker-1   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Network Test==&lt;br /&gt;
*Connect to nginx1:&lt;br /&gt;
 kubectl exec --stdin --tty nginx -- /bin/bash&lt;br /&gt;
&lt;br /&gt;
*Install apps&lt;br /&gt;
 root@nginx1:/# apt-get update&lt;br /&gt;
 root@nginx1:/# apt-get install iputils-ping&lt;br /&gt;
&lt;br /&gt;
*Ping Nginx2 (YES!!!)&lt;br /&gt;
 root@nginx1:/# ping 10.244.1.3&lt;br /&gt;
 PING 10.244.1.3 (10.244.1.3) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 10.244.1.3: icmp_seq=1 ttl=62 time=0.563 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
*Self installation using calico&lt;br /&gt;
https://www.howtoforge.de/anleitung/kubernetes-cluster-mit-kubeadm-auf-debian-11-einrichten/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://www.linuxtechi.com/install-kubernetes-cluster-on-debian/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://www.oueta.com/linux/create-a-debian-11-kubernetes-cluster-with-kubeadm/ &amp;lt;br&amp;gt;&lt;br /&gt;
*About calico&lt;br /&gt;
https://www.inovex.de/de/blog/kubernetes-networking-2-calico-cilium-weavenet/# &amp;lt;br&amp;gt;&lt;br /&gt;
*Interesting about installation via Ansible: &lt;br /&gt;
https://www.linuxsysadmins.com/install-kubernetes-cluster-with-ansible/ &amp;lt;br&amp;gt;&lt;br /&gt;
*About Container Network Interface (CNI) - Add Ons&lt;br /&gt;
https://kubernetes.io/docs/concepts/cluster-administration/addons/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://platform9.com/blog/the-ultimate-guide-to-using-calico-flannel-weave-and-cilium/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://kubevious.io/blog/post/comparing-kubernetes-container-network-interface-cni-providers &amp;lt;br&amp;gt;&lt;br /&gt;
https://www.linux-magazin.de/ausgaben/2017/08/netz-in-kubernetes/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://ronaknathani.com/blog/2020/08/how-a-kubernetes-pod-gets-an-ip-address/ &amp;lt;br&amp;gt;&lt;br /&gt;
*Troubleshoot Flannel&lt;br /&gt;
https://www.continualintegration.com/miscellaneous-articles/how-do-you-solve-the-kubernetes-error-networkplugin-cni-failed-to-set-up-pod-network-open-run-flannel-subnet-env-no-such-file-or-directory/ &amp;lt;br&amp;gt;&lt;br /&gt;
https://www.programmersought.com/article/7824768991/ &amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>