Files
Compose-Files/Backups/Miker/.trash/Installing Kubernetes.md
T
2026-07-20 09:23:17 -04:00

89 lines
3.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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