-
Notifications
You must be signed in to change notification settings - Fork 95
cannot create/delete volumes when using the cli Docker EE with UCP #1950
Comments
@chris7444 sorry, can you say what is WS? The docker volume driver for Linux will work fine on Linux guest VMs running on an ESX host (as you are able to observe). |
@chris7444, could you also post the /var/log/docker-volume-vsphere.log file from the ws node. |
@govint WS is a linux WorkStation (typically not one of the docker nodes) from which you use the docler cli command as explained in the docker documentation (see above, 2nd line of the issue description) |
@chris7444, thanks for clarifying, let me check this myself and get back to you. |
Set up UCP with a docker swarm (3 nodes installed with Ubuntu) installed with 17.07.0-ce (using the CE vs. EE version but am able to repro the issue). The behavior is the same whether using the docker CLI or the UCP UI to create the volume. Using docker CLI from a photon OS VM using the certificates bundle downloaded from UCP.
The problem is that UCP is issuing the volume creation request to both the worker nodes, while one node succeeds in creating the volume, the other fails because,
One node Worker2 successfully creates the volume, The other node Worker1 finds the volume is already there,
Worker2 successfully created the volume and detaches it, While Worker1 that got an error when trying to format the volume goes ahead and removes it, So,
I'll post a PR to fix this. |
Raised issue on docker UCP #35334 (moby/moby#35334) |
Also related to issue moby/moby#34664. Fix in UCP will be in by 2.2.4 or 3.0.0. I'd prefer not to update the changes I have into the code till we have the fix in UCP. The changes are showing an issue only for UCP at this point and hence no point submitting the changes rightaway. |
@govint to follow up with Docker folks about the timeline of the availability of fixes for moby/moby#34664 and moby/moby#35334 |
Please take note that I don;t have the issue with the vieux/sshfs docker volume plugin (see below) nor with the HPE 3PAR docker volume plugin (not shown here) I consider this problem critical, the only way to create vsphere docker volumes is to have the end user connect to a worker node on which there is no role based access control Regards [root@clh-ansible certs.clh]# . env.sh [root@clh-ansible certs.clh]# |
I have reproduced the issue from the Docker EE user interface as well. Basically, you cannot create a volume using the vSphere driver at all - which makes the plug-in completely unusable. |
@chris744, @kochavara, the fix for the plugin is ready but it can't be verified or merged till below UCP issue is resolved. The below issue was identified when testing the fix with UCP. |
And this issue moby/moby#35334, the UCP issue will be fixed by 2.2.4/3.0.0 timeframe. |
@govint Based on feedback from Docker management, 2.2.4 GA'd yesterday. Was the fix merged into this version? |
@govint , I just tested the whole thing with UCP 2.2.4. Issue is still there. FYI I am using version 0.13 of the plugin (the version from the Docker Store) |
Verified the fix in the ESX side service and plugin, as mentioned, the
create step is fixed (works with UCP 2.2.3 also). But doing a _docker
volume inspect_ or _docker volume rm_ is still broken with the UCP.
I can still merge the changes I have that fixes the create path via UCP.
But inspecting and removing the volume will need to be done on the swarm
nodes themselves.
|
I have UCP 2.2.4, vib v0.18, plugin v0.18, docker and still the same issue. At some time I have successfully created ONE volume but this was the only successful attempt Where can I find the bits which are supposed to work ? I am downloading the bits from the repos documented here: note: clh06novoa is the name of the volume, I use a unique name each time so I see the same behaviour you explained a few days ago Nov 6 10:33:46 065a5baa1a5f dtr-notary-signer-eb7c7f80862f[10165] 2017/11/06 10:33:46 transport: http2Server.HandleStreams failed to receive the preface from client: EOF |
@chris7444, the changes aren't merged yet. I'll get those in this week once its reviewed. Can you also confirm that with the HPE 3PAR and vieux/sshfs plugins you are able to create/inspect and delete the volumes via UCP? |
I don't have an access to a 3PAR anymore. vieux/sshfs plugin seems to work, both for create, inspect and delete [root@clh-ansible certs.clh]# export | grep DOCKER root@clh-ansible certs.clh]# docker volume create -d vieux/sshfs --name mysshvol01 -o sshcmd=root@clh-ansible:/remote -o password= [root@clh-ansible ~]# docker inspect mysshvol01 [root@clh-ansible ~]# docker volume rm mysshvol01 |
@chris7444, thanks for confirming, I'm following up with the docker community on the fixes in UCP for the reported issue and will keep this thread updated. |
Thanks! |
@govint Any news here ? I am not sure why UCP needs a fix when the sshfs volume plugin works with UCP |
@chris7444, please see updates here at moby/moby#35334 (comment), seems like UCP 2.2.4 does have an issue with Get() and Remove() for non-local volumes. I don't have a date yet when UCP 2.2.4+ will be available though. |
@govint. My understanding is that in moby 35334 you are reporting a problem with delete or inspect but it seems you can create volumes. At this point in time If people use vDVS 0.18 (or 0.17) they cannot create volumes when sourcing the client bundle. If we could have the changes you did to be able to create volumes this would help because with the released bit, the vsphere docker volume plugin is unusable as stated by @kochavara |
@chris7444, I have PR #1985 out for a review that will fix the plugin to ensure no issues in creating volumes. This change should be in the next release of the plugin. Besides that inspect isn't supported via UCP and remove needs the labels on all nodes in the swarm cluster to be exactly the same in order for it to work. |
Thanks @govint |
@kochavara the next release is (tentatively) planned in the first week of December. |
@govint Thank you! |
Verified the fixes with a five node swarm cluster with UCP: docker volume rm photonvol-7 Server:
Server:
docker volume inspect photonvol-7 docker volume rm photonvol-7 docker volume create -d vsphere photonvol-6 docker volume inspect photonvol-6 docker volume rm photonvol-6 |
Changes are merged and closing. |
vDVS 0.19 release is out please try out deliverables from https://github.com/vmware/docker-volume-vsphere/releases/tag/0.19 |
Please note, docker volume inspect isn't supported with Docker EE, but actually works with Docker CE - inconsistent behavior (although Docker CE isn't supposed to be used with UCP). Plus, after creating docker volumes with UCP (UI or CLI) log into the ESX hosts and do docker volume inspect over there and ensure that all hosts show the same set of labels and the same values for those. This is absolutely necessary to be able remove the volumes via docker UCP (UI or CLI). |
I am trying to create/delete a vsphere docker volume using the docker command as documented here
https://docs.docker.com/datacenter/ucp/2.2/guides/user/access-ucp/cli-based-access/
from my linux workstation (after sourcing the env.sh script downloaded as explained in the doc above)
[root@clh-ansible ~]# docker --version
Docker version 17.06.1-ee-2, build 8e43158
validate connection with UCP control plane
[root@clh-ansible ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
03wve9xyds1sef5l4nrjb5cbv clh-dtr02.am2.cloudra.local Ready Active
558iotb56vy6e8n8key94ry8p clh-ucp01.am2.cloudra.local Ready Active Reachable
gdkl73ad5wdqa5ezybt4advfq * clh-ucp03.am2.cloudra.local Ready Active Leader
im5q776sr4qk8ljxc5ybzzskk clh-worker02.am2.cloudra.local Ready Active
n51c8zv513vjqbcnkor0dtnr7 clh-dtr03.am2.cloudra.local Ready Active
nvw9stst1wet4havzsmsjolyf clh-worker03.am2.cloudra.local Ready Active
psagy87us4fzm9vphvueecrmm clh-worker01.am2.cloudra.local Ready Active
tkwu2qt6ptwiplmukut8thcvx clh-dtr01.am2.cloudra.local Ready Active
us29daujkrefnm9uj685niol7 clh-ucp02.am2.cloudra.local Ready Active Reachable
create a docker volume
[root@clh-ansible ~]# docker volume create -d vsphere issue01
issue01
verify that the volume was created (it was not)
[root@clh-ansible ~]# docker volume ls | grep issue
[root@clh-ansible ~]#
now try the same from a node in the swarm (clh-ucp01)
[root@clh-ucp01 ~]# docker --version
Docker version 17.06.1-ee-2, build 8e43158
[root@clh-ucp01 ~]#
docker volume ls | grep issue
we confirm the volume is not here, try to create another one from the ucp node
[root@clh-ucp01 ~]# docker volume create -d vsphere issue02
issue02
[root@clh-ucp01 ~]# docker volume ls | grep issue
vsphere:latest issue02@Docker_CLH
it works!!
now exit clh-ucp01 and go back to the WS cli
[root@clh-ucp01 ~]#
[root@clh-ucp01 ~]#
[root@clh-ucp01 ~]# exit
logout
Connection to clh-ucp01 closed.
confirm we see the new volume
[root@clh-ansible ~]# docker volume ls | grep issue
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
vsphere:latest issue02@Docker_CLH
volume is there (there are 9 nodes in the swarm, hence 9 volumes displayed above)
note that docker volume delete does not work neither from the WS, it works from a node in the swarm
The text was updated successfully, but these errors were encountered: