增量离线包的生成和使用¶
为了满足用户对于某些软件特定版本的需要,Kubean 提供脚本 artifacts/airgap_patch.py
根据配置文件 manifest.yml
来生成对应版本的离线包。
生成增量离线包¶
-
在当前文件夹新建
manifest.yml
文件,内容举例如下:image_arch: - "amd64" - "arm64" kube_version: - "v1.24.6" - "v1.24.4" calico_version: - "v3.23.3" cni_version: - "v1.1.1" containerd_version: - "1.6.8" cilium_version: - "v1.12.1" etcd_version: - "v3.5.3"
-
在当前文件夹新建
data
文件夹 -
使用镜像,等待运行退出后,在
data
文件夹中生成增量离线包docker run \ -v $(pwd)/data:/data \ -v $(pwd)/manifest.yml:/manifest.yml \ -e ZONE=CN \ ghcr.io/kubean-io/airgap-patch:v0.11.1
环境变量 可选值描述 ( :表示默认值) ZONE DEFAULT
: 采用默认原始地址下载离线资源CN
: 采用国内 DaoCloud 加速器地址下载离线资源MODE INCR
: 仅构建配置中指定组件的离线资源(即:增量包)FULL
: 将构建配置中指定的组件以及集群部署必要其他组件的离线资源(即:全量包)
使用增量离线包¶
增量包的目录结构如下:
data
└── airgap_patch
├── amd64
│ ├── files
│ │ ├── import_files.sh
│ │ └── offline-files.tar.gz
│ └── images
│ ├── import_images.sh
│ └── offline-images.tar.gz
├── arm64
│ ├── files
│ │ ├── import_files.sh
│ │ └── offline-files.tar.gz
│ └── images
│ ├── import_images.sh
│ └── offline-images.tar.gz
└── localartifactset.cr.yaml
-
向 MinIO 中写入文件数据
cd data/airgap_patch/amd64/files MINIO_USER=${username} MINIO_PASS=${password} ./import_files.sh ${minio_address}
minio_address
是minio API Server
地址,端口一般为 9000,比如http://1.2.3.4:9000
。 -
向 Docker Registry(推荐使用 2.6.2 版本)或者 Harbor 写入镜像数据
cd data/airgap_patch/amd64/images # 1. 免密模式 REGISTRY_SCHEME=http REGISTRY_ADDR=${registry_address} ./import_images.sh # 2. 用户名口令模式 REGISTRY_SCHEME=https REGISTRY_ADDR=${registry_address} REGISTRY_USER=${username} REGISTRY_PASS=${password} ./import_images.sh
REGISTRY_ADDR
是镜像仓库的地址,比如1.2.3.4:5000
- 当镜像仓库存在用户名密码验证时,需要设置
REGISTRY_USER
和REGISTRY_PASS
-
将
localartifactset.cr.yaml
写入到 K8s 集群cd data/airgap_patch kubectl apply -f localartifactset.cr.yaml
这一步是为了将新的可离线使用的软件版本信息告知 kubean-operator。