У меня есть приложение, которое использует диаграммы 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: {}
Я понятия не имею, как решить эту проблему, невозможно, чтобы однажды созданный ПВХ или сервис не мог быть изменен, поэтому я предполагаю, что я делаю что-то не так, но не уверен, что именно.
status:
быть пустым в самой последней строке вызывает хотя бы часть этого; помогает ли удаление этой строки? - person David Maze   schedule 03.11.2020--force
из команды? Пожалуйста, опубликуйте ответ с объяснением, как вы ее решили. Примерно--force
вы можете проверить этоlink
, объясняющее, как это работает. - person Mr.KoopaKiller   schedule 05.11.2020