增量离线包的生成和使用
为了满足用户对于某些软件特定版本的需要,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
| 环境变量 | 可选值描述 (:material-checkbox-marked-circle: :表示默认值) |
|---|---|
| ZONE | :material-checkbox-marked-circle: DEFAULT: 采用默认原始地址下载离线资源 |
:material-checkbox-blank-circle-outline: CN: 采用国内 DaoCloud 加速器地址下载离线资源 |
|
| MODE | :material-checkbox-marked-circle: INCR: 仅构建配置中指定组件的离线资源(即:增量包) |
:material-checkbox-blank-circle-outline: 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。
