• 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
..
api Loading commit data...
apis Loading commit data...
auth Loading commit data...
capabilities Loading commit data...
client Loading commit data...
cloudprovider Loading commit data...
controller Loading commit data...
credentialprovider Loading commit data...
features Loading commit data...
fieldpath Loading commit data...
generated Loading commit data...
kubeapiserver Loading commit data...
kubectl Loading commit data...
kubelet Loading commit data...
kubemark Loading commit data...
master Loading commit data...
printers Loading commit data...
probe Loading commit data...
proxy Loading commit data...
quota Loading commit data...
registry Loading commit data...
routes Loading commit data...
scheduler Loading commit data...
security Loading commit data...
securitycontext Loading commit data...
serviceaccount Loading commit data...
ssh Loading commit data...
util Loading commit data...
version Loading commit data...
volume Loading commit data...
watch Loading commit data...
.import-restrictions Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...