首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署应用程序时出错:持久性已经存在

部署应用程序时出错:持久性已经存在
EN

Stack Overflow用户
提问于 2019-11-26 10:30:57
回答 1查看 1.4K关注 0票数 0

我有一个码头应用程序,它使用坞-组合,我想在openshift-3中部署这个项目,所以我使用康米斯。这是我的拼图文件:-

代码语言:javascript
复制
version: '3'

services:
  katana-db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: *****
      POSTGRES_USER: *****
  backend:
    depends_on:
      - katana-db
    build:
      context: .
      dockerfile: dockerfile_uwsgi
    image: warrior_deployment_backend
    extra_hosts:
      - "example.com:100.0.0.201"
    volumes:
      - katana-secrets:/secrets
      - katana-static:/warriorframework_py3/static
      - katana-wapps:/warriorframework_py3/katana/wapps
      - katana-wui:/warriorframework_py3/katana/wui
    ports:
      - "4000:4000"
    environment:
      DB_HOST: katana-db
      DB_NAME: warrior
      DB_USER: *****
      DB_PASSWORD: *****
  migration:
    depends_on:
      - backend
    image: warrior_deployment_backend
    entrypoint: ["sh", "-c"]
    command: ["
      python /warriorframework_py3/katana/manage.py collectstatic --noinput;
      python /warriorframework_py3/katana/manage.py makemigrations;
      python /warriorframework_py3/katana/manage.py migrate;
      echo \"from django.contrib.auth import get_user_model; User = get_user_model(); x = User.objects.create_superuser('admin', '', 'warriorframework') if not User.objects.filter(username='admin').exists() else User.objects.get(username='admin'); x.set_password('warriorframework'); x.save()\" | python /warriorframework_py3/katana/manage.py shell;
      "]
    volumes:
      - katana-static:/warriorframework_py3/static
      - katana-wapps:/warriorframework_py3/katana/wapps
      - katana-wui:/warriorframework_py3/katana/wui
    environment:
      DB_HOST: katana-db
      DB_NAME: warrior
      DB_USER: warrior
      DB_PASSWORD: qwerty
  frontend:
    depends_on:
      - backend
    build:
      context: .
      dockerfile: dockerfile_nginx
    image: warrior_deployment_frontend
    volumes:
      - katana-static:/warriorframework_py3/static
      - nginx-secrets:/secrets
    ports:
      - "9443:8443"
    labels:
      kompose.service.expose: "true"

volumes:
  katana-static:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/katana-static
  katana-wapps:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/wapps
  katana-wui:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/wui
  nginx-secrets:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/nginx-secrets
  katana-secrets:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/katana-secrets

当我跑步时:

sudo kompose up --provider openshift

错误如下:

FATA Error while deploying application: persistentvolumeclaims "katana-static" already exists

完整的控制台日志如下:

代码语言:javascript
复制
INFO Building image 'warrior_deployment_backend' from directory 'warrior_docker_deployment'
INFO Image 'warrior_deployment_backend' from directory 'warrior_docker_deployment' built successfully
INFO Pushing image 'warrior_deployment_backend:latest'
INFO Multiple authentication credentials detected. Will try each configuration.
INFO Attempting authentication credentials 'docker-registry-default.router.default.svc.cluster.local
INFO Successfully pushed image 'warrior_deployment_backend:latest'
INFO Building image 'warrior_deployment_frontend' from directory 'warrior_docker_deployment'
INFO Image 'warrior_deployment_frontend' from directory 'warrior_docker_deployment' built successfully
INFO Pushing image 'warrior_deployment_frontend:latest' to registry 
INFO Multiple authentication credentials detected. Will try each configuration.
INFO Attempting authentication credentials 'docker-registry-default.router.default.svc.cluster.local
INFO Successfully pushed image 'warrior_deployment_frontend:latest' 
INFO We are going to create OpenShift DeploymentConfigs, Services and PersistentVolumeClaims for your Dockerized application.
If you need different kind of resources, use the 'kompose convert' and 'oc create -f' commands instead.

INFO Deploying application in "rak-warrior-ui" namespace
INFO Successfully created Service: backend
INFO Successfully created Service: frontend
INFO Successfully created DeploymentConfig: backend
INFO Successfully created ImageStream: backend
INFO Successfully created PersistentVolumeClaim: katana-secrets of size 100Mi. If your cluster has dynamic storage provisioning, you don't have to do anything. Otherwise you have to create PersistentVolume to make PVC work
INFO Successfully created PersistentVolumeClaim: katana-static of size 100Mi. If your cluster has dynamic storage provisioning, you don't have to do anything. Otherwise you have to create PersistentVolume to make PVC work
INFO Successfully created PersistentVolumeClaim: katana-wapps of size 100Mi. If your cluster has dynamic storage provisioning, you don't have to do anything. Otherwise you have to create PersistentVolume to make PVC work
INFO Successfully created PersistentVolumeClaim: katana-wui of size 100Mi. If your cluster has dynamic storage provisioning, you don't have to do anything. Otherwise you have to create PersistentVolume to make PVC work
INFO Successfully created DeploymentConfig: frontend
INFO Successfully created ImageStream: frontend
INFO Successfully created Route: frontend
FATA Error while deploying application: persistentvolumeclaims "katana-static" already exists

根据我的观察/分析,这一错误可能是以下原因造成的:

库默斯可能错误地解释了共享的卷。如果我更清楚地解释这一点,它就像“katana-静态”是一个共享卷,用于前端、后端和迁移容器。kompose做了以下步骤(这里我只关注共享卷:katana-静态)

  1. 库默图将读取对接者-Compose.yml
  2. 现在第一个容器是后端,所以它在卷下找到katana-静态的,所以它创建了卷。
  3. 接下来,它将转到下一个容器,并再次找到katana静态的,因此它再次尝试创建。
  4. 由于它试图再次创建共享的持久卷katana-静态,这已经存在,它抛出了我们所面临的错误。

如果这实际上是正在发生的事情,那么如何解决这个问题呢?否则是什么导致了这个错误?

如果有任何其他论坛,我可以问这个问题,请分享在评论section.Thanks的链接,提前。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 12:36:36

问题可能是本地卷。

代码语言:javascript
复制
volumes:
  katana-static:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/katana-static
  katana-wapps:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/wapps
  katana-wui:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/wui
  nginx-secrets:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/nginx-secrets
  katana-secrets:
    driver: local-persist
    driver_opts:
      mountpoint: /data/local-persist/data/warrior/katana-secrets

本地卷在openshift中不起作用。我建议您使用“kompose”命令将坞-组合转换为kubernetes YAML。

然后回顾和更新pvc和pv,然后逐个部署资源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59048854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档