This commit is contained in:
Mike McFetridge
2026-07-20 09:23:17 -04:00
parent c1315882da
commit 72272e4006
3179 changed files with 562960 additions and 14 deletions
@@ -0,0 +1,89 @@
To set up and install Kubernetes on Ubuntu, you'll need to install Docker (or another container runtime), configure hostnames, disable swap, and install Kubernetes components like `kubeadm`, `kubelet`, and `kubectl`. The process involves initializing the master node with `kubeadm init`, then joining worker nodes to the cluster using the join command generated during initialization
Here's a more detailed breakdown:
1. Prerequisites:
- **Ubuntu Server:** A clean installation of Ubuntu Server (e.g., 20.04, 22.04, or 24.04) on all nodes (master and worker nodes) is required. 
- **Sufficient Resources:** Ensure each node has enough resources ( 2 CPU, 4GB memory, 50GB disk space) to run Kubernetes and your applications. 
2. Preparation on all Nodes:
- **Update and Upgrade:** Ensure your system is up to date:
- `sudo apt update && sudo apt upgrade -y`. 
- **Disable Swap:** Disable swap space for better performance:
- `sudo swapoff -a`
- `sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
- **Setup certain kubernetes pre-req modules
- cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
- **Enable IP forwarding:** Enable IPv4 forwarding on all nodes:
- `sudo sysctl net.ipv4.ip_forward=1`
- `sudo tee /etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF`. 
- **Install Containerd:** Install a container runtime like Docker or Containerd. 
- `sudo apt install -y docker.io`
- `sudo systemctl start docker
- `sudo systemctl enable docker
-- **Install Kubernetes Components:** Install `kubeadm`, `kubelet`,
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
- **Initialize the Cluster:** On the master node, initialize the cluster using `kubeadm`: 
sudo kubeadm init --pod-network-cidr=10.0.0.0/16'
Configure `kubectl` for the cluster:
sudo mkdir -p $HOME/.kube '
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Joining Workers Nodes to the Cluster
kubeadm token createe --print-join-command
Setup Flannel for kubernetes networking
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
nano kube-flannel.yml
**Update the Network Line which is this
"Network": "10.244.0.0/16",
**Update it to be the CIDR that is used for the initalizing the pod so in this example
"Network": "10.0.0.0/16",
kubectl apply -f kube-flannel.yml
Install the Calico Operator:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/tigera-operator.yaml
Apply the Calico Manifest
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/custom-resources.yaml