2026年版 Raspberry Pi 5 K8s 構築シェル (SSD起動対応)
このシェルは、Raspberry Pi 5 + SSD起動 + Debian 13 (Trixie) という最新環境で、`cgroup` の問題を突破し、Kubernetesを導入するためのものです。
1. cgroup設定とOS最適化
特にSSD起動時のパス `/boot/firmware/cmdline.txt` に対応しています。
```
#!/bin/bash
# 2026年最新OS対応 K8sセットアップスクリプト
# 1. cgroupの有効化 (SSD起動対応)
CMDLINE="/boot/firmware/cmdline.txt"
if [ ! -f "$CMDLINE" ]; then
CMDLINE="/boot/cmdline.txt"
fi
echo "Using $CMDLINE for cgroup configuration..."
if ! grep -q "cgroup_enable=cpuset" "$CMDLINE"; then
sudo sed -i '$ s/$/ cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1/' "$CMDLINE"
echo "cgroup settings added."
fi
# 2. スワップの無効化 (K8sに必須)
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile remove
sudo systemctl disable dphys-swapfile
# 3. 必要なモジュールのロード
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# 4. ネットワーク設定 (ブリッジ通信の許可)
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
```
2. Kubernetesインストール (2026年署名エラー回避)
リポジトリの署名期限問題を `trusted=yes` で回避し、必要なツールを揃えます。
```
# 5. containerdのインストール
sudo apt-get update
sudo apt-get install -y containerd
sudo mkdir -p /etc/containerd
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
# 6. Kubernetesリポジトリの追加 (2026年最新版)
# 署名エラーを回避するため [trusted=yes] を使用
echo "deb [trusted=yes] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl socat conntrack
sudo apt-mark hold kubelet kubeadm kubectl
echo "Setup completed! Please reboot your Raspberry Pi."
```
0 件のコメント:
コメントを投稿