在头盔升级期间无法重新创建部署,因为无法替换PersistentVolumeClaim和Service

问题描述

我有正在使用Helm图表进行部署的应用程序。在第一个helm upgrade --install命令上,一切正常,但是第二次出现此错误

Error: UPGRADE Failed: Failed to replace object: PersistentVolumeClaim "logs" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims && Failed to replace object: Service "application" is invalid: spec.clusterIP: Invalid value: "": field is immutable

这是我的application-deployment.yaml

apiVersion: apps/v1
kind: Deployment
Metadata:
  labels:
    app: application
  name: application
spec:
  selector:
    matchLabels:
      app: application
  replicas: 1
  strategy:
    type: Recreate
  template:
    Metadata:
      labels:
        app: application
    spec:
      imagePullSecrets:
        - name: aws-registry
      containers:
      - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: Always
        name: application
        resources: {}
        volumeMounts:
        - mountPath: /app/var/logs
          name: logs
      restartPolicy: Always
      volumes:
      - name: logs
        persistentVolumeClaim:
          claimName: logs

这是application-service.yaml

apiVersion: v1
kind: Service
Metadata:
  labels:
    app: application
  name: application
spec:
  ports:
  - port: 9000
    protocol: TCP
    targetPort: 9000
  selector:
    app: application

这是logs-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
  name: middleware-logs
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 400Mi
status: {}

我不知道如何解决这个问题,一旦创建的pvc或服务无法更改就不可能了,所以我猜我是在做错事,但不确定是什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...