Created
May 4, 2022 05:01
-
-
Save BBijaya/dc5ca73519d91d5a22cf854284cf7143 to your computer and use it in GitHub Desktop.
Install kubernetes on Debian based and Red Hat based systems
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
# setting selinux to permissive/disabled | |
SELINUX_STATE=$(getenforce) | |
if [ "$SELINUX_STATE" == "Enforcing" ]; then | |
setenforce 0 | |
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g'\ | |
/etc/sysconfig/selinux | |
fi | |
# enabling the br_netfilter module for cluster communication | |
modprobe br_netfilter | |
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables | |
# Allowing iptalbes to see the bridged traffic correctly | |
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.bridge.bridge-nf-call-iptables = 1 | |
EOF | |
# Disable swap permanently | |
swapoff -a | |
sed '/^#/! {/swap/ s/^/#/}' -i /etc/fstab | |
# Install Docker prerequisite and docker | |
source /etc/os-release | |
distro=$ID | |
if [ "$distro" == "ubuntu" ]; then | |
#docker prerequisite | |
sudo apt-get update | |
sudo apt-get install -y \ | |
ca-certificates \ | |
apt-transport-https \ | |
curl \ | |
gnupg \ | |
lsb-release | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
echo \ | |
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ | |
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
#docker | |
sudo apt-get update | |
sudo apt-get install -y docker-ce docker-ce-cli containerd.io | |
# kubernetes google publick keyring | |
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg | |
# add repo | |
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 | |
# docker cgroup dirver | |
sudo tee /etc/docker/daemon.json <<-EOF | |
{ | |
"exec-opts": ["native.cgroupdriver=systemd"], | |
"log-driver": "json-file", | |
"log-opts": { | |
"max-size": "100m" | |
}, | |
"storage-driver": "overlay2" | |
} | |
EOF | |
systemctl daemon-reload | |
systemctl enable docker | |
systemctl restart docker | |
#systemctl status docker | |
docker info | grep -i cgroup | |
# Install pin docker version | |
sudo apt-get update | |
sudo apt-get install -y kubelet kubeadm kubectl | |
sudo apt-mark hold kubelet kubeadm kubectl | |
#sudo systemctl enable --now kubelet | |
elif [ "$distro" == "centos" ]; then | |
sudo yum install -y yum-utils | |
sudo yum-config-manager \ | |
--add-repo \ | |
https://download.docker.com/linux/centos/docker-ce.repo | |
sudo yum install -y docker-ce docker-ce-cli containerd.io | |
# docker cgroup driver | |
sed -i '/^ExecStart/ s/$/ --exec-opt native.cgroupdriver=systemd/' /usr/lib/systemd/system/docker.service | |
systemctl daemon-reload | |
systemctl enable docker --now | |
systemctl status docker 2>&1 | |
docker info | grep -i cgroup | |
# Add kubernetes repo | |
cat <<EOF > /etc/yum.repos.d/kubernetes.repo | |
[kubernetes] | |
name=Kubernetes | |
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 | |
enabled=1 | |
gpgcheck=0 | |
repo_gpgcheck=0 | |
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg | |
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg | |
EOF | |
# install and enable kubernetes | |
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes | |
sudo systemctl enable --now kubelet | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment