增量离线包的生成和使用
为了满足用户对于某些软件特定版本的需要,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。