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