Skip to content

Instantly share code, notes, and snippets.

@tranphuquy19
Last active April 20, 2021 10:02
Show Gist options
  • Save tranphuquy19/fe847e7d8b0f5446f30c86594e3b6b72 to your computer and use it in GitHub Desktop.
Save tranphuquy19/fe847e7d8b0f5446f30c86594e3b6b72 to your computer and use it in GitHub Desktop.
Install KubeADM
#!/usr/bin/env bash
# Set hostname
hostnamectl set-hostname master # for master node
# ================================================================
# Install Docker
# ================================================================
# CentOS/RHEL
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
setenforce 0
swapoff -a
yum install -y curl nano net-tools
yum install -y docker
systemctl enable docker && systemctl start docker
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl --system
# Debian
apt-get update
apt-get install -y docker.io
# ================================================================
# Installing kubeadm, kubelet and kubectl
# ================================================================
# CentOS/RHEL
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=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
# Debian
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
swapoff -a
# Master
kubeadm init --apiserver-advertise-address 192.168.71.128 --pod-network-cidr=10.244.0.0/16
export KUBECONFIG=/etc/kubernetes/admin.conf
# Install Pod network manager = flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
# Install metrics server
kubectl apply -f https://raw.githubusercontent.com/tranphuquy19/k8s-tuts/master/components.yaml
# ================================================================
# Ensure CGroup Driver for Docker and Kubelet match
# ================================================================
docker info | grep -i cgroup
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# ================================================================
# Initialize KubeADM
# ================================================================
# kubeadm init
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment