|
- #!/bin/bash
- set -e
-
- echo "=== 開始安裝 Worker node 必要元件 ==="
-
- # 1. 關閉 swap
- sudo swapoff -a
- sudo sed -i '/ swap / s/^/#/' /etc/fstab
-
- # 2. 啟用橋接網路所需 kernel module + ip forward
- cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
- overlay
- br_netfilter
- EOF
- sudo modprobe overlay
- sudo 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
- sudo sysctl --system
-
- # 3. 安裝 containerd
- sudo apt-get update
- sudo apt-get install -y containerd
-
- sudo mkdir -p /etc/containerd
- sudo containerd config default | sudo tee /etc/containerd/config.toml
- sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
- sudo systemctl restart containerd
- sudo systemctl enable containerd
-
- # 4. 安裝 kubeadm, kubelet, kubectl
- sudo apt-get update
- sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
-
- sudo mkdir -p /etc/apt/keyrings
- curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/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.30/deb/ /' | \
- sudo tee /etc/apt/sources.list.d/kubernetes.list
-
- sudo apt-get update
- sudo apt-get install -y kubelet kubeadm kubectl
- sudo apt-mark hold kubelet kubeadm kubectl
- sudo systemctl enable kubelet
-
- echo "=== Worker node 基本元件安裝完成 ==="
- echo
- kubeadm join 10.10.0.85:6443 --token ol93f3.0q7aj9wkxnsrho2k --discovery-token-ca-cert-hash sha256:b70d07e8a53c73719eb16f6d48ded95add1b3c4b5974077d95a53ac44f53ebdd
|