Kubernetes:PersistentVolume验证错误,spec.persistentvolumesource:Forbidden:在创建后不可变
我正在尝试在本地计算机上部署ping devops,但在尝试设置服务器配置文件时收到以下错误消息: 验证“lab05 local profile deploy.yaml”时出错:验证数据时出错:ValidationError(PersistentVolume):io.k8s.api.core.v1.PersistentVolume中未知字段“nodeAffinity”;如果选择忽略这些错误,请使用--validate=false关闭验证 服务器错误(无效):应用修补程序时出错: {“metadata”:{“annotations”:{“kubectl.kubernetes.io/last applicated configuration”:“{”apiVersion:“v1”,“kind:“PersistentVolume”,“metadata:{“annotations:{}”,name:“pd profile volume”},spec:{“accessModes:[“ReadOnlyMany”],“capacity:{“storage:“10Gi”},local:{“path:”/home/alice/projects/devops/lab05/pingidentity server profiles/getting started/pingdirectory“},“nodeAffinity”:{“required”:{“nodeSelectorTerms”:[{“matchExpressions”:[{“key”:“kubernetes.io/hostname”,“operator”:“In”,“values”:[“docker desktop”]}]}}}}},“storageClassName”:“pd local In storage”,“volumeMode”:“Filesystem”}\n}\n},“spec”:{“local”:{“path”:“/home/alice/projects/devops/lab05/pingidentity服务器配置文件/getting started/pingdirectory”}” 致: 资源:“/v1,资源=PersistentVolume”,GroupVersionKind:“/v1,Kind=PersistentVolume” 名称:“pd配置文件卷”,命名空间:“ 对于:“lab05 local profile deploy.yaml”:PersistentVolume“pd profile volume”无效:spec.persistentvolumesource:禁止:在创建后不可变 有人知道如何解决这个问题吗 yaml文件如下所示:Kubernetes:PersistentVolume验证错误,spec.persistentvolumesource:Forbidden:在创建后不可变,kubernetes,persistent-volumes,Kubernetes,Persistent Volumes,我正在尝试在本地计算机上部署ping devops,但在尝试设置服务器配置文件时收到以下错误消息: 验证“lab05 local profile deploy.yaml”时出错:验证数据时出错:ValidationError(PersistentVolume):io.k8s.api.core.v1.PersistentVolume中未知字段“nodeAffinity”;如果选择忽略这些错误,请使用--validate=false关闭验证 服务器错误(无效):应用修补程序时出错: {“metada
apiVersion: v1
data:
PING_IDENTITY_ACCEPT_EULA: "YES"
kind: ConfigMap
metadata:
labels:
role: pingdirectory
name: pingdirectory-environment-variables
---
apiVersion: v1
data:
PING_IDENTITY_ACCEPT_EULA: "YES"
kind: ConfigMap
metadata:
labels:
role: pingfederate
name: pingfederate-environment-variables
---
apiVersion: v1
kind: Service
metadata:
labels:
role: pingdataconsole
name: pingdataconsole
spec:
ports:
- name: https
port: 8443
selector:
role: pingdataconsole
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
labels:
role: pingdirectory
name: pingdirectory
spec:
ports:
- name: ldaps
port: 636
- name: ssl
port: 443
- name: ldap
port: 389
selector:
role: pingdirectory
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
labels:
role: pingfederate
name: pingfederate
spec:
ports:
- name: pf-console
port: 9999
- name: pf-runtime
port: 9031
selector:
role: pingfederate
type: NodePort
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pd-profile-volume
spec:
accessModes:
- ReadOnlyMany
capacity:
storage: 10Gi
local:
path: /home/alice/projects/devops/lab05/pingidentity-server-profiles/getting-started/pingdirectory
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- docker-desktop
storageClassName: pd-local-in-storage
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pf-profile-volume
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- docker-desktop
spec:
accessModes:
- ReadOnlyMany
capacity:
storage: 10Gi
local:
path: /home/alice/projects/devops/lab05/pingidentity-server-profiles/getting-started/pingfederate
storageClassName: pf-local-in-storage
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pd-profile-claim
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 10Gi
storageClassName: pd-local-in-storage
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pf-profile-claim
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 10Gi
storageClassName: pf-local-in-storage
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
role: pingdataconsole
name: pingdataconsole
spec:
replicas: 1
selector:
matchLabels:
role: pingdataconsole
template:
metadata:
labels:
role: pingdataconsole
name: pingdataconsole
spec:
containers:
- image: pingidentity/pingdataconsole:edge
name: pingdataconsole
ports:
- containerPort: 8443
resources:
limits:
cpu: 200m
memory: 1.5Gi
requests:
cpu: 200m
memory: 1.5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
role: pingfederate
name: pingfederate
spec:
replicas: 1
selector:
matchLabels:
role: pingfederate
template:
metadata:
labels:
role: pingfederate
name: pingfederate
spec:
containers:
- envFrom:
- configMapRef:
name: pingfederate-environment-variables
- secretRef:
name: devops-secret
optional: true
image: pingidentity/pingfederate:edge
imagePullPolicy: Always
livenessProbe:
failureThreshold: 1
httpGet:
path: /pingfederate/app
port: 9999
scheme: HTTPS
initialDelaySeconds: 100
periodSeconds: 1
name: pingfederate
ports:
- containerPort: 9999
- containerPort: 9031
readinessProbe:
httpGet:
path: /pingfederate/app
port: 9999
scheme: HTTPS
periodSeconds: 10
resources:
limits:
cpu: "1"
memory: 1.5Gi
requests:
cpu: "1"
memory: 1.5Gi
volumeMounts:
- mountPath: /opt/in
name: pf-profile-storage
volumes:
- name: pf-profile-storage
persistentVolumeClaim:
claimName: pf-profile-claim
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
role: pingdirectory
name: pingdirectory
spec:
replicas: 1
selector:
matchLabels:
role: pingdirectory
serviceName: pingdirectory
template:
metadata:
labels:
role: pingdirectory
name: pingdirectory
spec:
containers:
- envFrom:
- configMapRef:
name: pingdirectory-environment-variables
- secretRef:
name: devops-secret
optional: true
image: pingidentity/pingdirectory:edge
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- /preStop.sh
livenessProbe:
exec:
command:
- /bin/sh
- -c
- /opt/liveness.sh
initialDelaySeconds: 300
periodSeconds: 30
name: pingdirectory
ports:
- containerPort: 636
- containerPort: 443
- containerPort: 389
readinessProbe:
exec:
command:
- /bin/sh
- -c
- /opt/liveness.sh
resources:
limits:
cpu: "2"
memory: 2Gi
requests:
cpu: "2"
memory: 2Gi
volumeMounts:
- mountPath: /opt/in
name: pd-profile-storage
terminationGracePeriodSeconds: 300
volumes:
- name: pd-profile-storage
persistentVolumeClaim:
claimName: pd-profile-claim
您可能需要检查以前部署的内容。执行kubectl获取pv和pvc并检查是否存在同名的现有资源。如果存在,请将它们从命名空间中删除,然后再次尝试部署。根据,
nodeAffinity
部分必须位于spec
字段下
apiVersion: v1
kind: PersistentVolume
metadata:
name: pf-profile-volume
spec:
nodeAffinity: # <<< LOOK HERE >>>
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- docker-desktop
accessModes:
- ReadOnlyMany
capacity:
storage: 10Gi
local:
path: /home/alice/projects/devops/lab05/pingidentity-server-profiles/getting-started/pingfederate
storageClassName: pf-local-in-storage
volumeMode: Filesystem
获取字段描述
kubectl explain pv.spec.nodeAffinity