<?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.31_on_Debian_12_with_Flannel</id>
	<title>Install Kubernetes 1.31 on Debian 12 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.31_on_Debian_12_with_Flannel"/>
	<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.31_on_Debian_12_with_Flannel&amp;action=history"/>
	<updated>2026-06-02T20:13:30Z</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.31_on_Debian_12_with_Flannel&amp;diff=1031&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;=Intro= Installation example of Kubernetes Cluster on Debian 11 Hosts used in this sample: *c3-control-plane *c3-worker-01 *c3-worker-02  *Host specs: *VM&#039;s with 8CPUs, 16GB Ram each, running Debian12  *Host file example of c2-control-plane  127.0.1.1       c2-control-plane  127.0.0.1       localhost   192.168.2.71    c3-control-plane  192.168.2.88    c3-worker-01  192.168.2.89    c3-worker-02   =Installation on Master and on all Nodes= ==Hostnames== Hostnames used in th...&quot;</title>
		<link rel="alternate" type="text/html" href="https://coolscript.net/index.php?title=Install_Kubernetes_1.31_on_Debian_12_with_Flannel&amp;diff=1031&amp;oldid=prev"/>
		<updated>2024-09-24T19:26:18Z</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: *c3-control-plane *c3-worker-01 *c3-worker-02  *Host specs: *VM&amp;#039;s with 8CPUs, 16GB Ram each, running Debian12  *Host file example of c2-control-plane  127.0.1.1       c2-control-plane  127.0.0.1       localhost   192.168.2.71    c3-control-plane  192.168.2.88    c3-worker-01  192.168.2.89    c3-worker-02   =Installation on Master and on all Nodes= ==Hostnames== Hostnames used in th...&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;
*c3-control-plane&lt;br /&gt;
*c3-worker-01&lt;br /&gt;
*c3-worker-02&lt;br /&gt;
&lt;br /&gt;
*Host specs:&lt;br /&gt;
*VM&amp;#039;s with 8CPUs, 16GB Ram each, running Debian12&lt;br /&gt;
&lt;br /&gt;
*Host file example of c2-control-plane&lt;br /&gt;
 127.0.1.1       c2-control-plane&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
&lt;br /&gt;
 192.168.2.71    c3-control-plane&lt;br /&gt;
 192.168.2.88    c3-worker-01&lt;br /&gt;
 192.168.2.89    c3-worker-02&lt;br /&gt;
&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;
*c3-control-plane&lt;br /&gt;
*c3-worker-01&lt;br /&gt;
*c3-worker-02&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;
 echo &amp;quot;deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /&amp;quot; | sudo tee /etc/apt/sources.list.d/kubernetes.list&lt;br /&gt;
 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===Additional Packages===&lt;br /&gt;
