Ceph集群启动时,需要动态地从远程仓库拉取镜像。为了方便局域网内集群的正常启动,需要在内网配置镜像仓库,导入之前制作的部署镜像。本节操作均在ceph1节点的物理机上执行。
- 拉取registry:2到本地仓。
|
podman pull docker.io/library/registry:2
|
- 若不能访问外网,使用如下方法或手动下载包导入到节点。
|
git config --global http.sslVerify false
git config --global https.sslVerify false
git clone https://github.com/NotGlop/docker-drag.git
|
- 启动本地仓:
|
podman load -i registry_2.tar
|
- 如代理上网时不能正常拉取镜像,需检查代理设置方式。Podman依赖环境变量HTTP_PROXY和HTTPS_PROXY进行代理上网。
- 修改容器配置文件“/etc/containers/registries.conf”。
|
unqualified-search-registries = ["[IP]:5000", "quay.io"]
short-name-mode="enforcing"
[[registry]]
location = "[IP]:5000"
insecure = true
|
[IP]需要替换为当前节点的实际公共网络IP地址。
- 修改本地仓设置。
|
mkdir -p /home/registry-data
podman run -d -p 5000:5000 -v /home/registry-data:/var/lib/registry --restart always --name registry docker.io/library/registry:2
|
docker.io/library/registry为1配置的镜像仓库实际使用的镜像名称。通过podman images查看。
- 导入制作部署镜像中生成的Ceph部署镜像。
|
podman load -i ceph_release.tar
|
- 镜像重命名并上传到本地仓。
|
podman tag 8bbba7d5cc80 [IP]:5000/ceph/ceph_release:v17.2.7
podman push [IP]:5000/ceph/ceph_release:v17.2.7 [IP]:5000/ceph/ceph_release:v17.2.7
podman rmi 8bbba7d5cc80
|
- 8bbba7d5cc80为ceph_release.tar对应的镜像ID,[IP]为本地IP地址,请根据实际情况替换。
- 若push存在“Gateway Time-out”的报错,需要检查代理是否在配置,如果已配置代理,则需要执行以下命令关闭代理配置。
|
unset http_proxy
unset https_proxy
|
- push到本地仓之后,可能会与本地仓中的包存在tag冲突,因此需要删除本地的Ceph镜像。
- 修改cephadm文件中的DEFAULT_IMAGE。
- 打开“/usr/sbin/cephadm”文件。
- 按“i”进入编辑模式,将DEFAULT_IMAGE按照如下所示进行修改。
DEFAULT_IMAGE = "[IP]:5000/ceph/ceph_release:v17.2.7"
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 修改cephadm中创建容器权限。
|
if self.privileged 修改为 if self.privileged or not self.privileged
|
- “/usr/sbin/cephadm”必须拷贝源码中已经合入SPDK patch的cephadm。
- 该修改行位于run_cmd函数中。
- 如已执行过2,可跳过本步骤。
- 将编译节点的编译容器中打过SPDK patch的“ceph-17.2.7/src/cephadm/cephadm”拷贝到集群ceph1~ceph3,client1~client3节点的所有物理机“/usr/sbin/”目录下。