deployment - Kubectl create 用于持久存储出错

标签 deployment kubernetes persistent-volumes

我正在尝试为 couch DB 部署持久存储,但由于错误而失败

kubectl create -f couch_persistant_deploy.yaml

error: error validating "couch_persistant_deploy.yaml": error validating data: couldn't find type: v1.Deployment; if you choose to ignore these errors, turn validation off with --validate=false



创建volume.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /mnt/sda1/data/test

声明卷.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
  labels:
    app: couchdb
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

部署 VM.yaml
apiVersion: extensions/v1beta1
#apiVersion: v1
kind: Deployment
#kind: ReplicationController
metadata:
  name: couchdb
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: couchdb
    spec:
      containers:
        - name: couchdb
          image: "couchdb"
          imagePullPolicy: Always
          env:
          - name: COUCHDB_USER
            value: admin
          - name: COUCHDB_PASSWORD
            value: password
          ports:
          - name: couchdb
            containerPort: 5984
          - name: epmd
            containerPort: 4369
            containerPort: 9100
          volumeMounts:
          - mountPath: "/opt/couchdb/data"
            name: task-pv-storage
      imagePullSecrets:
      - name: registrypullsecret2
      #volumes:
        #- name: database-storage
        #  emptyDir: {}
      volumes:
      - name: task-pv-storage
        persistentVolumeClaim:
        claimName: task-pv-claim

任何线索都非常感谢。

最佳答案

你的错误信息应该是这样的:

error: error validating "couch_persistant_deploy.yaml": error validating data: ValidationError(Deployment.spec.template.spec.volumes[0]): unknown field "claimName" in io.k8s.api.core.v1.Volume; if you choose to ignore these errors, turn validation off with --validate=false



看,错误信息是具体的:unknown field "claimName" in io.k8s.api.core.v1.Volume
您需要将 claimName 放在 persistentVolumeClaim 下。
  volumes:
  - name: task-pv-storage
    persistentVolumeClaim:
      claimName: task-pv-claim  # fix is here

但你做到了
  volumes:
  - name: task-pv-storage
    persistentVolumeClaim:
    claimName: task-pv-claim  # invalid

这使您的部署对象无效

关于deployment - Kubectl create 用于持久存储出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544969/

相关文章:

kubernetes - Keycloak 网守 HTTP 502/10 秒后超时

persistent-volumes - kubeflow 管道定义中的 volume 和 pvolume 有什么区别?

azure - Kubernetes AKS 持久卷磁盘声明到多个节点

java - 如何使用 Tomcat 定义默认上下文元素?

java - 无法从使用 Steam 的应用程序执行 jar 文件

java - 如何配置 Tomcat (Catalina) 以在不重启服务器的情况下部署 Web 应用程序?

kubernetes - 在本地在 kubernetes 中安装 postgresql 持久卷时面临的问题

php - 将实时服务器连接到本地数据库

Docker 搜索找不到图像,但 docker pull 可以

kubernetes - 如何在多个 Pod 上安装相同的持久卷?