kubernetes中的PersistentVolumeClaim未知
我尝试部署一个容器,但不幸的是,当我尝试执行kubectl apply-f*.yamlkubernetes中的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
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会很有帮助。