From bfc6aa279b61be2d78923b5f4b7a5e1a150ec605 Mon Sep 17 00:00:00 2001 From: cor5in Date: Wed, 26 Jun 2024 10:45:05 +0900 Subject: [PATCH] build: Edited tools/kubernetes/install_k8s.sh Issue-ID: AIMLFW-98 Change-Id: I687804753ebea524b9a4e79da568ab4372c199be Signed-off-by: cor5in --- tools/kubernetes/install_k8s.sh | 82 +++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/tools/kubernetes/install_k8s.sh b/tools/kubernetes/install_k8s.sh index 5c57e41..15f25b1 100755 --- a/tools/kubernetes/install_k8s.sh +++ b/tools/kubernetes/install_k8s.sh @@ -15,48 +15,58 @@ # 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 < /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!" -- 2.16.6