我们有如下部署,它使用单个卷运行。现在我们需要给它增加额外的体积。
我们如何在不编辑正在运行的部署的情况下实现这一点。
例如:
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-deployment
namespace: httpd-test
labels:
app: httpd_app
spec:
selector:
matchLabels:
app: httpd_app
template:
metadata:
labels:
app: httpd_app
spec:
containers:
- name: httpd-container
image: httpd:latest
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/data/test"
name: my-pv-storage
volumes:
- name: my-pv-storage
persistentVolumeClaim:
claimName: my-pv-claim
我们已经尝试了动态配置,也尝试了shell脚本中的sed命令。
1条答案
按热度按时间9lowa7mx1#
简短的回答-你不能。当您更改卷和卷装载时-您更改了pod定义,这将强制pod重新创建。另一个原因是,使用的PV类型实际上在调度中很重要。想象一下,如果你有一个pod,它需要一个新的RWO卷,也被其他一些pod使用。K8s文档将其定义为
ReadWriteOnce -卷可以由单个节点以读写方式装载
因此,如果您的两个pod位于不同的节点上,则应重新创建其中一个,否则其中一个将无法访问此PV。
您应该将pod的重新创建作为应用程序生命周期的一个正常部分,如果可能的话,可以扩展它,这样rollout重启就不会对用户产生任何影响。