Last active
December 22, 2023 20:01
-
-
Save camillanapoles/d5172de21280ef191ead97968738acc2 to your computer and use it in GitHub Desktop.
Scrip install kubernetes
This file contains 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 | |
# https://medium.com/@olorunfemikawonise_56441/simplifying-kubernetes-installation-on-ubuntu-using-a-bash-shell-script-d75fed68a31 | |
# common.sh | |
# copy this script and run in all master and worker nodes | |
#i1) Switch to root user [ sudo -i] | |
#2) Disable swap & add kernel settings | |
swapoff -a | |
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab | |
#3) Add kernel settings & Enable IP tables(CNI Prerequisites) | |
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf | |
overlay | |
br_netfilter | |
EOF | |
modprobe overlay | |
modprobe br_netfilter | |
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf | |
net.bridge.bridge-nf-call-iptables = 1 | |
net.bridge.bridge-nf-call-ip6tables = 1 | |
net.ipv4.ip_forward = 1 | |
EOF | |
sysctl --system | |
#4) Install containerd run time | |
#To install containerd, first install its dependencies. | |
apt-get update -y | |
apt-get install ca-certificates curl gnupg lsb-release -y | |
#Note: We are not installing Docker Here.Since containerd.io package is part of docker apt repositories hence we added docker repository & it's key to download and install containerd. | |
# Add Docker’s official GPG key: | |
sudo mkdir -p /etc/apt/keyrings | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg | |
#Use follwing command to set up the repository: | |
echo \ | |
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ | |
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
# Install containerd | |
apt-get update -y | |
apt-get install containerd.io -y | |
# Generate default configuration file for containerd | |
#Note: Containerd uses a configuration file located in /etc/containerd/config.toml for specifying daemon level options. | |
#The default configuration can be generated via below command. | |
containerd config default > /etc/containerd/config.toml | |
# Run following command to update configure cgroup as systemd for contianerd. | |
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml | |
# Restart and enable containerd service | |
systemctl restart containerd | |
systemctl enable containerd | |
#5) Installing kubeadm, kubelet and kubectl | |
# Update the apt package index and install packages needed to use the Kubernetes apt repository: | |
apt-get update | |
apt-get install -y apt-transport-https ca-certificates curl | |
# Download the Google Cloud public signing key: | |
curl -fsSL https://dl.k8s.io/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg | |
# Add the Kubernetes apt repository: | |
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list | |
# Update apt package index, install kubelet, kubeadm and kubectl, and pin their version: | |
apt-get update | |
apt-get install -y kubelet kubeadm kubectl | |
# apt-mark hold will prevent the package from being automatically upgraded or removed. | |
apt-mark hold kubelet kubeadm kubectl | |
# Enable and start kubelet service | |
systemctl daemon-reload | |
systemctl start kubelet | |
systemctl enable kubelet.service |
Author
camillanapoles
commented
Dec 22, 2023
•
Step 7: Deploy the network plugin (weave network)
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
#verify if weave is deployed successfully
kubectl get pods -A
Step 8: Create the master join token on the master node
kubeadm token create — print-join-command
kubeadm join 172.30.20.20:6443 — token cdm6fo.dhbrxyleqe5suy6e \
— discovery-token-ca-cert-hash sha256:1fc51686afd16c46102c018acb71ef9537c1226e331840e7d401630b96298e7d
Step 9: Join worker node to Kubernetes cluster
kubeadm join 172.30.20.20:6443 — token cdm6fo.dhbrxyleqe5suy6e \
— discovery-token-ca-cert-hash sha256:1fc51686afd16c46102c018acb71ef9537c1226e331840e7d401630b96298e7d
Step 9: Join worker node to Kubernetes cluster
kubeadm join 172.30.20.20:6443 — token cdm6fo.dhbrxyleqe5suy6e \
— discovery-token-ca-cert-hash sha256:1fc51686afd16c46102c018acb71ef9537c1226e331840e7d401630b96298e7d
kubectl get nodes
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment