build: Edited tools/kubernetes/install_k8s.sh 09/13009/12
authorcor5in <gun@khu.ac.kr>
Wed, 26 Jun 2024 01:45:05 +0000 (10:45 +0900)
committersubhash kumar singh <subh.singh@samsung.com>
Wed, 26 Jun 2024 07:06:42 +0000 (07:06 +0000)
Issue-ID: AIMLFW-98

Change-Id: I687804753ebea524b9a4e79da568ab4372c199be
Signed-off-by: cor5in <gun@khu.ac.kr>
tools/kubernetes/install_k8s.sh

index 5c57e41..15f25b1 100755 (executable)
 #   limitations under the License.
 #
 # ==================================================================================
+echo "Step 1: Disabling swap memory..."
+sudo swapoff -a
+sudo sed -i '/swap/s/^/#/' /etc/fstab
+
+echo "Step 2: Enabling IPv4 packet forwarding and loading kernel modules..."
+echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf > /dev/null
+sudo modprobe overlay
+sudo modprobe br_netfilter
 
-# Install Docker Engine
-sudo apt-get update
-sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
-
-if [ -z $(which docker) ];
-then
-    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 \
-    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-    sudo apt-get update -y
-    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-    sudo mkdir -p /etc/docker
-    sudo cat > /tmp/daemon.json <<EOF
-{
-  "exec-opts": ["native.cgroupdriver=systemd"],
-  "log-driver": "json-file",
-  "log-opts": {
-    "max-size": "100m"
-  },
-  "storage-driver": "overlay2"
-}
+cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf > /dev/null
+net.bridge.bridge-nf-call-iptables  = 1
+net.bridge.bridge-nf-call-ip6tables = 1
+net.ipv4.ip_forward                 = 1
 EOF
 
-    sudo cp /tmp/daemon.json /etc/docker/daemon.json
-    sudo rm /tmp/daemon.json
-    sudo systemctl restart docker
-    sudo systemctl enable docker
-else
-    echo "Found Docker Engine in the system. Skip Docker Engine installation."
-fi
-
-sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
-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
-sudo apt-get update
-sudo apt-get install -y kubelet=1.21.0-00 kubectl=1.21.0-00 kubeadm=1.21.0-00
+sudo sysctl --system
+
+echo "Step 3: Installing Containerd..."
+sudo apt update
+sudo apt install -y containerd
+sudo mkdir -p /etc/containerd
+containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
+sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
+sudo systemctl restart containerd
+
+echo "Step 4: Installing Kubernetes packages..."
+sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl
+curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
+echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb /' | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
+sudo apt update && sudo apt install -y kubeadm=1.28.0-1.1 kubelet=1.28.0-1.1 kubectl=1.28.0-1.1
 sudo apt-mark hold kubelet kubeadm kubectl
-sudo swapoff -a
+
+echo "Step 5: Initializing Kubernetes..."
 sudo kubeadm init
 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config
-curl https://projectcalico.docs.tigera.io/archive/v3.22/manifests/calico.yaml -O
+
+echo "Removing taints from control-plane nodes..."
+for node in $(kubectl get nodes --no-headers | awk '{print $1}')
+do
+  echo "Removing taint from $node..."
+  kubectl taint nodes $node node-role.kubernetes.io/control-plane- --ignore-not-found=true
+done
+
+echo "Downloading and applying Calico..."
+curl -fsSL https://projectcalico.docs.tigera.io/manifests/calico.yaml -o calico.yaml
+
+echo "Modifying Calico configuration..."
+sudo sed -i 's/apiVersion: policy\/v1beta1/apiVersion: policy\/v1/g' calico.yaml
+
+echo "Applying modified Calico configuration..."
 kubectl apply -f calico.yaml
-kubectl taint nodes --all node-role.kubernetes.io/master-
+
+echo "Installation complete!"