kubernetes中的PersistentVolumeClaim未知

kubernetes中的PersistentVolumeClaim未知,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我尝试部署一个容器,但不幸的是,当我尝试执行kubectl apply-f*.yaml apiVersion: v1 kind: Pod metadata: name: karafpod spec: containers: - name: karaf image: xxx/karaf:ids-1.1.0 volumeMounts: - name: karaf-conf-storage mountPath: /apps/karaf/etc - n

我尝试部署一个容器,但不幸的是,当我尝试执行kubectl apply-f*.yaml

apiVersion: v1
kind: Pod
metadata:
  name: karafpod
spec:
  containers:
  - name: karaf
    image: xxx/karaf:ids-1.1.0
    volumeMounts:
    - name: karaf-conf-storage
      mountPath: /apps/karaf/etc
  - name: karaf-conf-storage
    persistentVolumeClaim:
      claimName: karaf-conf-claim
错误是:

验证数据时出错:ValidationError(Pod.spec.containers[1]): io.k8s.api.core.v1.Container中的未知字段“persistentVolumeClaim”

我不明白为什么会出现错误,因为我在pd.yaml配置中的persistentVolumeClaim:下写入了claimName::(

Pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: karafpod
spec:
  containers:
  - name: karaf
    image: xxx/karaf:ids-1.1.0
    volumeMounts:
    - name: karaf-conf-storage
      mountPath: /apps/karaf/etc
  - name: karaf-conf-storage
    persistentVolumeClaim:
      claimName: karaf-conf-claim
PersistentVolumeClaimKaraf.yml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: karaf-conf-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Mi
部署.yaml

 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
   name: karaf
   namespace: poc 
 spec:
   replicas: 1
   template:
     metadata:
       labels:
         app: karaf
     spec:
       containers:
       - name: karaf
         image: "xxx/karaf:ids-1.1.0"
         imagePullPolicy: Always
         ports:
         - containerPort: 6443
         - containerPort: 6100
         - containerPort: 6101
         resources: 
         volumeMounts:
         - mountPath: /apps/karaf/etc
           name: karaf-conf
       volumes:
       - name: karaf-conf
         persistentVolumeClaim:
           claimName: karaf-conf
根据,
persistentVolumeClaim
.spec.volume
级别的一部分,而不是
pod
对象的
.spec.container
级别

正确的
pod.yaml
为:

apiVersion: v1
kind: Pod
metadata:
  name: karafpod
spec:
  volumes:
    - name: efgkaraf-conf-storage
      persistentVolumeClaim:
        claimName: efgkaraf-conf-claim
  containers:
    - name: karaf
      image: docker-all.attanea.net/library/efgkaraf:ids-1.1.0
      volumeMounts:
      - name: efgkaraf-conf-storage
        mountPath: /apps/karaf/etc

您看到该错误的原因是您在pod规范的容器规范下指定了一个
persistentVolumeClaim
。从自动生成的文档中可以看到:

persistentVolumeClaims
在此级别/API对象上不受支持,这就是您看到的错误所在

您应该修改
pod.yml
,将其指定为卷

e、 g:


了解您在这里运行的是哪个版本的K8s会很有帮助。