Last active
June 15, 2022 08:21
-
-
Save TyeolRik/84ce2df31375ade359609dda810426aa to your computer and use it in GitHub Desktop.
CentOS8 install preset
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 | |
| 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')" |
Author
TyeolRik
commented
Jun 15, 2022

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