Kubernetes:如何为Pod新增永久目录并解决Deployment配置无效报错
解决Kubernetes Deployment新增volumeMounts报错的步骤
报错根因说明
你遇到的deployments.extensions "ba-server-api-dh-deployment" is invalid报错,核心原因有两类:
- Kubernetes 1.9版本后
extensionsAPI组下的Deployment资源已正式废弃,目前稳定版本的资源归属apps/v1API组 - 在线编辑YAML时存在缩进、字段格式错误
操作步骤
- 第一步:指定正确的API组编辑Deployment
不要直接使用kubectl edit deployment命令,改为指定apps组资源,避免调用废弃的extensions API:kubectl edit deployment.apps/ba-server-api-dh-deployment - 第二步:正确添加volumeMounts配置
新增条目必须和已有条目的缩进完全对齐,不要出现多余空格、格式错误。示例新增配置如下:
如果你是使用全新的PVC而非现有PVC,还需要在Deployment的volumeMounts: - mountPath: /Data/logs name: ba-server-api-dh-pvc subPath: logs - mountPath: /Data/ErrorAndAbortedBlobs name: ba-server-api-dh-pvc subPath: ErrorAndAbortedBlobs - mountPath: /Data/SuccessfullyTransferredBlobs name: ba-server-api-dh-pvc subPath: SuccessfullyTransferredBlobs - mountPath: /Data/BlobsToBeTransferred name: ba-server-api-dh-pvc subPath: BlobsToBeTransferred # 新增挂载配置,缩进与上方条目保持一致 - mountPath: /Data/你要新增的目录路径 name: ba-server-api-dh-pvc subPath: 你要绑定的PVC子目录名称volumes字段下新增对应PVC的定义,不要只修改volumeMounts部分。 - 第三步:前置校验PVC状态
操作前先执行以下命令确认PVC状态正常:
确保返回的STATUS为kubectl get pvc ba-server-api-dh-pvcBound,且PVC剩余容量足够承载新目录的数据。 - 第四步:本地编辑 fallback 方案
如果在线编辑仍报错,可以先导出配置本地修改后再生效,同时能看到更详细的错误提示:- 导出当前Deployment配置:
kubectl get deployment.apps/ba-server-api-dh-deployment -o yaml > deploy.yaml- 本地编辑deploy.yaml文件中的volumeMounts部分
- 应用修改后的配置:
kubectl apply -f deploy.yaml
内容的提问来源于stack exchange,提问作者Mr.Gomer
相关产品推荐
相关产品推荐

