Merge pull request #115 from svc-design/codex/调整kubeadm和sealos支持k8s版本
This commit is contained in:
commit
d4aa40c67f
@ -3,3 +3,7 @@
|
||||
1. clone repo
|
||||
2. create repo Actions secrets and variables: HELM_REPO_PASSWORD
|
||||
3. push your code will be tigger github ci pipeline
|
||||
|
||||
Additional documentation:
|
||||
|
||||
- [GPU Kubernetes offline package](docs/gpu-offline-package.md)
|
||||
|
||||
42
docs/gpu-offline-package.md
Normal file
42
docs/gpu-offline-package.md
Normal file
@ -0,0 +1,42 @@
|
||||
# 构建 GPU Kubernetes 离线包
|
||||
|
||||
本仓库提供 `scripts/create-gpu-k8s-offline-package.sh` 脚本,用于生成在无网络环境下部署 GPU 集群所需的离线文件。脚本默认打包 Kubernetes 以及相关组件的 `v1.29.9` 版本,你可以通过环境变量调整需要的版本。
|
||||
|
||||
## 使用方法
|
||||
|
||||
```bash
|
||||
# 构建默认版本 (v1.29.9)
|
||||
bash scripts/create-gpu-k8s-offline-package.sh
|
||||
|
||||
# 指定其它版本,例如 v1.28.7
|
||||
K8S_VERSION=labring/kubernetes:v1.28.7 \
|
||||
KUBEADM_VERSION=1.28.7 \
|
||||
bash scripts/create-gpu-k8s-offline-package.sh
|
||||
```
|
||||
|
||||
生成的 `gpu_k8s_offline_packages.tar.gz` 包含以下内容:
|
||||
|
||||
- Kubernetes 二进制镜像
|
||||
- Cilium、Helm 等依赖镜像
|
||||
- kubeadm/kubelet/kubectl deb 包
|
||||
- NVIDIA 驱动及插件
|
||||
|
||||
离线包在部署时可同时适用于 `kubeadm` 或 `sealos`,最低推荐 Kubernetes 版本为 **1.29**,也可以使用更新的 `1.30` 等稳定版本。
|
||||
|
||||
## 在线安装 kubeadm/kubelet/kubectl
|
||||
|
||||
若主机可以访问互联网,可参考以下命令安装适用于 Kubernetes 1.29 的工具链:
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/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.29/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
|
||||
```
|
||||
|
||||
上述仓库仅提供 Kubernetes 1.29 系列的 deb 包,如果需要其它版本,请将 URL 中的 `v1.29` 替换为目标次要版本。
|
||||
@ -2,14 +2,14 @@
|
||||
set -euo pipefail
|
||||
|
||||
# Versions
|
||||
K8S_VERSION="${K8S_VERSION:-labring/kubernetes:v1.25.16}"
|
||||
K8S_VERSION="${K8S_VERSION:-labring/kubernetes:v1.29.9}"
|
||||
CILIUM_VERSION="${CILIUM_VERSION:-labring/cilium:v1.13.4}"
|
||||
HELM_VERSION="${HELM_VERSION:-labring/helm:v3.9.4}"
|
||||
NERDCTL_VERSION="${NERDCTL_VERSION:-2.1.2}"
|
||||
NVIDIA_PLUGIN_VERSION="${NVIDIA_PLUGIN_VERSION:-v0.17.1}"
|
||||
NVIDIA_DRIVER_VERSION="${NVIDIA_DRIVER_VERSION:-nvidia-driver-535}"
|
||||
CUDA_SAMPLE_IMAGE="${CUDA_SAMPLE_IMAGE:-nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda12.5.0}"
|
||||
KUBEADM_VERSION="${KUBEADM_VERSION:-1.25.16}"
|
||||
KUBEADM_VERSION="${KUBEADM_VERSION:-1.29.9}"
|
||||
|
||||
IMAGES=(
|
||||
"$K8S_VERSION"
|
||||
@ -38,10 +38,10 @@ curl -s -L "https://nvidia.github.io/nvidia-docker/${distribution}/nvidia-docker
|
||||
sed 's#^deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #' | \
|
||||
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
||||
|
||||
# Add Kubernetes repository for kubeadm/kubelet/kubectl (Ubuntu 22.04 compatible)
|
||||
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
|
||||
# Add Kubernetes repository for kubeadm/kubelet/kubectl (Kubernetes 1.29)
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
|
||||
sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
|
||||
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | \
|
||||
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
|
||||
sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
cp /usr/share/keyrings/kubernetes-archive-keyring.gpg "$WORKDIR/kubernetes-archive-keyring.gpg"
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ set -euo pipefail
|
||||
MASTER_IP=$(hostname -I | awk '{print $1}')
|
||||
USER=${USER:-$(whoami)}
|
||||
SSH_KEY="${HOME}/.ssh/id_rsa"
|
||||
K8S_VERSION="labring/kubernetes:v1.25.16"
|
||||
K8S_VERSION="labring/kubernetes:v1.29.9"
|
||||
CILIUM_VERSION="labring/cilium:v1.13.4"
|
||||
HELM_VERSION="labring/helm:v3.9.4"
|
||||
NVIDIA_DRIVER_VERSION="nvidia-driver-535"
|
||||
@ -170,7 +170,7 @@ install_kubeadm() {
|
||||
echo "📦 安装 kubeadm、kubelet、kubectl"
|
||||
|
||||
# 默认安装版本,可传参覆盖
|
||||
local KUBE_VERSION="${1:-1.25.16}"
|
||||
local KUBE_VERSION="${1:-1.29.9}"
|
||||
|
||||
echo "➡️ 目标版本: $KUBE_VERSION"
|
||||
|
||||
@ -186,18 +186,18 @@ install_kubeadm() {
|
||||
|
||||
# 在线安装
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
|
||||
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
|
||||
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
if [ -f "${OFFLINE_DIR}/kubernetes-archive-keyring.gpg" ]; then
|
||||
sudo cp "${OFFLINE_DIR}/kubernetes-archive-keyring.gpg" /etc/apt/keyrings/
|
||||
else
|
||||
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
|
||||
gpg --dearmor | sudo tee /etc/apt/keyrings/kubernetes-archive-keyring.gpg > /dev/null
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
|
||||
sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
|
||||
fi
|
||||
|
||||
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] \
|
||||
https://apt.kubernetes.io/ kubernetes-xenial main" | \
|
||||
https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
|
||||
sudo tee /etc/apt/sources.list.d/kubernetes.list
|
||||
|
||||
sudo apt-get update
|
||||
|
||||
Loading…
Reference in New Issue
Block a user