• Kubernetes Submit Queue's avatar
    Merge pull request #59328 from vmware/vSphereVolumeMetricsProvider · d9632f66
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 58317, 58687, 57872, 59063, 59328). 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>.
    
    Volume metrics support for vSphere Cloud Provider
    
    **What this PR does / why we need it**:
    This PR adds Volume metrics support for vSphere Cloud Provider. With this we can monitor the available space, capacity and used space on volumes created using vSphere. 
    
    **Which issue(s) this PR fixes**
    Fixes # https://github.com/kubernetes/kubernetes/issues/43527
    Fixes # https://github.com/vmware/kubernetes/issues/208
    
    **Special notes for your reviewer**:
    Performed following steps to ensure metrics are reported correctly for vSphere Volumes.
    
    - Created Dynamic PV using the PV claim of size 1Gi.
    ```
    $ kubectl get pvc
    NAME        STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    thinclaim   Bound     pvc-bbc18f6a-0a04-11e8-bb1c-0050569c126b   1Gi        RWO            thin           5m
    ```
    
    - Created Pod using this claim.
    - Verified volume stats metrics.
    
    ```
    / # df -h | grep /dev/sdb
    Filesystem                Size      Used Available Use% Mounted on
    /dev/sdb                975.9M      1.3M    923.4M   0% /mnt/volume1
    ```
    
    ```
    # HELP kubelet_volume_stats_available_bytes Number of available bytes in the volume
    # TYPE kubelet_volume_stats_available_bytes gauge
    kubelet_volume_stats_available_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 9.68261632e+08
    
    # HELP kubelet_volume_stats_capacity_bytes Capacity in bytes of the volume
    # TYPE kubelet_volume_stats_capacity_bytes gauge
    kubelet_volume_stats_capacity_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.02330368e+09
    
    # HELP kubelet_volume_stats_used_bytes Number of used bytes in the volume
    # TYPE kubelet_volume_stats_used_bytes gauge
    kubelet_volume_stats_used_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.355776e+06
    ```
    
    - Download 512MB file in the Pod on attached volume and Verified volume stats metrics is updated successfully.
    
    ```
    /mnt/volume1 # df -h | grep /dev/sdb
    Filesystem                Size      Used Available Use% Mounted on
    /dev/sdb                975.9M    513.8M    410.9M  56% /mnt/volume1
    ```
    ```
    # HELP kubelet_volume_stats_available_bytes Number of available bytes in the volume
    # TYPE kubelet_volume_stats_available_bytes gauge
    kubelet_volume_stats_available_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 4.30862336e+08
    
    # HELP kubelet_volume_stats_capacity_bytes Capacity in bytes of the volume
    # TYPE kubelet_volume_stats_capacity_bytes gauge
    kubelet_volume_stats_capacity_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.02330368e+09
    
    # HELP kubelet_volume_stats_used_bytes Number of used bytes in the volume
    # TYPE kubelet_volume_stats_used_bytes gauge
    kubelet_volume_stats_used_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 5.38755072e+08
    ```
    
    **Release note**:
    
    ```release-note
    Volume metrics support for vSphere Cloud Provider
    ```
    d9632f66
Name
Last commit
Last update
.github Loading commit data...
Godeps Loading commit data...
api Loading commit data...
build Loading commit data...
cluster Loading commit data...
cmd Loading commit data...
docs Loading commit data...
examples Loading commit data...
hack Loading commit data...
logo Loading commit data...
pkg Loading commit data...
plugin Loading commit data...
staging Loading commit data...
test Loading commit data...
third_party Loading commit data...
translations Loading commit data...
vendor Loading commit data...
.bazelrc Loading commit data...
.generated_files Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.kazelcfg.json Loading commit data...
BUILD.bazel Loading commit data...
CHANGELOG-1.10.md Loading commit data...
CHANGELOG-1.2.md Loading commit data...
CHANGELOG-1.3.md Loading commit data...
CHANGELOG-1.4.md Loading commit data...
CHANGELOG-1.5.md Loading commit data...
CHANGELOG-1.6.md Loading commit data...
CHANGELOG-1.7.md Loading commit data...
CHANGELOG-1.8.md Loading commit data...
CHANGELOG-1.9.md Loading commit data...
CHANGELOG.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
Makefile.generated_files Loading commit data...
OWNERS Loading commit data...
OWNERS_ALIASES Loading commit data...
README.md Loading commit data...
SUPPORT.md Loading commit data...
WORKSPACE Loading commit data...
code-of-conduct.md Loading commit data...
labels.yaml Loading commit data...