PersistentVolumeClaim неизвестно в Куберне - PullRequest
0 голосов
/ 27 июня 2018

я пытаюсь развернуть контейнер, но, к сожалению, у меня возникает ошибка при попытке выполнить kubectl apply -f * .yaml

ошибка:

ошибка проверки данных: ValidationError (Pod.spec.containers [1]): неизвестное поле "persistentVolumeClaim" в io.k8s.api.core.v1.Container;

Я не понимаю, почему я получаю ошибку, потому что я написал ClaimName: в persistentVolumeClaim: в моей конфигурации pd.yaml: (

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

Deployment.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

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Причина, по которой вы видите эту ошибку, заключается в том, что вы указали persistentVolumeClaim в спецификации контейнера вашей спецификации модуля. Как вы можете видеть из автоматически сгенерированных документов здесь: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#container-v1-core

persistentVolumeClaims не поддерживаются на этом уровне / объекте API, что и дает ошибку, которую вы видите.

Вам следует изменить pod.yml, чтобы вместо этого указать его в качестве тома.

например:.

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
  volumes:
    - name: karaf-conf-storage
      persistentVolumeClaim:
        claimName: karaf-conf-claim
0 голосов
/ 27 июня 2018

Согласно документации kubernetes , persistentVolumeClaim является частью уровня .spec.volume, а не .spec.container уровня объекта pod.

Правильный 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...