ARTIFACTORY:如何从ARTIFACTORY pod的“设备上没有空间”错误中恢复

Jayanth苏雷什
2023-01-22 11:06

在一些场景中,我们已经看到Artifactory PVC的存储被完全占用,因此Artifactory pod将进入崩溃循环状态。在这种情况下,我们可能需要增加PVC的存储尺寸,或者我们需要访问Artifactory pod所连接的PVC并删除不需要的内容。

下面的步骤是创建一个新的helper pod的详细说明,其中附加了有问题的挂载以获得一些空间。

步骤1:首先,需要缩小所有Artifactory的状态集,以便终止所有pod。这样做的原因是因为默认情况下,PVC将使用RWO访问模式,因此只有一个pod可以连接到具有高磁盘利用率的PVC。

步骤2:接下来,我们需要使用PVC的声明名称来创建一个助手pod,这样在应用它时,我们就可以看到一个与Artifactory PVC连接的新pod,它可以帮助访问新pod并访问内容
apiVersion: v1
:豆荚
元数据:
名称:task-pv-pod
规范:
卷:
—name: task-pv-storage
persistentVolumeClaim:
claimName: volume-afazure-artifactory-ha-primary-0
容器:
—name: task-pv-container
图片:nginx
港口:
—containerPort: 80
名称:“http服务器”
volumeMounts:
-挂载路径:"/tmp/"
名称:task-pv-storage

步骤3:要应用上述yaml,请使用kubectl apply -f pv-pod命令。在安装Artifactory的同一名称空间中。

创建完成后,在执行kubectl get pods -n 时,我们将看到如下所示的pod
task-pv-pod 1/1运行0 19小时
步骤4:执行到新的pod" task-pv-pod",然后转到"/tmp"目录,看看哪个路径占用了这么多资源(du -sh *)。
$ kubectl exec - task-pv-pod sh
由于我们已经使用了mountPath来指向上面提到的yaml配置文件上的/tmp,所以导航到/tmp文件夹来访问存储在PVC上的内容。

步骤5:删除不必要的文件,并在进程结束后删除临时的“task-pv-pod”

步骤6:最后扩展Artifactory的statfulset来初始化Artifactory pod。

注意:由于我们直接在PVC上执行删除操作,因此建议在生产服务器上执行之前,先在较低的环境上执行上述步骤。