cnrancher / autok3s

Run K3s Everywhere
https://www.suse.com
Apache License 2.0
753 stars 76 forks source link

[BUG] 使用k3d provider创建集群的时候,如果设置memory,报错 #604

Closed piaobeizu closed 1 year ago

piaobeizu commented 1 year ago

Describe the bug 使用k3d provider创建集群的时候,如果设置master或者worker memory,报错: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 `

Environments (please complete the following information):

Additional context

time="2023-05-25T02:54:20Z" level=info msg="[k3d] begin to create cluster mem-test..." time="2023-05-25T02:54:20Z" level=info msg="[k3d] 1 masters and 0 workers will be added" time="2023-05-25T02:54:20Z" level=info msg="Prep: Network" time="2023-05-25T02:54:20Z" level=info msg="Re-using existing network 'k3d-mem-test' (214d795bf9fdf46b0d003b78e6d3d0976586744d4fbc48063b82d5da17d1a0d7)" time="2023-05-25T02:54:20Z" level=info msg="Created image volume k3d-mem-test-images" time="2023-05-25T02:54:20Z" level=info msg="Starting new tools node..." time="2023-05-25T02:54:20Z" level=info msg="Starting Node 'k3d-mem-test-tools'" time="2023-05-25T02:54:21Z" level=info msg="Creating node 'k3d-mem-test-server-0'" time="2023-05-25T02:54:22Z" level=info msg="Creating LoadBalancer 'k3d-mem-test-serverlb'" time="2023-05-25T02:54:22Z" level=info msg="Using the k3d-tools node to gather environment information" time="2023-05-25T02:54:22Z" level=info msg="HostIP: using network gateway 172.31.0.1 address" time="2023-05-25T02:54:22Z" level=info msg="Starting cluster 'mem-test'" time="2023-05-25T02:54:22Z" level=info msg="Starting servers..." time="2023-05-25T02:54:22Z" level=info msg="Starting Node 'k3d-mem-test-server-0'" time="2023-05-25T02:54:23Z" level=error msg="[k3d] cluster mem-test run failed: Failed Cluster Start: Failed to start server k3d-mem-test-server-0: runtime failed to start node 'k3d-mem-test-server-0': docker failed to start container for node 'k3d-mem-test-server-0': Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting \"/root/.k3d/.k3d-mem-test-server-0/meminfo\" to rootfs at \"/proc/meminfo\": mount /root/.k3d/.k3d-mem-test-server-0/meminfo:/proc/meminfo (via /proc/self/fd/6), flags: 0x5001: 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" time="2023-05-25T02:54:23Z" level=info msg="[k3d] executing rollback logic..." time="2023-05-25T02:54:23Z" level=info msg="[k3d] instances [] will be rollback" time="2023-05-25T02:54:23Z" level=info msg="[k3d] successfully executed rollback logic" Follow Clear

piaobeizu commented 1 year ago

详细日志:

time="2023-05-25T02:54:20Z" level=info msg="[k3d] begin to create cluster mem-test..."
time="2023-05-25T02:54:20Z" level=info msg="[k3d] 1 masters and 0 workers will be added"
time="2023-05-25T02:54:20Z" level=info msg="Prep: Network"
time="2023-05-25T02:54:20Z" level=info msg="Re-using existing network 'k3d-mem-test' (214d795bf9fdf46b0d003b78e6d3d0976586744d4fbc48063b82d5da17d1a0d7)"
time="2023-05-25T02:54:20Z" level=info msg="Created image volume k3d-mem-test-images"
time="2023-05-25T02:54:20Z" level=info msg="Starting new tools node..."
time="2023-05-25T02:54:20Z" level=info msg="Starting Node 'k3d-mem-test-tools'"
time="2023-05-25T02:54:21Z" level=info msg="Creating node 'k3d-mem-test-server-0'"
time="2023-05-25T02:54:22Z" level=info msg="Creating LoadBalancer 'k3d-mem-test-serverlb'"
time="2023-05-25T02:54:22Z" level=info msg="Using the k3d-tools node to gather environment information"
time="2023-05-25T02:54:22Z" level=info msg="HostIP: using network gateway 172.31.0.1 address"
time="2023-05-25T02:54:22Z" level=info msg="Starting cluster 'mem-test'"
time="2023-05-25T02:54:22Z" level=info msg="Starting servers..."
time="2023-05-25T02:54:22Z" level=info msg="Starting Node 'k3d-mem-test-server-0'"
time="2023-05-25T02:54:23Z" level=error msg="[k3d] cluster mem-test run failed: Failed Cluster Start: Failed to start server k3d-mem-test-server-0: runtime failed to start node 'k3d-mem-test-server-0': docker failed to start container for node 'k3d-mem-test-server-0': Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting \"/root/.k3d/.k3d-mem-test-server-0/meminfo\" to rootfs at \"/proc/meminfo\": mount /root/.k3d/.k3d-mem-test-server-0/meminfo:/proc/meminfo (via /proc/self/fd/6), flags: 0x5001: 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"
time="2023-05-25T02:54:23Z" level=info msg="[k3d] executing rollback logic..."
time="2023-05-25T02:54:23Z" level=info msg="[k3d] instances [] will be rollback"
time="2023-05-25T02:54:23Z" level=info msg="[k3d] successfully executed rollback logic"
piaobeizu commented 1 year ago

这个报错是在用docker启动autok3s的时候报的错误。已经解决,解决方法:docker run 的时候将~/.k3d目录挂载进容器

orangedeng commented 1 year ago

Seems like it is a k3d limitation. You will encounter the same issue with k3d cli to generate k3s cluster.

piaobeizu commented 1 year ago

no, i generate a k3s cluster successfully with k3d cli.

image
orangedeng commented 1 year ago

If you are running docker as remote server via setting DOCKER_HOST environment variable, you will encounter the same problem. This is the problem that k3d needs to mount the resource limit file into k3s container which requires the k3d and the docker server are in the same host.

piaobeizu commented 1 year ago

yes, my k3d and docker server are in the same host.

JacieChao commented 1 year ago

Updated docs for K3d provider. If running AutoK3s with docker and want to use K3d provider, please mount the .k3d directory to the docker container. Please feel free to reopen the issue if there's still have any problems here. Thanks.