Unverified Commit 7deaa982 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #58916 from ianchakeres/ceph-nbd

Automatic merge from submit-queue (batch tested with PRs 59674, 60059, 60220, 58916, 60336). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Support rbd-nbd for mounting operations on Ceph rbd volumes **What this PR does / why we need it**: This PR improves Ceph RBD support by allowing the pkg/volume/rbd to use the rbd-nbd client. This client is based on the common and broadly adopted (librados) librbd library, and it is being actively developed and maintained&nbsp;as part of the ceph upstream code base, unlike krbd. **Which issue(s) this PR fixes**: Fixes https://github.com/kubernetes/kubernetes/issues/32266 **Special notes for your reviewer**: rbd-nbd will be used for Ceph rbd volumes if rbd fails. Some inspiration was pulled from these PRs #38936 & #55866. **Test Description**: Tested against a k8s cluster with centos/7 as the host os. rbd-nbd installed from package rbd-nbd-10.2.3.rpm. Tested: 1. Fall-through to current rbd map/unmap when no rbd-nbd tools are found. 2. Map/Unmap through rbd-nbd. 3. Detecting image already mapped to a nbd device and skipping additional mapping. 4. Detecting image already mapped to a rbd device and skipping additional mapping through nbd. 5. Unmap in hosts having mixed rbd and nbd devices (caused by fall-throughs for some images). 6. Map failure in rbd-nbd due to missing image. 7. Map failure in rbd-nbd due to unreachable mon. 8. Fall-through to current rbd map when rbd-nbd map fails for any reason. **Release note**: ```release-note K8s supports rbd-nbd for Ceph rbd volume mounts. ```
parents d1806263 11044784
......@@ -29,6 +29,7 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment