kubernetes - 如何检查 K8s 卷是否安装正确?
问题描述
我正在测试是否可以使用 initContainer 从 S3 挂载数据。我的意图和期望是将相同的卷安装到 initContainer 和 Container 上。使用 InitContainer 将来自 S3 的数据下载到名为 /s3-data 的 mountPath 中,并且由于容器在 initContainer 之后运行,因此它可以从卷安装到的路径中读取。
但是,容器没有显示任何日志,只是说“流已关闭”。initContainer 显示从 S3 成功下载数据的日志。
我究竟做错了什么?提前致谢。
apiVersion: batch/v1
kind: Job
metadata:
name: train-job
spec:
template:
spec:
initContainers:
- name: data-download
image: <My AWS-CLI Image>
command: ["/bin/sh", "-c"]
args:
- aws s3 cp s3://<Kubeflow Bucket>/kubeflowdata.tar.gz /s3-data
volumeMounts:
- mountPath: /s3-data
name: s3-data
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef: {key: AWS_ACCESS_KEY_ID, name: aws-secret}
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef: {key: AWS_SECRET_ACCESS_KEY, name: aws-secret}
containers:
- name: check-proper-data-mount
image: <My Image>
command: ["/bin/sh", "-c"]
args:
- cd /s3-data
- echo "Just s3-data dir"
- ls
- echo "After making a sample file"
- touch sample.txt
- ls
volumeMounts:
- mountPath: /s3-data
name: s3-data
volumes:
- name: s3-data
emptyDir: {}
restartPolicy: OnFailure
backoffLimit: 6
解决方案
You can try like the below mentioned the argument part
---
apiVersion: v1
kind: Pod
metadata:
labels:
purpose: demonstrate-command
name: command-demo
spec:
containers:
-
args:
- cd /s3-data;
echo "Just s3-data dir";
ls;
echo "After making a sample file";
touch sample.txt;
ls;
command:
- /bin/sh
- -c
image: "<My Image>"
name: containername
推荐阅读
- java - Apache Netbeans - Maven Web 项目 - Tomcat 服务器错误
- java - Gradle:我是否应该使用(JVM)依赖项的一致依赖项解析?
- javascript - TypeError: jwt(...).unless 在使用 Jest 进行模拟时不是函数
- python - 无法在整个测试数据集上使用 fast-bert sagemaker 模型执行批量推理
- php - composer require laravel/breeze --dev 的 php 版本有问题
- codeigniter - 如何在 codeigniter 中使用引导警报显示错误
- angular - NativeScript Paytm 集成在初始化交易时显示 404 错误
- r - Fontawesome 5.13.0 在 visNetwork 中不起作用
- c - 为什么make会执行我从未在makefile中写过的命令以及如何调试它?
- c# - [ApiController] 属性有什么作用?