简体   繁体   中英

Cannot use kompose for converting from docker-compose to kubernetes

I have project with docker-compose setup ready. Now I want to move to kubernetes. I use Kompose tool for converting from docker-compose to kubernetes.

For example, here is my sample docker-compose.yml file

version: '3'
volumes:
  database_hades_volume:
    external: true
services:
  db:
    image: postgres:latest
    container_name: hades-db
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: hades_dev
      POSTGRES_PASSWORD: 1234
    volumes:
    - database_hades_volume:/var/lib/postgresql/data/
    tty: true
    stdin_open: true
  redis:
    container_name: hades-redis
    image: redis:latest
    ports:
      - "6379:6379"
  app:
    container_name: hades-app
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "4001:4001"
    volumes:
      - ".:/webapp"
    env_file:
      - ./.env.docker_compose-dev
    depends_on:
      - db
      - redis

I have run successfully by using command: docker-compose up . Now, I use kompose for converting to kubernetes by using command:

kompose convert

Then I run by using:

kompose up

Here is command line result information:

INFO We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead.

INFO Deploying application in "default" namespace
INFO Successfully created Service: app
INFO Successfully created Service: db
INFO Successfully created Service: redis
INFO Successfully created Deployment: app
INFO Successfully created PersistentVolumeClaim: app-claim0 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 Deployment: db
INFO Successfully created PersistentVolumeClaim: database-hades-volume 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 Deployment: redis

Your application has been deployed to Kubernetes. You can run 'kubectl get deployment,svc,pods,pvc' for details.

But when I try to test by going to localhost:4001 or 10.0.0.180:4001 , I see that it's waiting forever.

I don't know if I have setup something wrong or miss some steps. Please help me.

Thanks

Your docker-compose file contains build key which means you have source code/Dockerfile present for app service, As of now,

NAME READY STATUS RESTARTS AGE po/app-2119952459-b4jtb 0/1 ErrImagePull 0 24s

Status is ErrImagePull as cluster is not able to find any image, so along with build key, provide image key as well, for ex. app: container_name: hades-app build: context: . dockerfile: Dockerfile image: <username>/<imagename>:<tag>

Because, now kompose has feature of local build and push support, So kompose will build your image, push to dockerhub and then your cluster can pull image from there while deploying.

commands can be like,

kompose up --build=local

I hope this makes sense

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM