-
-
Save tuna2134/9b4deca0ac3e122517cdf1d34766449f to your computer and use it in GitHub Desktop.
kubeadm-setup-ubuntu.sh
This file contains hidden or 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 -eu | |
# Install Containerd | |
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf | |
overlay | |
br_netfilter | |
EOF | |
sudo modprobe overlay | |
sudo modprobe br_netfilter | |
# Setup required sysctl params, these persist across reboots. | |
cat <<EOF | sudo 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 | |
# Apply sysctl params without reboot | |
sudo sysctl --system | |
## Install containerd | |
sudo apt-get update && sudo apt-get install -y containerd | |
# Configure containerd | |
sudo mkdir -p /etc/containerd | |
sudo containerd config default > /etc/containerd/config.toml | |
if grep -q "SystemdCgroup = true" "/etc/containerd/config.toml"; then | |
echo "Config found, skip rewriting..." | |
else | |
sed -i -e "s/SystemdCgroup \= false/SystemdCgroup \= true/g" /etc/containerd/config.toml | |
fi | |
# Restart containerd | |
sudo systemctl restart containerd | |
cat <<EOF | tee /etc/sysctl.d/k8s.conf | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.bridge.bridge-nf-call-iptables = 1 | |
vm.overcommit_memory = 1 | |
vm.panic_on_oom = 0 | |
kernel.panic = 10 | |
kernel.panic_on_oops = 1 | |
kernel.keys.root_maxkeys = 1000000 | |
kernel.keys.root_maxbytes = 25000000 | |
EOF | |
sysctl --system | |
apt-get update && apt-get install -y apt-transport-https curl | |
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - | |
cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list | |
deb https://apt.kubernetes.io/ kubernetes-xenial main | |
EOF | |
apt-get update | |
apt-get install -y kubelet kubeadm kubectl | |
apt-mark hold kubelet kubeadm kubectl | |
# Create a Kubernetes cluster | |
kubeadm init --pod-network-cidr=192.168.0.0/16 | |
rm -rf $HOME/.kube | |
mkdir -p $HOME/.kube | |
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config | |
chown $(id -u):$(id -g) $HOME/.kube/config | |
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash | |
helm repo add cilium https://helm.cilium.io/ | |
helm install cilium cilium/cilium \ | |
--namespace kube-system | |
curl -fsSL https://gist.github.com/tuna2134/9b4deca0ac3e122517cdf1d34766449f/raw/c33479389ff3602e22ec8fc836bdd2c739246792/kubeadm-setup-ubuntu.sh | sh
If your k8s’s pod is pending, you run this command
kubectl taint nodes <node> node-role.kubernetes.io/control-plane:NoSchedule-
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://openebs.io/docs/main/user-guides/installation