Kubernetes 如何使用kustomize将内存中的存储替换为持久存储
我正在尝试使用Kubernetes 如何使用kustomize将内存中的存储替换为持久存储,kubernetes,kubernetes-pvc,kustomize,Kubernetes,Kubernetes Pvc,Kustomize,我正在尝试使用kustomize将Grafana部署的内存存储替换为持久存储。我试图做的是删除内存存储,然后映射持久存储。但当我部署它时,它会给我一个错误 错误 部署“grafana”无效:spec.template.spec.containers[0]。volumeMounts[1]。名称:未找到:“grafana存储” Kustomize版本 {Version:kustomize/v4.0.5 GitCommit:9e8e7a7fe99ec9fbf801463e8607928322fc524
kustomize
将Grafana
部署的内存存储替换为持久存储
。我试图做的是删除内存存储
,然后映射持久存储
。但当我部署它时,它会给我一个错误
错误
部署“grafana”无效:spec.template.spec.containers[0]。volumeMounts[1]。名称:未找到:“grafana存储”
Kustomize版本
{Version:kustomize/v4.0.5 GitCommit:9e8e7a7fe99ec9fbf801463e8607928322fc5245构建日期:2021-03-08T20:53:03Z GoOs:linux GoArch:amd64}
kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/prometheus-operator/kube-prometheus
- grafana-pvc.yaml
patchesStrategicMerge:
- grafana-patch.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-storage
namespace: monitoring
labels:
billingType: "hourly"
region: sng01
zone: sng01
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
storageClassName: ibmc-file-bronze
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
template:
spec:
volumes:
# use persistent storage for storing users instead of in-memory storage
- $patch: delete <---- trying to remove the previous volume
name: grafana-storage
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
containers:
- name: grafana
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
grafana pvc.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/prometheus-operator/kube-prometheus
- grafana-pvc.yaml
patchesStrategicMerge:
- grafana-patch.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-storage
namespace: monitoring
labels:
billingType: "hourly"
region: sng01
zone: sng01
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
storageClassName: ibmc-file-bronze
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
template:
spec:
volumes:
# use persistent storage for storing users instead of in-memory storage
- $patch: delete <---- trying to remove the previous volume
name: grafana-storage
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
containers:
- name: grafana
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
grafana patch.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/prometheus-operator/kube-prometheus
- grafana-pvc.yaml
patchesStrategicMerge:
- grafana-patch.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-storage
namespace: monitoring
labels:
billingType: "hourly"
region: sng01
zone: sng01
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
storageClassName: ibmc-file-bronze
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
template:
spec:
volumes:
# use persistent storage for storing users instead of in-memory storage
- $patch: delete <---- trying to remove the previous volume
name: grafana-storage
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
containers:
- name: grafana
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
apiVersion:apps/v1
种类:部署
元数据:
标签:
app:grafana
姓名:格拉法纳
名称空间:监视
规格:
模板:
规格:
卷数:
#使用持久性存储来存储用户,而不是在内存中存储
-$patch:delete这个
$patch:delete
似乎不像我预期的那样工作
在kustomize github上打开一个问题并询问开发人员可能会很好
虽然这是我尝试过的补丁,而且似乎有效:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
template:
spec:
volumes:
- name: grafana-storage
emptyDir: null
persistentVolumeClaim:
claimName: grafana-storage
containers:
- name: grafana
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
基于 从理论上讲,以下几点也应该起作用:
spec:
volumes:
- $retainKeys:
- name
- persistentVolumeClaim
name: grafana-storage
persistentVolumeClaim:
claimName: grafana-storage
但实际上并非如此,我认为这是因为kustomize有自己的战略合并实现(与k8s不同)。非常感谢您的帮助。我尝试了您在
部署中提到的方法,效果很好。非常感谢你。删除了$patch:delete
部分。仅供参考:我已将建议的问题提交给kustomize Peoples:,让我们看看。