Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-7550

Publish Local Resource Provider resources in the agent before container launch or update.

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.5.0
    • None
    • Mesosphere Sprint 66, Mesosphere Sprint 67, Mesosphere Sprint 68, Mesosphere Sprint 69, Mesosphere Sprint 70, Mesosphere Sprint 71
    • 5

    Description

      The agent will ask RP manager to publish the resources before container can start to use them. SLRP (storage local resource provider) will be responsible for making sure the CSI volume is made available on the host. This will involve calling `ControllerPublishVolume` and `NodePublishVolume` RPCs from the CSI Plugin.

      This will happen when a workload (i.e., task/executor) are being launched on the agent that uses a CSI volume as a persistent volume. During the creation of a CSI volume, the SLRP will generate a fixed mount point under the agent's work directory based on the ID of the CSI volume, and store the mount point in the `Resource.disk.source.path.root` or `Resource.disk.source.path.mount` fields. Prior to a workload launch, SLRP will mount the CSI volume to the same path, then the Docker containerizer or the Mesos containerizer will again bind-mount the volume into the container of the workload. Since the containerizers know nothing about the resource providers, it would extract the mount point of the CSI volume from the `Resource.disk.source.path.root` or `Resource.disk.source.path.mount` fields.

      For storage local resource provider, the agent's work directory is known during the creation of the CSI volume since it will be created an used on the same agent. However, in the case of a storage external resource provider, where a CSI volume might be created on one agent X and published on another agent Y, the work directory of agent Y might not be known at the creation of a CSI volume on X. To support it in the future, we introduce new semantics for `Resource.disk.source.path.root` and `Resource.disk.source.path.mount`, such that if these fields are set to relative paths, they are relative to the agent's work directory, so the containerizer can extract the mount point by prefixing the relative paths with the agent's work directory.

      Attachments

        Issue Links

          Activity

            People

              chhsia0 Chun-Hung Hsiao
              jieyu Jie Yu
              Jie Yu Jie Yu
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: