SR-IOV binding driver passes wrong device into container

Bug #1826865 reported by Danil Golov
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
kuryr-kubernetes
Fix Released
Undecided
Danil Golov

Bug Description

sriov device plugin and sriov binding driver do not communicate at all and both of these entities chooses device by their own way. sriov binding driver do not know about device allocated by sriov device plugin.

It is necessary to have the following functionality in kuryr-k8s:
1. Get information about allocated devices by sriov device plugin
2. Pass exactly these devices into container

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to kuryr-kubernetes (master)

Fix proposed to branch: master
Review: https://review.opendev.org/656482

Changed in kuryr-kubernetes:
assignee: nobody → Danil Golov (d.golov)
status: New → In Progress
Changed in kuryr-kubernetes:
assignee: Danil Golov (d.golov) → Ilya Maximets (i-maximets)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to kuryr-kubernetes (master)

Reviewed: https://review.opendev.org/651580
Committed: https://git.openstack.org/cgit/openstack/kuryr-kubernetes/commit/?id=685f4c456a1f5e0b0423b25d7d914d4303276f8a
Submitter: Zuul
Branch: master

commit 685f4c456a1f5e0b0423b25d7d914d4303276f8a
Author: Ilya Maximets <email address hidden>
Date: Wed Mar 27 20:05:32 2019 +0300

    Add PodResources service client

    PodResources client could be used by sriov cni to obtain devices
    allocated for container by sriov device-plugin.

    KubeletPodResources service is still in alpha, so it should be
    explicitly enabled in kubelet feature-gates:
        kubelet --feature-gates KubeletPodResources=true

    New config option 'kubelet_root_dir' added to 'sriov' section
    that defaults to kubelet default root-dir '/var/lib/kulelet'.
    In case kubelet started with non-default root directory passed
    via '--root-dir' option, the same value should be configured
    in 'kubelet_root_dir'.
    Note that if sriov binding driver will be used inside container
    'kubelet_root_dir'/pod-resources directory should be mounted
    to this container in order to allow communication with kubelet
    via gRPC protocol over the unix domain socket.

    Partial-Bug: 1826865
    Depends-On: https://review.openstack.org/#/c/652629
    Change-Id: Icf088b839db079efe9c7647c31be4ead867ed32b
    Signed-off-by: Ilya Maximets <email address hidden>

Changed in kuryr-kubernetes:
assignee: Ilya Maximets (i-maximets) → Danil Golov (d.golov)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.opendev.org/656482
Committed: https://git.openstack.org/cgit/openstack/kuryr-kubernetes/commit/?id=5206717f084180c2d3cc994775f36f05f5475315
Submitter: Zuul
Branch: master

commit 5206717f084180c2d3cc994775f36f05f5475315
Author: Danil Golov <email address hidden>
Date: Mon Apr 29 17:29:25 2019 +0300

    Provide a proper way to choose VF in CNI

    This commit fixes incorrect way for choosing VF in
    SR-IOV binding driver.

    Previously sriov-device-plugin has choosen device
    by it's own way while CNI choosed first available VF.
    This entities did not know anything about each other's
    choice.

    Now SR-IOV binding driver gets a list of used by
    kubelet devices with help of Pod Resources Client, then
    chooses device from this list which is not used by pod
    yet and passes an appropriate VF into container's
    network namespace.

    Also this commit contains tools for cluster upgrade.

    Change-Id: I5b24981f715966369b05b8ab157f8bfe02afc2d4
    Closes-Bug: 1826865
    Signed-off-by: Danil Golov <email address hidden>

Changed in kuryr-kubernetes:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/kuryr-kubernetes 1.1.0

This issue was fixed in the openstack/kuryr-kubernetes 1.1.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.