Last active
May 3, 2024 06:44
-
-
Save devpilot/6d0eb3eb5bc24bd19016ee62f7ba989d to your computer and use it in GitHub Desktop.
setup kubernetes single node cluster
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# curl -o- https://gist.githubusercontent.com/devpilot/6d0eb3eb5bc24bd19016ee62f7ba989d/raw/kube-setup.sh | sudo bash | |
# | |
# Make script executable | |
# chmod +x kube-setup.sh | |
# | |
# Run sctipt as root | |
# sudo ./kube-setup.sh | |
set -xe | |
# script should run as root user | |
if [ `id -u` -ne 0 ] | |
then echo Please run this script as root or using sudo! | |
exit | |
fi | |
cat << EOF | tee /etc/modules-load.d/containerd.conf | |
overlay | |
br_netfilter | |
EOF | |
modprobe overlay | |
modprobe br_netfilter | |
cat << EOF | tee /etc/sysctl.d/99-kubernetes-cri.conf | |
net.bridge.bridge-nf-call-iptables = 1 | |
net.ipv4.ip_forward = 1 | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
EOF | |
sysctl --system | |
apt update | |
apt install -y containerd | |
mkdir -p /etc/containerd | |
containerd config default | tee /etc/containerd/config.toml | |
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml | |
systemctl restart containerd | |
apt install -y apt-transport-https ca-certificates curl gpg | |
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg | |
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list | |
apt update | |
apt install -y kubeadm=1.30.0-1.1 kubelet=1.30.0-1.1 kubectl=1.30.0-1.1 | |
apt-mark hold kubeadm kubelet kubectl | |
kubeadm init --pod-network-cidr 10.20.0.0/16 --kubernetes-version 1.30.0 | |
export KUBECONFIG=/etc/kubernetes/admin.conf | |
# https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart | |
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/tigera-operator.yaml | |
wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/custom-resources.yaml | |
sed -i "s/cidr:.*/cidr: 10.20.0.0\/16/" custom-resources.yaml | |
kubectl create -f custom-resources.yaml | |
rm custom-resources.yaml | |
kubectl taint nodes --all node-role.kubernetes.io/control-plane- | |
mkdir -p /home/core/.kube | |
cp -i /etc/kubernetes/admin.conf /home/core/.kube/config | |
chown -R core:core /home/core/.kube |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment