kubernetes - Kubernetes - 将数据写入 StatefulSet 卷
问题描述
我正在尝试创建一个 StatefulSet。我想在附加的卷上创建一个文件,所以我使用这个命令touch /data/test.txt但似乎容器因此而崩溃。为什么会这样做?如果我不使用该命令一切正常。挂载到卷的 /data 目录的属性是什么?像读/写权限。
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx # has to match .spec.template.metadata.labels
serviceName: "nginx"
replicas: 3 # by default is 1
template:
metadata:
labels:
app: nginx # has to match .spec.selector.matchLabels
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /data
args:
- /bin/sh
- -c
- touch /data/test.txt
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
解决方案
因为 k8s.gcr.io/nginx-slim:0.8 的默认ENTRYPOINT将是或可能的。nginx start
所以,如果你想注入图像,你需要设置命令
command: ["/bin/sh","-c"]
args:
- |
touch /data/test.txt
您可以kubectl describe
或kubectl logs
查看您的 pod/部署有什么问题。
推荐阅读
- javascript - 未收到 POST 参数 Swagger3.0/OpenAPI
- python - 装饰器的 Django 主类
- reactjs - index.js:1375 警告:Material-UI:提供给 Tabs 组件的 `/` 值无效。所有 Tabs 子项都没有此值
- android - OpenCV 文档扫描算法
- python - ModuleNotFoundError:部署到 ElasticBeanstalk 时没有名为“django”的模块
- jsf - 如何从在深色背景上加载 gif 中删除边框?
- swift - Swift 5 从 CollectionView 中删除部分
- php - HTTP_REFFERER 不在 https 网站中显示参数
- blockchain - Solidity:如何从单个值初始化固定数组?
- javascript - 在一个循环中编写的 2 for 循环的时间复杂度是多少