Created
July 12, 2024 09:10
-
-
Save goldshadow0731/23f99fb6eed61844486d830115627397 to your computer and use it in GitHub Desktop.
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/bash | |
# ===== Version ===== | |
# k8s_version=1.28 | |
# HOSTNAME=ubuntu-pve | |
if [ $# -gt 1 ]; then | |
k8s_version=$1 | |
shift | |
else | |
exit 1 | |
fi | |
# ===== Prepare ===== | |
# ----- disable swap ----- | |
sudo sed -i '/swap/s/^/#/' /etc/fstab | |
sudo swapoff -a | |
sudo cat /etc/fstab | |
# ----- set iptables ----- | |
cat << EOF | sudo tee /etc/modules-load.d/k8s.conf | |
overlay | |
br_netfilter | |
EOF | |
sudo modprobe overlay | |
sudo modprobe br_netfilter | |
cat << EOF | sudo tee /etc/sysctl.d/k8s.conf | |
net.bridge.bridge-nf-call-iptables = 1 | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.ipv4.ip_forward = 1 | |
EOF | |
sudo sysctl --system | |
# ----- Package ----- | |
sudo apt-get update | |
sudo apt-get install -y apt-transport-https ca-certificates curl gpg | |
# ===== Install ===== | |
# ----- Kubernetes ----- | |
sudo mkdir -p -m 755 /etc/apt/keyrings | |
curl -fsSL https://pkgs.k8s.io/core:/stable:/v$k8s_version/deb/Release.key | sudo 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:/v'$k8s_version'/deb/ /' | sudo tee -a /etc/apt/sources.list.d/kubernetes.list | |
sudo apt update | |
# apt-cache show kubectl | grep Version | awk {'print $2'} | |
sudo apt-get install -y kubelet kubeadm kubectl | |
sudo apt-mark hold kubelet kubeadm kubectl | |
curl -LO "https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd_0.3.9.3-0.ubuntu-$(lsb_release -cs)_amd64.deb" | |
sudo dpkg -i "cri-dockerd_0.3.9.3-0.ubuntu-$(lsb_release -cs)_amd64.deb" | |
rm "cri-dockerd_0.3.9.3-0.ubuntu-$(lsb_release -cs)_amd64.deb" | |
# ===== Cluster ===== | |
if [ $# -le 2 ] | |
then | |
sudo kubeadm init --v=5 --pod-network-cidr=10.244.0.0/16 --cri-socket unix:///var/run/cri-dockerd.sock $* | |
mkdir -p $HOME/.kube | |
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config | |
sudo chown $(id -u):$(id -g) $HOME/.kube/config | |
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml | |
# Cilium | |
# CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt) | |
# CLI_ARCH=amd64 | |
# if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi | |
# curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} | |
# sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum | |
# sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin | |
# rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} | |
# cilium install --version 1.15.4 | |
# cilium status --wait | |
kubectl cluster-info | |
# sudo rm -rf /etc/cni/net.d | |
# kubectl taint node ${HOSTNAME} node-role.kubernetes.io/master- | |
else | |
sudo kubeadm join $* --cri-socket unix:///var/run/cri-dockerd.sock | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment