在容器中使用 obsutil 命令问题

2023年 1月 4日 17.0k 0

1. 容器的 ulimit 设置太小

报错信息:

1
2
3
4
5
6
7
CheckpointDir: /root/.obsutil_checkpoint     
OutputDir: /root/.obsutil_output         

runtime: mlock of signal stack failed: 12
runtime: increase the mlock limit (ulimit -l) or
runtime: update your kernel to 5.3.15+, 5.4.2+, or 5.5+
fatal error: mlock failed
  • 如果是 Docker 下,可以在启动时添加 ulimit 参数
1
docker run -it --ulimit memlock=-1 ...
  • 如果是 Kubernetes 下,需要以特权模式启动 Pod
1
2
3
      securityContext:
        privileged: true
        runAsUser: 0

在 yaml 配置中添加上面的片段,然后在启动脚本中添加 ulimit -c unlimited 修改 ulimit 。

2. 只读权限的凭证无法使用

报错信息:

1
Error: open /root/.obsutilconfig: read-only file system

由于以只读权限挂载 .obsutilconfig 凭证到容器,而 obsutil 命令需要对凭证的写权限。因此需要在容器启动时,读取并生成凭证。

1
2
cat /root/.obsutilconfig1 > /root/.obsutilconfig
ulimit -c unlimited

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论