Skip to content

Instantly share code, notes, and snippets.

@TyeolRik
Last active June 15, 2022 08:21
Show Gist options
  • Select an option

  • Save TyeolRik/84ce2df31375ade359609dda810426aa to your computer and use it in GitHub Desktop.

Select an option

Save TyeolRik/84ce2df31375ade359609dda810426aa to your computer and use it in GitHub Desktop.
CentOS8 install preset
#!/bin/bash
dnf update -y &&\
dnf install -y kernel-devel kernel-header* make gcc elfutils-libelf-devel
echo "Installing Docker"
yum install -y yum-utils telnet &&\
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo &&\
yum install -y --allowerasing docker-ce docker-ce-cli containerd.io docker-compose-plugin &&\
systemctl start docker
echo "Docker install complete"
echo "Open Port"
# https://kubernetes.io/ko/docs/reference/ports-and-protocols/
# iptables -A INPUT -i eth0 -p tcp --dport 6443 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 2379 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 2380 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 10250 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 10259 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 10257 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 179 -j ACCEPT
firewall-cmd --zone=public --permanent --add-port 6443/tcp
firewall-cmd --zone=public --permanent --add-port 2379/tcp
firewall-cmd --zone=public --permanent --add-port 2380/tcp
firewall-cmd --zone=public --permanent --add-port 10250/tcp
firewall-cmd --zone=public --permanent --add-port 10259/tcp
firewall-cmd --zone=public --permanent --add-port 10257/tcp
firewall-cmd --zone=public --permanent --add-port 179/tcp # Calico networking (BGP)
firewall-cmd --reload
echo "Check br_netfilter"
printf "br_netfilter" > /etc/modules-load.d/k8s.conf
printf "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1" > /etc/sysctl.d/k8s.conf
sysctl --system
echo "Add Kubernetes"
printf "[kubernetes]\n\
name=Kubernetes\n\
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch\n\
enabled=1\n\
gpgcheck=1\n\
repo_gpgcheck=1\n\
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg\n\
exclude=kubelet kubeadm kubectl" >> /etc/yum.repos.d/kubernetes.repo
echo "SELinux permissive"
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet && systemctl restart kubelet
echo "Swap off"
swapon && cat /etc/fstab
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
echo "Configure cgroup driver"
mkdir -p /etc/docker
printf "\
{\n\
\"exec-opts\": [\"native.cgroupdriver=systemd\"],\n\
\"log-driver\": \"json-file\",\n\
\"log-opts\": {\n\
\"max-size\": \"100m\"\n\
},\n\
\"storage-driver\": \"overlay2\"\n\
}" >> /etc/docker/daemon.json
systemctl enable docker
systemctl daemon-reload
systemctl restart docker
# Due to Error: "getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
rm -f /etc/containerd/config.toml
systemctl restart containerd
kubeadm init
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
@TyeolRik
Copy link
Author

k8s cluster 1 master 2 worker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment