gpt4 book ai didi

docker - 将 docker-compose.yml 文件转换为 kubernetes

转载 作者:行者123 更新时间:2023-12-02 11:55:21 25 4
gpt4 key购买 nike

我正在使用运行以下命令的 kompose 将 docker-compose 文件转换为 kubernetes:

$kompose 转换 -f docker-compose.yml -o kubernetes_image.yaml

命令完成后,输出如下。

WARN Volume mount on the host "/usr/docker/adpater/dbdata" isn't supported - ignoring path on the host
INFO Network integration is detected at Source, shall be converted to equivalent NetworkPolicy at Destination
WARN Volume mount on the host "/usr/docker/adpater/license.json" isn't supported - ignoring path on the host
WARN Volume mount on the host "/usr/docker/adpater/certificates/ssl.crt" isn't supported - ignoring path on the host
WARN Volume mount on the host "/usr/docker/adpater/certificates/ssl.key" isn't supported - ignoring path on the host
WARN Volume mount on the host "/usr/docker/adpater/server.xml" isn't supported - ignoring path on the host
INFO Network integration is detected at Source, shall be converted to equivalent NetworkPolicy at Destination

要将转换后的文件推送到 kubernetes,我运行以下命令:

$kubectl apply -f kubernetes_image.yaml
NAME                      READY   STATUS             RESTARTS   AGE
mysql-557dd849c8-bsdq7 1/1 Running 1 17h
tomcat-7cd65d4556-spjbl 0/1 CrashLoopBackOff 76 18h

如果我运行:
$ kubectl 描述 pod tomcat-7cd65d4556-spjbl
我收到以下消息:
Last State:     Terminated
Reason: ContainerCannotRun
Message: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/usr/docker/adapter/server.xml\\\" to rootfs \\\"/var/lib/docker/overlay2/a6df90a0ef4cbe8b2a3fa5352be5f304cd7b648fb1381492308f0a7fceb931cc/merged\\\" at \\\"/var/lib/docker/overlay2/a6df90a0ef4cbe8b2a3fa5352be5f304cd7b648fb1381492308f0a7fceb931cc/merged/usr/local/tomcat/conf/server.xml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Exit Code: 127
Started: Sun, 31 May 2020 13:35:00 +0100
Finished: Sun, 31 May 2020 13:35:00 +0100
Ready: False
Restart Count: 75
Environment: <none>
Mounts:
/run/secrets/rji_license.json from tomcat-hostpath0 (rw)
/usr/local/tomcat/conf/server.xml from tomcat-hostpath3 (rw)
/usr/local/tomcat/conf/ssl.crt from tomcat-hostpath1 (rw)
/usr/local/tomcat/conf/ssl.key from tomcat-hostpath2 (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-8dhnk (ro)

这是我的 docker-compose.yml 文件:
version: '3.6'

networks:
integration:

services:
mysql:
environment:
MYSQL_USER: 'integrationdb'
MYSQL_PASSWORD: 'password'
MYSQL_ROOT_PASSWORD: 'password'
image: db:poc
networks:
- integration
ports:
- '3306:3306'
restart: always
volumes:
- ./dbdata:/var/lib/mysql
tomcat:
image: adapter:poc
networks:
- integration
ports:
- '8080:8080'
- '8443:8443'
restart: always
volumes:
- ./license.json:/run/secrets/rji_license.json
- ./certificates/ssl.crt:/usr/local/tomcat/conf/ssl.crt
- ./certificates/ssl.key:/usr/local/tomcat/conf/ssl.key
- ./server.xml:/usr/local/tomcat/conf/server.xml

工具版本:
kompose: 1.21.0 (992df58d8)

docker: 19.03.9

kubectl:Major:"1", Minor:"18"

我认为我的挑战在于这种类型的卷或文件,我不知道如何将它们迁移或转换为 kubernetes 并使 tomcat pod 运行良好。
有人可以帮我一把吗?
 volumes:
- ./license.json:/run/secrets/rji_license.json
- ./certificates/ssl.crt:/usr/local/tomcat/conf/ssl.crt
- ./certificates/ssl.key:/usr/local/tomcat/conf/ssl.key
- ./server.xml:/usr/local/tomcat/conf/server.xml

提前致谢。

最佳答案

当 Kompose 警告您时:

WARN Volume mount on the host "/usr/docker/adpater/license.json" isn't supported - ignoring path on the host

这意味着它无法翻译 docker-compose.yml 的这个片段。文件转换为 Kubernetes 语法:

volumes:
- ./license.json:/run/secrets/rji_license.json

在原生 Kubernetes 中,您需要在 ConfigMap 或 Secret 对象中提供此内容,然后 mount the file into the pod .您不能直接访问您从中启动容器的系统上的内容。

您无法在此处直接使用 Kubernetes YAML 文件。你可以运行 kompose convert 生成骨架文件,但是您需要编辑这些文件以添加 ConfigMap、PersistentVolumeClaims(用于数据库存储)以及相关的卷和挂载声明,然后运行 ​​ kubectl apply -f实际运行它们。我会将 Kubernetes YAML 文件检查到源代码控制中,并与您的 Docker Compose 设置并行维护它们。

关于docker - 将 docker-compose.yml 文件转换为 kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62115772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com