*Need 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;
&lt;br /&gt;
===Install and Hold===&lt;br /&gt;
 apt-get install -y kubelet kubeadm kubectl&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;
 root@c3-control-plane:~# &amp;#039;&amp;#039;&amp;#039;sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.31.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 [init] Using Kubernetes version: v1.31.1&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 beforehand using &amp;#039;kubeadm config images pull&amp;#039;&lt;br /&gt;
 W0924 20:27:37.309409    3434 checks.go:846] detected that the sandbox image &amp;quot;registry.k8s.io/pause:3.8&amp;quot; of the container runtime is inconsistent with that used by kubeadm.It is recommended to use &amp;quot;registry.k8s.io/pause:3.10&amp;quot; as the CRI  sandbox image.&lt;br /&gt;
 &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 [c3-control-plane kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.2.71]&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 [c3-control-plane localhost] and IPs [192.168.2.71 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 [c3-control-plane localhost] and IPs [192.168.2.71 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;super-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;
 [etcd] Creating static Pod manifest for local etcd in &amp;quot;/etc/kubernetes/manifests&amp;quot;&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;
 [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;
 [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;&lt;br /&gt;
 [kubelet-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s&lt;br /&gt;
 [kubelet-check] The kubelet is healthy after 1.002763895s&lt;br /&gt;
 [api-check] Waiting for a healthy API server. This can take up to 4m0s&lt;br /&gt;
 [api-check] The API server is healthy after 7.551840294s&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 c3-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 c3-control-plane as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule]&lt;br /&gt;
 [bootstrap-token] Using token: lh8xc6.3sko0430n0rz8awq&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.2.71:6443 --token lh8xc6.3sko0430n0rz8awq \&lt;br /&gt;
        --discovery-token-ca-cert-hash sha256:cfc8aa385d1898a567a0370a3b9ed9331aae78e13c9414917fe5f5acb62851df&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@c3-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;
 c3-control-plane      &amp;#039;&amp;#039;&amp;#039;NotReady&amp;#039;&amp;#039;&amp;#039;   control-plane   35m   v1.31.1&lt;br /&gt;
&lt;br /&gt;
==Apply Flannel==&lt;br /&gt;
&lt;br /&gt;
 vmadmin@c3-control-plane:~$ &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;
 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;
&lt;br /&gt;
 vmadmin@c3-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;
 c3-control-plane   Ready    control-plane   35m   v1.31.1&lt;br /&gt;
&lt;br /&gt;
=Join the worker nodes=&lt;br /&gt;
==Node01==&lt;br /&gt;
 root@c3-worker-01:~# &amp;#039;&amp;#039;&amp;#039;kubeadm join 192.168.2.71:6443 --token lh8xc6.3sko0430n0rz8awq \&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;--discovery-token-ca-cert-hash sha256:cfc8aa385d1898a567a0370a3b9ed9331aae78e13c9414917fe5f5acb62851df&amp;#039;&amp;#039;&amp;#039;&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-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s&lt;br /&gt;
 [kubelet-check] The kubelet is healthy after 1.002183203s&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;
 root@c3-worker-02:~# &amp;#039;&amp;#039;&amp;#039;kubeadm join 192.168.2.71:6443 --token lh8xc6.3sko0430n0rz8awq \&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;--discovery-token-ca-cert-hash sha256:cfc8aa385d1898a567a0370a3b9ed9331aae78e13c9414917fe5f5acb62851df&amp;#039;&amp;#039;&amp;#039;&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-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s&lt;br /&gt;
 [kubelet-check] The kubelet is healthy after 1.00237113s&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@c3-control-plane:~$ kubectl get nodes&lt;br /&gt;
 NAME               STATUS   ROLES           AGE     VERSION&lt;br /&gt;
 c3-control-plane   Ready    control-plane   32m     v1.31.1&lt;br /&gt;
 c3-worker-01       Ready    &amp;lt;none&amp;gt;          4m54s   v1.31.1&lt;br /&gt;
 c3-worker-02       Ready    &amp;lt;none&amp;gt;          112s    v1.31.1&lt;br /&gt;
&lt;br /&gt;
==Optional Labeling==&lt;br /&gt;
 vmadmin@c3-control-plane:~$ &amp;#039;&amp;#039;&amp;#039;kubectl label node c3-worker-01 node-role.kubernetes.io/worker=worker&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 node/c3-worker-01 labeled&lt;br /&gt;
 vmadmin@c3-control-plane:~$ &amp;#039;&amp;#039;&amp;#039;kubectl label node c3-worker-02 node-role.kubernetes.io/worker=worker&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 node/c3-worker-02 labeled&lt;br /&gt;
 vmadmin@c3-control-plane:~$ kubectl get nodes&lt;br /&gt;
 NAME               STATUS   ROLES           AGE     VERSION&lt;br /&gt;
 c3-control-plane   Ready    control-plane   19m     v1.31.1&lt;br /&gt;
 c3-worker-01       Ready    worker          8m18s   v1.31.1&lt;br /&gt;
 c3-worker-02       Ready    worker          94s     v1.31.1&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;
*Nice cheat sheet https://spacelift.io/blog/kubernetes-cheat-sheet&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;br /&gt;
*Continue from Flannel&lt;br /&gt;
https://github.com/Thoorium/kubernetes-local-cluster-flannel-metallb-traefik&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>